Why should you learn the full stack? Isn’t it more efficient when everyone is highly specialised in frontend, backend, or whatever they do best?
These questions were the topic of Adam Schuck’s talk ‘From Frontend to Full Stack’, at the first Frontend Engineering Sydney event on March 22. Schuck, currently co-founder of Sydney-based Natural Language Processing startup Lexy, began his tech career on the Google Maps team in Sydney. He saw a few pitfalls in their highly specialised structure:
“We had a front end team in Sydney, including me, a backend team halfway across the world in Hyderabad in India, and an executive team in San Francisco that called all the shots… Regularly I faced being blocked in decisions, and progress, and we didn’t have all the skills within our team.”
So how does Schuck think full stack engineering can help?
1. Build better teams
More generalists means less dependency in the organisation. As Schuck says, “We want teams that are able to solve their own problems”.
“We want engineers spending less time having light sabre fights and more timing getting on with their job. Less dependency on other people blocking on code reviews, less waiting on other people to make decisions for you. And so an example of that is when a frontend engineer says “OK, we need to make this feature work faster”, and the frontend engineer gets it really fast, but now we’ve reached a point of “Sorry, it’s the backend’s problem.”
On top of that, having more generalists makes organisation design easier. It’s a bit like having a modular lego set instead of a model kit full of unique parts. This is a good thing in dynamic, growing organisations.
Schuck experienced the flipside of this when he joined Twitter in 2011, via the acquisition of Julpan where he worked. When there were specialised Android, iOS and Web teams, the product teams had to fight to access them. When each product team had a specialised web, iOS and Android developer, not all the developers were fully utilised and many of the others were overworked. There’s generally no right answers in org design, but Schuck believes generalists can make things more flexible. Schuck’s current company, Lexy, avoids these pitfalls by encouraging generalisation of skills within their team.
2. Build better products
Schuck quotes Conway’s Law, named after computer programmer Melvin Conway.
“Organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”
- Conway, 1967
In other words if you’re not careful, your product will end up reflecting your organisational structure instead of the best design for your users. He gives the example of the Discover tab in Twitter circa 2011, which was all about recommended content.
Twitter’s ‘Discover’ tab circa 2012 on Gigaom
There were multiple tabs: “Stories, Activity, Who to follow, Find friends, Browse categories, Trends”
“In a conversation with the main VP of Product, he pointed out to me that “You can see the org chart in the product”. And he was absolutely right. Each of these tabs was a different team at Twitter at this point in time. And that’s not what you want.”
The product only got better when the Discover content became more integrated into the main Twitter timeline. But for this to happen, “we needed to change our team structure, we needed to have a lot of people embedded in different teams, a lot of generalisation.” Generalists - in other words, full stack skills. Integrating the product required more integration and less fragmentation in the organisation.
3. Build a better career
But how about the individual? How does going full stack benefit you?
“Well hopefully, by having more a general skillset, what this gives you is autonomy. By being able to build a feature all by yourself, you can now prototype and ship something end to end.”
Instead of having to convince your colleagues at lunchtime to help you make something, you just make it. Then it’s much easier to convince your peers and management to take it further. It’s also great if you move into management to have an overview of the technical aspects of different parts of the product. And if you’re on a small team or startup, the buck stops with you, so you’d better have a few skills up your sleeve. So generalists are highly valued at Schuck’s new startup, Lexy.