We run into this less frequently but still find large, mature companies entrenched with the idea that every developer must be “full stack.” This “master of all trades” approach is essential for a startup or tiger team iterating on a new idea, but when applied across engineering teams iterating on adolescent to mature products, side effects typically include slower delivery, a monolithic codebase, and going through Agile motions, but missing the Agile methodology of continuous exploration, innovation, and delivery.
As part of our technical due diligence or being brought in to assess an engineering team by an executive, we get access to a data room, including org charts, product roadmaps, architectural drawings, and other documents. When I see “full stack” in reference to their engineers (and they have more than two development teams), I often also see an unusually high QA-to-engineer ratio and monoliths in the architecture diagram. Coincidence? I think not.
When going to a doctor, at least in my experience in the US, I often start with a general practitioner or “full stack” doctor. They can see the big picture but at a somewhat shallow depth. Their role is to get me as far as their training and experience can diagnose and then ship me to a specialist. In a recent family medical situation, thankfully, the “full stack” doctor quickly recognized the experienced condition was beyond her expertise and forwarded us on to a group of specialists in a “full stack team” who were able to start lifesaving treatment immediately for a much-improved quality of life outcome.
Full Stack Teams
As your product is live and you begin to understand market fit and value enough to shift away from a monolith, it is time to start planning and implementing a shift from full-stack engineers to full-stack teams. Also referred to as “cross-functional teams,” popularized by Spotify. Each team must have all of the skills necessary to independently design, write, test, and deploy code with little to no dependency on outside groups.
The key to creating full-stack teams is to look at the higher-level strategy. Hopefully, you are already measuring team throughput and velocity and understand how long it takes from the end of a Sprint to releasing of code and where the delays exist. If not, start immediately, and you’ll begin to get a good picture within 2-3 Sprints. Where are requests lining up? QA? Big Data? Security review? Legal review? Infrastructure? Is Product involved in daily standups? This then informs which roles need to be a part of your full-stack team.
The Cost of Inefficiency
According to The Product Coalition, each two-week sprint costs approximately $28,000 USD. This, of course, varies depending on where your developers are located. Many companies with a mix of onshore, nearshore, and offshore teams agree that a development team costs between $1M to $1.5M annually and closer to $2-2.5M if developers are in Silicon Valley or other high-cost geographies. Making even slight efficiency changes is money back in your company’s pocket that can be reinvested in more significant innovation.
The best full-stack teams release several times daily, maximizing the dollars invested. They can do this because everything is automated, and the code deployment process has a series of checks and balances. The experts needed are embedded and dedicated to successful outcomes. And these teams should be durable and not interrupted by outside distractions or constant reorgs.
Team Durability
Many experts agree that having teams stay together for about three years is the best ROI. Each team member knows the others and what is expected. A lot of unseen and difficult-to-measure consistency and automation in communication occurs as each person can anticipate how the other members of the team work.
Just as a general practitioner may take months to diagnose a problem that a specialist can identify correctly immediately and start treatment, having a full-stack team of engineering experts working together dramatically increases velocity and reduces waste in product development.
If you are frustrated by constant missed targets and slow time to market, contact us, we can help identify where inefficiencies are costing you money, competitive advantage, and time.