Fullstack Developer…to be, or not to be? That is the question

It seems as everyone is excited about full stack development. But what the heck is “fullstack development”? What’s the hype around? Should you think about becoming such developer? Jack for all traits or master of none? Let’s take a look…

In a nutshell, a fullstack developer is a “big picture” developer, which is familiar with several layers of development, if not master, but is also someone dazzled with new technologies and work methodologies. There are multiple types of fullstack developers abroad: MEAN and LAMP developers are just two examples.

But what they have in common? Besides both are familiar with all layers of computer software development, they’re capable to know how “all parts of an engine come together”, how everything works from top to bottom, advise or guide on strategies advise or guide on strategies and best practices and last, but not least, anticipate problems and act accordingly. Clearly, it takes some time and effort to reach this level of qualification. Maybe it’s because there are so few out there…

On the other hand, the evolution of technology and immersion of startups raising the bar on multiples fields of software development (machine learning, artificial intelligence, analytics, and so on) are starting to transform the task of becoming a fullstack developer into a gigantic odyssey…a virtual impossible one for a single person. Although some people are willing to give a go at everything, identifying mastery is the best choice?

As the main purpose of the article is not to evangelize the fullstack development, i think that would be interesting to emphasize the main purpose of specialization. Specialization also has advantages over fullstack development (but also limitations). One of the reasons people choose specialization instead of generalization (a.k.a fullstack development) falls around companies. They tend to hire developers for specific roles that requires years of experiences. While this can be a minus for fullstack developers, can be a plus as this latter can demonstrate deep knowledge and experience in a given area. Sometimes, experience is not everything…

The learning curve may also be a problem for fullstack developers. Each person demands different periods to learn new technologies, best practices, new work methodologies, new design patterns, new everything… As this may not be a problem for startups, which lacks on budget and need a jack of all traits dude, on the other hand, may be negative for more mature companies as they might not be willing to invest that time, over and over again…

I’m not sure that knowing several programming languages and design patterns is synonym of a good fullstack developer. What i am pretty sure and conscious of is that fullstack developers are more open-minded to learn new technologies and accept new challenges, and even oversee which technologies would be a good fit for companies and projects in the near future or be the “The next Big Thing”. Centering your career around a given framework, technology or tool can be good or bad.

Saying so, it’s up to you to make that choice.