📜 ⬆️ ⬇️

Translation: full stack developer is a myth

Your attention is invited to the translation of the curious article by Scott Hadfield , CTO and co-founder of the startup “Hello Pretty”. Now in half of the vacancies related to web and server development, the magic phrase “full stack” is encountered. Most often with epithets like “Jedi”, “super-hero” and “ninja”. Who are all these people looking for, and who do they actually manage to get into their team?

Of course, in the title of the article I have somewhat thickened the colors and the full stack developers exist. But you will never find such a thing. “Real” full stack developers exist - just like there are geniuses and people who have been programming since 12 years old. I too often see this phrase, and, in my opinion, the only way to find such a person is to engage in hunting poaching. If you do not have extreme luck, then all the fighters that fit the description of “full stack” have long and reliably been employed.

I am familiar with several guys who match the description of “full stack”. And these guys are constantly chasing the crowd of hunters, which only feeds the myth that you will be able to find such a developer in your project.

The description of “full stack developer” is as meaningless as “Genius” or “Anyone who can do anything in [insert your subject area here]”.
')
I will reveal this thought deeper. The illustration below shows an incomplete version of that very “stack” that is referred to in all these vacancies. In most cases, the developer needs only one or two skills from each layer. Some skills can be obtained in a couple of hours (for example, the simplest compilation using “./configure && make && sudo make install” or using VPS). Getting other skills can take years.



What is expected of a developer’s “full stack” reliably goes beyond the capabilities of the average person. Such a developer should understand the application scaling up to several million clicks per day (per hour?), Know what “pets vs cattle” are and why it is so important, be able to choose between MongoDB and MySQL, use the CAP-theorem, configure PaaS and IaaS, own dozens of configuration management tools for deploying Rails, Django, Wordpress, Swift, or a combination of applications, understand the difference between microservice-based architecture and monolithic applications, and dozens more.

This means that the full stack developer must have at least a good understanding of each component in the web technologies stack in order to be able to make informed decisions about how to use them. He should also be able to explain his choice to managers, preferably in simple language. Yes, yes, at the very top of the stack there is a good command of the written language, teamwork skills and the ability to bring difficult things to managers.

Every year new components are added to each stack layer. And every few years a new layer is added to the stack. Do you still think that it’s wise to write in a “full stack developer” job? This is not very clever. Especially when you start looking for one person who is at the same time a specialist in security, web development, usability and server setup. And such requests are not very rare.

Cherry on the cake. Since the full stack of developers are most often looking for startups, these fighters are also expected to work as managers and communicate with users.

Oh yes, and when the CEO looks into the office, you need to set up the printer and file sharing on his new windows laptop.

As I already wrote, such people exist. I personally know a few. But I also know a lot of great developers, designers and project managers who don’t even come close to the definition of “full stack”. And even more are those who call themselves “full stack developers” and can hardly define more than a dozen words from the list above. And this is despite the fact that the list is far from complete, there are not even some layers in it, for example the one on which JRE and Node.js live. And here we understand that we have a problem.

In most cases, when I saw “full stack” in the job description, they were actually looking for a “very cool specialist.”

The earliest mention of “full stack” and “full stack engineer ” I saw in the post of Facebook developer Carl Bueno , who called this term a generalist with a strong bias in performance analysis.

Perhaps the “full stack” engineer or developer does not need to write code at all. Instead, focus on the work of the system architect or integrator. A person with knowledge of the entire technology stack can foresee problems of communication and integration between the layers before they can harm the project under development.

But even if by “full stack” we mean the role of the architect, it is necessary to determine which “stack” is in question. Stack of web development, mobile development, native applications? Even in this form, “full stack” is not one skill, but a large set of skills, with a deep understanding of the interaction of technologies within the “stack” and how changes on one layer of the stack affect its other layers.

Full stack developer is a myth. But not because there are no such people, but because such a definition does not make sense. There is no difference between this wording and “coding ninja” or “rockstar”. But about the latter, at least everyone understands that such names are not related to a specific set of skills.

Are you looking for an “all-rounder” specialist, an integration specialist, a performance specialist, someone who can quickly learn new technologies and development techniques? Or are you looking for someone who is an expert in all the areas listed? I have bad news for you, look at the picture again. It is far incomplete.

The image is taken from here .

Source: https://habr.com/ru/post/275229/


All Articles