DEV Community

Cover image for Full Stack Fatigue:
Peter Harrison
Peter Harrison

Posted on

Full Stack Fatigue:

When I became a paid programmer I knew one language: DBase. Well, two if you count BASIC, but the less said about that the better. You could write a fully functional application in DBase, and distribute it as a exe file. You had to know something about data structures as well. The barrier to entry wasn't that steep.

Today what do you need to write an web application? You will need HTML, CSS, and Javascript. You will need to adopt a front end framework such as React. You will need to learn a back end language, which these days can also be Javascript, aka Node. Or you can use Java or Python. You will probably use a SQL database, so you will need to know SQL. You will need to expose services via REST, so will need a REST API framework. You will need to store your code in version control, which these days is usually Git. To deploy your application you will usually need to know about Cloud services, Docker, Kubernetes.

Your application will need to implement security and authentication, for which there is OAuth2. You will also need a CI/CD system, which was previously Jenkins, but now varies depending on the platform. You will need to learn Cloud Formation on AWS, Bicep on Azure to do infrastructure as code.

This isn't an advanced stack. This is the kind of skill set expected of a "full stack developer". As a software developer I have always known that you can't stay still. The old COBOL programmers had a good wicket for a while, but you get stranded on a declining island. So constant learning has always been a absolute necessity to stay relevant.

I had ended up specializing in integration and business automation, learning jBPM, Bonita, Activiti, but even there times are moving with new approaches which leave BPM type solutions in the dust.

Even though I have raced to adopt new skill sets it has become increasingly difficult to stay ahead of the skills demanded. And if I am having trouble the situation for junior developers must look like Mt Everest. Much less the fact that AI is now encroaching, making it even tougher for entry level positions.

There is a danger in thinking the present is just like the past. I would have thought the future would be easier for developers, better tooling, making life easier, but the evidence seems not to point there. AI in some respects makes things easier, but also more opaque, giving people power without tempering them with experience in software.

Should we expect people to be jack of all trades, able to handle everything from the front end to designing cloud infrastructure? When I began everything was on one PC, applications compiled to a single file. Today we have highly available distributed clusters, complex deployment pipelines and quality gates. It is good for developers to at least understand the whole stack, have some exposure to it, but having deep understanding of the whole stack has become unrealistic.

Are we cutting off the pipeline of young developers? Are we placing too many expectations on them? Is there a way to ease these expectations in the hiring process? Or do we think AI will be the silver bullet, removing the need for us to program at all?

Top comments (5)

Collapse
 
xraytangooscar profile image
X-ray Tango

Hi! I won’t pretend I have a clear answer to those very legitimate questions, but I do think the comparison between building a local executable in the past and today’s full-stack web development isn’t entirely fair. They don't output the same amount of value. At the minimum, the complexity of the modern stack comes with a much greater reach and impact: when you build for the web, you’re creating something instantly accessible to the world. In fact, distributing an executable file used to involve hardware, mail, or retail shops... that should also be factored into the comparison. Anyway, it makes sense that the effort and breadth of skills have grown along with the value being created.

I also don’t think it should be expected that any one developer fully masters the entire stack. Most cases, which, let's be honest, have low to medium traffic volumes, can be handled with roughly 80% of the knowledge, probably less. The real complexity lies in the last 20%, which only matters for very large structures that usually have specialized teams anyway.

As for AI, we are clearly in a transition period, and the near future is extremely hard to predict. Junior developers probably do have a tougher start now, especially with hiring and expectations, but they also have access to tools that can make them productive much faster than before. There’s a trade-off, it's unclear to me if it's advantageous or not - yet.
Coding agents and AI assistants will reshape the developer role (as it will for many other roles), but I don’t believe they’ll replace the need for human technical minds. We’re just in that uncomfortable middle phase before things settle into a new equilibrium.

Anyway, just my two cents. Great article!

Collapse
 
cheetah100 profile image
Peter Harrison

The old MS-DOS dBase applications (Clipper actually) had simple single process text only interfaces. No mice, just keyboard. They ran on one PC, or if you were lucky you had a local network and would share the database files. No database servers, not TCP/IP. My point is only that it was a very different world. But the CRUD complexity was much the same as you would see today in Node/React.

I don't disagree with you in relation to developers not mastering all skills, although even a front end dev faces a plethora of technological options today. The main issue is that companies (or HR) today do specify broad ranges of technologies in job adverts, and oddly specific requirements. They also specify years of experience when sometimes these technologies are quite recent. This has been true forever to some extent, but today the raw number of skills required has increased and become more specific.

As for AI - we are at the foot of the abyss.

Collapse
 
xraytangooscar profile image
X-ray Tango

I did not mean to diminish the complexity of the work devs used to do - sorry if it sounded that way.

Collapse
 
dclnbrght profile image
Declan Bright • Edited

Fully agree that software engineering has become increasingly complex, and probably unnecessarily complex. Things were very different when I started too!

However, with recent advances in AI agents and coding assistants I'm more optimistic about the role of a fullstack engineer. AI can do a lot of the project setup and grunt work, we get to focus more on defining what should be built and verifying that it's built as intended.

In a way, it's becoming more of an architect + dev manager role, mixed in with us coding the interesting parts.

I published this post earlier today, it might be of interest: Fullstack Software Engineers Are Well Positioned In the AI Era

Collapse
 
elanatframework profile image
Elanat Framework

You can use Elanat's WebForms Core technology.
Everything is simple and modern at the same time.

github.com/webforms-core