This leaves us with open questions. Is there still a role for talented individuals with knowledge and skills that span multiple layers? How do we accommodate the diverse mixture of experience that full stack developers have traditionally brought to the project? How does management fulfill all these needs? How should recruiters filter prospective recruits? How should job applicants declare their skillset?
It’s time to rethink the term full stack.
I say this with some ambivalence because I helped to popularize the concept. The website full-stack.com was my take on the state of the art in 2009. But sadly, in 2019, it’s a relic suitable for the Computer History Museum.
Oddly, there seems to be an ever-increasing curiosity about the term full stack. A Google Trends snapshot for the period 2009–2019 shows a sharp uptick over the past five years. And it’s reaching new heights each year.
But if all those queries are looking for the next thing, here it is. Of course, we have to give it a name so we can properly discuss it.
I’ll call it the 2020 stack. A new name for a new generation.
Here’s my take on it:
First, let’s honor those individuals who have deep skills in diverse areas. They are our best hope at not falling into the trap of specialization. We want to shun those empire-building tendencies, those gurus with secret incantations, and those silos of information that creep in with specialization.
Second, let’s come to grips with the fact that career development means that people come and go. Organizations must expect this as part of their ordinary operation. Business can’t be interrupted when senior staff move on. “No one is indispensable.”
Third, communication between specialists is weakened by domain jargon. When experts use terminology, acronyms, and idiomatic expressions that are domain-specific, they put themselves and their teammates in peril. “He said/she said.” Cross-domain fertilization is vital in keeping communication channels clear.
So here are some characteristics of the new 2020 stack specialist:
Since no one person can handle it all, the 2020 stack must be covered by a team. Not a group of individuals, but a true team. That means that when one person is falling behind, another will pick up the slack. When one person has superior skills, there’s a mechanism in place for mentoring the others. When there’s a gap in the team’s knowledge-base, they seek out and hire a team member who’s smarter than all of them.
Every 2020 team player must be a cross-domain expert. Any individual with a skillset limited to just one or two layers of the stack isn’t truly a 2020 team player — these types of individuals may aspire to be future 2020 team members, or they may not. But until they acquire deep knowledge across multiple layers of the stack, they’re just 2020 candidates.
The mix of skills that 2020 team members bring to a project isn’t rigidly categorized. Unlike the front end/back end categories that we’ve embraced until now, the 2020 divisions are manifold. One 2020 team may have a member with skills that include NoSQL, cloud configuration, and continuous integration. Meanwhile, another 2020 team may have an analogous team member with skills that include SQL databases, Node.js servers, containers, and orchestration. To refer to either as simply a 2020 back end team player gives them too little credit.
Finally, the vital ingredient: Communication should be carried out with the shared intention of making the best decision for the problem at hand. This means that peers whose skillsets overlap should communicate with an open mind. Rather than just informing peers about new developments, peers should discuss things. This makes everyone smarter, and it prevents specialization from creeping back in. Symbiotic growth.