Somewhere around 2009–10, a new title started appearing in job boards, especially from the to-be Unicorns and about-to-be famous technology startups. Since the rise of startups building for Web 2.0., developers have been recruited as full stack developers, a title they didn't know existed till now.
Fast track almost 10 years later, Full Stack Developer is one of the most sought-after job titles in every popular job board.
Why Full Stack Development
Programming languages, development frameworks and related technologies/concepts ranging from Cryptocurrencies, Machine Learning, I.O.T. etc, have all evolved within a short span of time and at a tremendous pace.
A product or a software capable of leveraging latest innovations needs development using latest technologies. A limited understanding of a single technology ecosystem does not build products anymore. Thus, came the shift in development, and acceptance of the term called Full Stack.
There's a clear correlation between startups and full stack development popularity.
A go-to-market MVP, built using Agile or similar methodologies require the developers to have a clear understanding of the ties between product and the technologies powering it. Development sprints are tied to features and user stories, not to a database upgrade or a new REST endpoint specifically.
Full Stack Development is here to stay, debated or not.
So what makes a Full Stack Developer what he is?
Contrary to the layman understanding, full stack developers may not have a complete understanding of multiple technologies. They usually possess T-shaped skills, which is defined as.
The concept of T-shaped skills or T-shaped persons is a metaphor used in job recruitment to describe the abilities of persons in the workforce. The vertical bar on the T represents the depth of related skills and expertise in a single field, whereas the horizontal bar is the ability to collaborate across disciplines with experts in other areas and to apply knowledge in areas of expertise other than one's own.
In simple language, every developer has an area of expertise, the one where he/she/others can provide solutions to complex problems, based on the experience and skill-set. The broad angle, however, ensures that the surrounding technologies tied up with the areas of expertise are well versed with the same developer. This helps in maintaining quality around core technologies and rapid full-fledged development from a limited set of developers. It also ensures ownership, redundancy and a religious understanding of the product the developer works on.
Is that it?
T-shaped skills? A deeper understanding of core areas, broader understanding of related areas? Do developers really pick these rules while diving into full stack development? Definitely not!
So how do developers, sometimes having expertise in different areas, end up having full stack skills? What is the common route? The common traits found in all such developers have nothing to do with technology and software development.
A Full Stack Developer is curious, resilient and comprehensive.
Quite similar to startup founders, playing multiple roles at the same time, a developer building a product has to deliver features, not half-baked, technology constrained updates.
To quote from the first principle of Liberal arts:
"those universal principles which are the condition of the possibility of the existence of anything and everything"
Likewise, a Full Stack developer needs to have the determination of building anything and everything, from anything and everything.