However, during the early stages of an organization, you often need to have people working across the stack, for efficiency, cross coverage and such. It's highly unlikely that your budget will allow you to both have people dedicated to every part of the stack( ops, api design, database administration, UI work etc) as well as efficiently establish and coordinate the lines of communication between them to build a harmonious systems. And even if you did, for 99.99% of organizations, doing so would simply amount to a waste of money because during the early stages of an organization, it's unlikely that your product requirements are extensive enough to require very deep expertise and experience across the stack.
Enter the full stack developer.
Expertise is a zero sum game (jack of all trades and all that). I recall a colleague of mine (who considers himself full stack) saying that he truly believed he knew ops, until the day he actually applied for strictly ops jobs. He quickly realized how much expertise he lacked in that specific field. Once you go beyond Junior/Mid, "full stack" developers always lean towards a specific area of the stack. They might be front end (FE) or back end (BE) leaning for instance. It is important to be clear about which side each engineer leans
In the early stages of your organization, as you grow your engineering team, you may/should hire developers comfortable completing tasks across the whole stack, it's however extremely important to keep track of (and evenly distribute) how your expertise is actually spread across the stack. Failure to do so will result in a system that isn't well rounded. A system that is extremely deficient in one or more areas of the stack that you were lacking deep expertise in. For instance, if your team only has FE leaning full stack developers, they are much more likely to make sub optimal decisions on the BE or entirely try to do a task suited for the BE on the FE simply because they are more comfortable there.
I've seen first hand, countless times, the problems this can result in.
Full stack engineers are a very valid way to construct your engineering team, especially in the early stages, but it is essential that while using this approach, an organization recognize the necessity of keeping your development team balanced and this might require a little more diligence from leadership.
Post a Comment