What is full-stack development and why it is still alive and well
10 January 201913 December 2016 | Software Development
The end of the year is always a good time for revisiting concepts and debates in one’s field of interest. In software development, a hot question is whether to build your career as a front-end developer, a back-end developer or a full-stack developer, path that we often forget about.
An article I recently wrote and published on Free Code Camp delved into this topic and generated echoes that confirmed the subject is hot. Some share my view on the benefits of full-stack as an approach and not just as a skill-set. Others recall their first days as programmers, when they were full-stack developers by default.
In the recent years we started to draw two separate career paths for developers – front-end and back-end – which came with the increasing complexity of software systems; user interfaces are now separated from much of the logic behind them, which gives birth to the two distinct worlds of front-end and back-end development.
The benefits of specialization may be attractive to some, but our team at Fortech believes otherwise. We feel that the world of technology is becoming so fast-paced and the clients’ and users’ needs so sophisticated (in the sense that they require fast, reliable solutions to problems which are apparently simple, yet complex), that being versatile in everything included in the umbrella term of software development is a must. A good software engineer must master designing, implementing, running, shifting, re-aligning and so on.
More than ever, such an environment requires flexibility and adaptation. As long as one has the right set of skills to start with and the capacity to adapt, one can remain competitive in this fast-paced environment.
So what does full-stack mean?
A full-stack developer is one who can engage at every level of a system, who understands the big picture, no matter how heavily separated are the sub-systems.
As a full-stack developer you might work today on a fancy drop-down menu. Tomorrow, you might have to adjust the API interface for that menu. The day after tomorrow, you might have to go further down to the database to improve the underlying queries your API uses to get its data.
So it’s not just skills, it’s also an ability to approach things from multiple perspectives and an attitude of being comfortable with change. A better way to think of skills — the full-stack approach — is to look at the responsibilities you’re able to take on as part of your job.
Here are some questions that you might have and my answers to them (for more details, I invite you to read the full article I published on the Free Code Camp blog):
#1 What is the value of developing a full-stack culture within my team?
The true value of full-stack arises when you’re able to understand the business requirements behind a feature, then take full ownership of its implementation.
#2 As full-stack developer, how can I find the time to stay up to date with so many technologies and frameworks?
Staying up to date with the latest tech is not a good indicator of performance. What really matters is your ability to quickly get up to date whenever required.
#3 As full-stack developer, should I split my work 50–50 between front-end and back-end?
The only rule you should split your work according to is the one that comes out from the needs of the project.
#4 Is it ok to prefer one type of development over another?
It’s like learning how to use the Force. First you learn how to jump, heal and wield a lightsaber. When you reach a certain maturity you decide whether you’d like to start doing mind tricks or force-choking people. So yes, most likely you develop a preference over time, which is perfectly fine, as it takes you to mastering some ecosystem, but without losing sight of the other.