The “one expert per technology” mindset is as culturally pervasive as it is clearly detrimental, yet its origin is actually understandable. After all, if you have a heart condition, you go see a cardiologist, if your child has a high fever, you’ll likely take him to the paediatrician. General practitioners, on the other hand, are not typically afforded the credit they deserve.
Much in the same way, when it comes to full-stack developers, a lingering myth exists that they are somehow less capable than other software engineers.
For this reason, today we would like to compare narrow expertise and full-stack capabilities and explain why we at Software Planet are significantly more partial to the latter.
Just as the name implies, specialist developers are particularly learned in a specific field, and as a result, tend to only work within the boundaries of their favoured disciplines. In the software world, this means that they are limited to either frontend or backend operations, which makes assigning team roles a matter of careful deliberation.
On the matter of pros, it really does come with the territory, as companies will be relying on a group of skilled professionals. Consequently, you can expect each part of the system to live up to your highest standards. The cons, however, are not as widely understood. For one, be prepared to potentially experience perceptibly higher costs, as hiring two specialists is more expensive than a full-stack developer. And logically, for another, you’ll certainly find yourself depending strongly on certain team members.
Full-stack developers, on the other hand, are able to steadily contribute at every stage of the development process — beginning with the server side and its corresponding technologies and frameworks, and ending with the actual interface with which users interact on the daily. This, as it turns out, comes with a plethora of significant advantages.
For instance, when everyone in the team can work on any user story, we are never forced to halt development for something as blindsiding as a sudden absence. Instead, because each team member will have a thorough understanding of the system, they are equally capable of picking up the next task and proceeding to implement it without any huffs. As a result, we do not face any bottlenecks when developing new software.
Yet this, of course, does not mean that certain individuals will not be better suited for particular projects or functionalities. Naturally, every programmer is unique, so they will each present their own weaknesses and strengths.
As for cons, as you may have suspected, you could find yourself in need of someone with a deeper understanding. This, however, as we are now about to see, not only is rare, but is also self-amending.
A Culture of Learning
Above all, we believe that all developers should be committed to continuous learning, and this is the main reason why we encourage full-stack expertise.
After all, should any problems arise, our teams are well accustomed to studying hard to find a solution. And because full-stack developers are more inclined to bounce off of one another, we are constantly evolving and teaching each other as well.
Yet the greatest winners, of course, are our valued customers, who will fittingly find in full-stack development a broad range of talent and unparalleled agility to boot.
The cultural tide may be against them, but it is clear that general practitioners are just as competent as their specialist counterparts.