I’ve enjoyed doing software development, but it hasn’t been the most lucrative career. Of course, if I’d gotten into web development a decade or so ago, or been actively involved with any of the other hot-technologies-of-the-moment, I could have earned more money. Of course, at the moment, I consider myself lucky to be employed at all.
It fits in with something I read years ago … there’s a “money stream” that flows through organizations, and the closer your position is to being on the banks of the stream or actually within it, the more money you earn. As a programmer, I’ve usually been nowhere near the stream.
There are other problems with being employed as a technical person. Management often considers engineers fungible, so experience is discounted – except when your resume is being considered. I can remember seeing advertisements that required five years experience with software that had only been available for three – if you hadn’t been working on the development team, you didn’t qualify for the position. I also remember a cartoon from some years ago showing a hiring manager reading a resume, with dialogue on the order of, “I see you have ten years of experience with the technology, twenty-four patents, and forty publications. No Master’s degree. The position requires a Master’s degree.” At least this time around, I haven’t seen any ads that state “x months in the position offered” as a requirement.
Then you have the pressure. Not just feature and schedule pressure, but the knowledge that your work may be safety-critical. If you’re programming the anti-lock braking system for an automobile, or the fly-by-wire stability system for an aircraft, you are subject to worries and pressures that someone programming a media player application doesn’t have.
All of which leads up to this picture, which I found here: