What is full-stack development and why it is still alive and well
13 December 2016 | Software & Technology
The end of the year is always a good time for revisiting concepts and debates in one’s field of interest. In our field of software development, a thing that is quite actual is whether to build up your career as a front-end developer, a back-end developer or, a path that we often forget about, a full-stack developer.
An article I recently wrote and published on the Free Code Camp got into the topic, and the echoes is had confirmed that the subject is hot. Some share my view on the benefits of full-stack as an approach, not just skill-set. Others recall the days of starting their careers, when being a developer meant being a full-stack developer by default.
It is indeed in the recent years that 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 decoupled 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 have their attractiveness. But with our team here at Fortech, we have a different opinion. We believe 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 is a must, in everything – designing, implementing, running, shifting, re-aligning and so on.
Such an environment requires, more than ever, flexibility and adaptation. As long as one has the right set of skills to start with and the capacity to adapt, one can remain relevant in this fast-paced environment.
So what does full-stack mean?
A full-stack developer is one who can engage on every level of a system, who understands the big picture, no matter how heavily separated are the sub-systems.
As a full-stack developer, today you’ll work 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. And a better way to think of skills — the full-stack approach — is to look at 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 Free Code Camp blog here):
#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 over its implementation.
#2 As full-stack developer, how can I find 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. It’s your ability to quickly get up to date whenever is needed that matters.
#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.
AlexTechnology passionate with a heavy interest in product development. I’m a huge militant for clean code and teaching people core programming skills and paradigms. In my free time I enjoy writing blog posts, trying out all sorts of new technologies and running.