There are more and more open software developer positions in the market. And it's not just about quantity - breadth & variety of roles, technologies, platforms & languages continuously increases - to the satisfaction of all of us. But if you look carefully at the full spectrum of offers available, you'll notice that NOT ALL job offers are about ...
- ... technologies / platforms considered "modern", "promising" or even ... "alive"
- ... building new, exciting features / services / products (even partially)
- ... creative work - design, modeling, using modern dev practices, methods & extremely versatile tools (like multi-purpose programming languages) to build something out of nothing
There are more & more offers that are far more about ...
- ... dealing with legacy systems, written in dead languages, operated with ancient tooling, not affected by any software craftsmanship inventions younger that 20 yrs old
- ... 99% maintenance - troubleshooting, manual monitoring, occasional fixes, basic data transformations, some operations work (almost like tech support)
- ... very limited degree of freedom - system has few million lines of code written 25 years ago in language that can burn your eyes out, so no-one will risk architectural refactoring (& potential regression that will follow) - you just have to follow the guidelines & use obligatory templates / patterns regardless of how stupid / dated these are ...
OK, you should see my point by now - I believe you've seen such job adverts as well. What do you think about them? Funny? Shitty? Unrealistic ("no one will go for such a thing!")? Actually, I don't think it's that simple ...
Romantic era of codemancers is over
No, I'm not going to convince you that is a better idea for developer's career :) But the fact is that ... Such systems (legacy, ancient, hidden in musty crypts, guarded by the demons of the past ...) still exists & someone HAS to maintain / operate them. In the end they may end up decommissioned / re-written / replaced with something else, but some of them were customized so thoroughly that it may be a very costly endeavor.
And in the meantime we produce even more legacy that grows old even faster - C++ was considered a top skill when I was starting a professional career, now barely anyone of the juniors wants to even touch it.
What does it really mean for us? Do we have (as a profession) an identity crisis? Personally, I wouldn't call it a crisis - profession is evolving just like the technology & the world itself. One has to accommodate the fact that:
- Software development is not only for "the chosen ones" - elitist group of people who've managed to graduate the most besieged field of study at the best universities
- World has a great need for "commodity software" that ain't really ultra-sophisticated, bleeding edge, forthcoming era over-hyped Next Big Thing
- There's pretty much the same amount of "magick" in this profession as in other ones - there are (& there will be) three archetypes of software developers:
- A very few "artists" who create unique "masterpieces"
- B far more artisans, who deliver solid, but not breathtaking new creations
- C and in the end countless crowds of laborers who just want to do what they are told to & treat it as any other kind of job they could end up with eventually
Broken balance
Currently the market is undermanned & totally out of balance, but it applies especially to the last category (C) (as the needs there are the biggest ones) as a result:
- many people who aspire to category A or B play the role of C instead ...
- ... while being massively overpaid for that (otherwise they wouldn't really bother)
Yupp, it's all broken like ten hells. But actually, even though balance is very shaken it will fix itself (re-balance) in time - and for many people it actually sounds like a great opportunity:
- Not everyone is an ultra-passionate software developer that has started coding before learning to walk & has a burning urge for creation :) Not everyone is destined to (or even wants to!) build another Google - some just want to do what they have to, leave after 8 hrs, collect the payroll & have some life that doesn't really have to be all about code.
- There are people who have some talent for abstract thinking (conceptual modelling), maybe have some scientific / engineering background (not necessarily in computer science, but let's say: electronics, physics, mathematics) & may consider (due to whatever reasons, even purely financial ones - IT jobs are usually quite well paid) making a big shift in their career - e.g. becoming a software developer
For such people coding in COBOL / Delphi / Fortran, maintaining multi-million line codebases or manual, highly-repetitive building forms based on some 90s templates may be quite a valid career model - something they can derive satisfaction from, something that may provide them a stable job & solid income.
Actually, why don't you look around?
Maybe there's someone in your family, an acquaintance or even a close friend who's not really happy with her/his career, feels undervalued due to being underpaid, struggles with getting a job aligned with her/his education - someone who you didn't even think about in context of being a software developer, but ... may actually be a good fit for archetype C mentioned above. And then - everyone wins.