Hello everyone, it's not Friday, but I have an announcement and tale that
might interest you.

I’m easing into retirement.

Companies I’ve been working for are being sold, retired or are no longer
developing new software. Running out of legacy work would drive a regular
dev to seek new work, but in my case, I declined to create a LinkedIn page,
or send out feelers through contacts for new work, because… I’m burnt out.

Why?

I learned to code in 1975 and became an official programmer in 1981. I
wrote FORTRAN, ALGOL, COBOL, assemblers and various JCLs and scripting
languages on Honeywell, FACOM and IBM mainframes. Things were simpler back
then of course because you moved inside the ecosystem of a particular
manufacturer and had high-level support and voluminous and accurate
documentation. If you wanted to solve a problem or do something edgy, then
an answer was nearby. It was a different simpler world, but … everything
worked.

Now, well into the 21st century of IT, everything doesn’t work. My wife
often hears me shout from the other end of the house “Everything f***ing
doesn’t work”. I also only semi-jokingly say I’ll have these words carved
into my gravestone: “Everything f***ing doesn’t work all the f***ing time”.

Overall, what has burnt me out is *complexity *and *instability*. I’ll
break those topics down a bit.

Everything in modern IT is *complicated *and *fragile*. Every new toolkit,
platform, pattern, library, package, upgrade, etc is unlikely to install
and work first time. I seem to spend more time getting things working and
updated than I do actually writing software. In a typical working month I
might have to juggle Windows, Linux, Android, iOS, macOS, Google, Amazon,
Azure, .NET, Python, PowerShell and C++, and they all have different styles
and cultures. Software engineering has fractured into so many overlapping
pieces that I’m tired of trying to maintain competence in them all.

That leads naturally to the problem of *dependencies*. Just having so many
moving parts with so many different versions available produces
dependencies more complex than abstract algebra. How many times have you
hit some kind of compile or runtime version conflict and spent hours trying
to dig your way out of it? (A special salute to Mr Newtonsoft there!) Or
you install A, but it needs B, which needs C, and so on.

I often hit incomprehensible blocker *problems *for which web searches
produce absurd and conflicting suggestions which don’t work anyway. All I
can do is futz around and change things randomly until things work again. I
don’t know what went wrong and I don’t know what went right.

*The Web* -- Browsers, HTML, CSS, JavaScript, the HTTP protocol, JSON and
REST can all burn for eternity in fusing hellfire. About ten years ago I
told my customers I refused to write any more web UI apps. However, I was
forced to do so a few times and I’m still scarred by the horror. It’s just
over 30 years since the web became public and we’re still attempting to
render serious business apps using dumb HTML. HTML5 is the joke of the
century (so far). I still lament the loss of Silverlight.

*Git *-- Someone is lucky I don’t own a gun.

*Fads *-- An exercise for the reader: name all the platforms, kits,
patterns and frameworks that you know were once the coolest thing and now
might only be found in history articles. An advanced exercise is to
speculate on which currently cool things will be gone soon.

Finally, here is a list of typical things that give me the shits, just as
they pop out of my head.


   - Attempting to compile projects that have been idle for a year or more
   will usually fail due to changed dependencies or deprecations and it can
   take hours to get them going again.
   - I develop and test something with great care, then deploy it and it
   crashes. This is part of the general “it works on my machine” disease.
   - I can stop successful work on Friday night, then resume on Monday
   morning and everything utterly fails.
   - My USB microscope and music recording both stopped working recently,
   and it took me a week to discover that it was a block by Windows 11 app
   security (I thought it was a hardware or incompatibility problem due to
   lack of clear error messages).
   - Security! Walls, barriers and hurdles of security everywhere to crash
   through. Yes, I know we need security everywhere to stop the black hats,
   but it’s also stopping developers. Lord knows how many times I’ve hit run
   or debug on my own PC and I get “Access denied” and hours of research will
   be required. I’m also fed-up with ceaseless 2FA requests via email or SMS.
   - Everything about mobile devices. The ludicrous variety of devices and
   brands makes app development a nightmare. Then you must struggle through
   the variety of labyrinthine publishing processes.
   - My final entry is simply the tiny “thousand cuts” that torture you
   during development: version mismatches, inconsistent behaviour, strange
   errors, editor quirks, missing files, etc. All the little personal problems
   that slip between the cracks of bigger issues I’ve previously mentioned.
   Your mileage may vary.


In summary, being a software engineer is now so exhausting that after 40+
years of a generally enjoyable career immersed in programming and computer
science I’ve reached a point I never thought would arrive… I’m burnt out.
Even working on my hobby projects has become a burden because they suffer
from many of the impediments previously mentioned.

I still plan to attend some upcoming conventions and Meetups, and I’ll be
watching the forum, but my posts will diminish because I’m probably out
trying to prevent the garden and house from disintegrating back into the
earth from whence they came.

*Greg Keogh*
-- 
ozdotnet mailing list 
To manage your subscription, access archives: https://codify.mailman3.com/ 

Reply via email to