I feel myself growing weary of this field, but it's not because of the activity of writing code, but observing the same folly, again and again, at one company after another. And it's only getting worse.
To illustrate, when I worked a large corp, they had business analysts who knew the business, and actively engaged development. When I then went to medium/small companies, they typically had no business analysts, indeed no one who was capable of working with development to define projects and work out the edge cases.
Then seeing this formalized as 'agile' development were the developers become the business analyst, and devops where the developers become the sys admins, I wonder, what is it everyone else at these companies, what are they doing exactly?
Enhancing shareholder/VC value.
Oh, and making more money than us, and claiming credit for our hard work and understanding.
When I am coding I forget everything and often I make too long hours. Not because I have to but because there is so much more to code; work coding, side project coding, hobby coding... I cannot see how I would ever start to dislike it.
By the way; if there is a shortage of coders (as the article says), how come the demand is not a bit more flexible as in allowing people to work from different locations? I know for instance there is a large demand in Silicon Valley while here (in Europe) many of friends, who would work quite a bit cheaper than the prices I see flying around there, sit idle. They just cannot or don't want to move.
There's a shortage of companies that are flexible about paying higher salaries, offering remote work, and doing away with whiteboard interviews.
The basic problem is that developers want to grow and solve new and interesting problems--and at the very least, this billing of them as 'programmers' pretty much implies a mentality of factory assembly that doesn't fit.
It's the core structure companies and businesses that burn out/burn through developers, and until that changes, you'll keep losing talent.
It's not enough to pay us decently, though many don't do that. It's not enough to give us a direct stake in the revenues of a project, though almost nobody does. It's not enough to give us interesting problems to solve, though few even have those problems.
You've got to do all of those things.
We're collectively sick of solving problems that have been solved before, and also of self-inflicted problems that anybody with half a brain should've seen coming but biz wouldn't listen to tech.
We're sick of working with people that aren't clever and don't want to learn.
We're sick of making me-too apps because that's what gets funded.
We're sick of having to play catch-up on constantly evolving tech, made so by firms who are playing the VC moneyball game and who derive their profits from marketing and pushing tech that honestly is no great improvement on what's gone before and which may simply implode when the money dries up.
We're sick of dealing with and babying customers who literally do not understand the value we create for them, and for having a profession with social cachet only slightly above child molestor.
We're sick of being managed by people who by definition don't understand their business well enough to teach an idiot savant how to run it automatically (which is exactly our job description).
That's why we don't want to program anymore.
EDIT: Interesting on the downvotes...fat fingering things on mobile, or what?
[...] This happens when the managers/executives try to push the problem onto IT/engineering, blithely assuring everyone that "The New System" will somehow paper over and solve their org/process inconsistencies.
This means that the engineering teams gets requirements for one tool to handle the multiple teams' workflows and business-logic, stuff which nobody seems truly interested in harmonizing long-term. Thus your tool needs a fuckton of special-case logic and workarounds, leading it to become a monolith of spaghetti. Even if it started as a bunch of separate systems, they become slowly woven and pulled together by all special-case webservice calls and database state-sharing.
Then, after release, some people in suits spend a while patting each-other on the back, claiming to have materially improved "how we do things"... up until somebody wants to make a seemingly-simple change that conflicts with all of the other pick-up sticks.
P.S.: In a weird way, the implication that the programmers can fix those big issues is flattering, but it fades quickly as you realize:
1. You probably aren't actually being given the freedom/power to solve the real problem.
2. If you were to solve the real problem, the company would be underpaying you.
3. Even if the first two things cancel-out, the end-result is a PITA.
Usually we end up paying the logistical debt racked up by some clever suit months or years prior.