“Q: How many software developers does it take to screw in a lightbulb?
A: If it is an enterprise lightbulb 2 teams of 5 developers working for six months.”
I would like to start off by apologizing for the crude joke (just couldn’t help myself). If you get the joke you already know what this article is about. If not, here’s the rundown; A tech stack, or technology stack, is a list of all the technology services used to build and run one single application. A tech stack quickly summarizes the programming languages, frameworks, and tools a developer would need to interface with the application. To be sure, some form of this concept has always been around since the advent of the world wide web (Even though tech stack is not a concept exclusive to web development, most of its application is in the same; Hence I will mostly be referring to web development for the purposes of this article).
If I asked the question “How many developers does it take to develop a website? Not the usual informative one, but something that has traffic and has to be deployed in the industry.”, what answer would I get? If this was in 2005, the answer would most probably be one. But in 2020 it is not so. That is not to say that a single developer cannot build and deploy an industry-ready website or application. Just that doing so is harder and less versatile. This might sound bad, like the joke at the start may sound rude. But turns out, it is not.
For one, bringing more people into a project definitely expands the horizons of what can be done and increases productivity. And here, too many chefs do not spoil the broth, because the chefs are working on different broths. Using a tech stack breaks down the puzzle we have into separate solvable pieces. And we cannot appreciate the evolution of UX stack as an effect of this culture.
Short Version: Tech stacks = higher maintainability, better optimization, and more possibilities.
A full-stack used to mean the combination of frontend, backend, and a database. Now, the game has changed. While full-stack still necessarily means the same thing, both frontend and backend now can be implemented in a myriad of ways, since new technologies are being invented every day. This is true even outside of web development.
Different clients/employers implement the combination of technologies that suit their needs. This depends on various factors such as scalability, maintainability, and deployability to name a few.
Most of this article has concentrated on web development. But I reiterate that the applicability of tech stacks is not limited to the same. Ironically I have not mentioned the name of any popular stack. The reasons being that this can easily be found with a google search and that mentioning any specific stack wouldn’t fit in well with the context of this article.
To those of you who did not have any idea what a tech stack is, I hope this helped. And to my dear readers out there who feel intimidated with all this talk of myriads and multitudes, I say that you do not necessarily have to be the jack of all trades if you are the ace of the trades you know.