Over the last few years, Repro has grown from about 10 employees at the time I joined, to over a 100 employees. The engineering team makes up large chunk of that. While a lot of resources have been invested into hiring highly-skilled, full-stack engineers, I’ve been recently pushing for a dedicated front-end team.
First off, I wanna preface that dedicated front-end team doesn’t mean that the team should contain only engineers with front-end specialities. In fact, quite the opposite. Engineers that understand how the back-end works are essential since many usability features require changes to the back-end.
Why this matters?
There is a strong intersection between design and development. No matter how great a user flow you can come up with, it becomes pointless if you lack the structure or resource to implement it. If the designer is the artist, then front-end development is the medium, and understanding the medium and its limitations fully is required to create masterpieces.
Even though, I am not required to write code, I feel the responsibility to make sure designs and the right experience is translated correctly into the user interface. To realize this, the communication and collaboration between the designer and the front-end team is key. I’ve always believed that designers should have the same, if not better, understanding of front-end systems, languages and frameworks.
Why is there a need for the team to be dedicated? Well, there are many advantages to having a dedicated front-end team, such as:
Higher Level of Focus
Full-stack engineers are, by definition, Jack of all trades. Most of them are usually a master of one or two languages. Dedicated front-end engineers have in-depth knowledge on the latest front-end technology and methods and is able to advocate and communicate them to the rest of the team.
Since responsibilities are well-defined, there is no need for the engineer to balance their time between the two ends. Since back-end can get pretty complicated and time-consuming, the front-end quality is usually sacrificed as a result. If front-end development gets treated an afterthought, then implementing good user experiences would naturally be pushed to the back seat.
With an engineering team of only full-stack engineers, the role of creating and communicating the proper usage of components falls on no one. Those task would usually end up being done by the engineers drawing the shorter end of the stick. An engineer working on a new feature, would rarely have the motivation to revise or create a new component and change it in a hundred places, simply because the last engineer who created the component didn’t do it in a way that is scalable.
Having the responsibility to create, maintain and improve components that can be effectively used by the team in the long term is a full-time job that requires high level understanding of design systems and user experience.
Easier to Hire
Hiring engineers in the tech industry is notoriously difficult. Hiring full-stack ones is even more of a challenge, especially one with the skillset for a complicated tool like Repro. While some might think that it’s more expensive to get dedicated front-end teams since you need two employees instead of one for a task, asking a back-end engineer to work on front-end tasks, which is usually less complicated, is more of a waste.
Better Collaboration with Designers
Design needs to iterate quickly and in a timely manner based on user feedback. The collaboration between designers and front-end engineers needs to be based on the goal to deliver the best experience for users.
As such, designers need to constantly get opinions and knowledge about front-end implementation and be able to direct it to a certain extend, while front-end engineers need to be able to have opinions on the scalability and feasibility of design decisions and recommend alternatives that solve any problems that might impact design in a negative way.
If you try to carry this out in a team of 30 full-stack engineers opposed to a core front-end team of 3 specialized engineers, you’ll find that communicating ideas and implementing new processes become difficult.
Is this for everyone?
Now that we know the advantages, we need to know there are some factors about your project or product that you need to consider before going into this direction.
If your project or startup is starting up or small-scale, then using a full-stack engineer is more cost-effective and affords you the versatility that a new idea needs. Otherwise, a dedicated team is recommended.
Complex projects require in-depth knowledge and management in each part of the feature development process, and need dedicated specialists.
A full-stack engineer can probably make your product work at a lower cost, but quality and scalability is sacrificed along the way.
High quality user experience needs extra effort and full immersion of teams of specialists. Lower quality can generally be accepted for proof of concepts or MVPs, but premium solutions require dedicated and motivated specialists.
This is a matter of choice, and each direction can be justified based on the current situation of your project and how much quality you can afford. Whichever choice your company made, the relationship between design and development cannot be overlooked if you want to deliver a great user experience.