Jamie Lawrence

Thoughts on Software Development as a Career

There’s a fantastic thread on the JoS discussion board in which the original poster was considering leaving a career in programming for some other field. This spawned lots of comments (including from Joel himself) that touched on everything that it means to be a programmer (or not), working in corporate IT, and so on.

This got me thinking about software development as a career choice for me:

  • Other than wanting to be a fast jet pilot (eyesight too short, legs too long), I've never considered a career in anything other than software.
  • I have no desire to leave the software development industry.
  • I enjoy programming to an extent that I do it in my spare time (but it's not all I do in my spare time).
  • I don't enjoy sitting down for 8 hours a day. I need fresh air and a walk a few times a day.
  • I'm currently employed by a huge software company, at a low level position, doing not very interesting work
  • I don't see much of a career path within those types of organisations which have the potential to support a family
  • I am very excited by the potential to create small businesses based on software. The costs and lead-in times have never been shorter although you still need to actually sell the product.
  • I program because I want the end result to exist. I don't particularly care whether it is me or someone else that develops it, just so long as the product exists.
  • Since I'm motivated by the result, I often get very frustrated when the actual development gets in the way. If the documentation is lacking, or a piece of code isn't working as expected, I get annoyed.
  • Since I care about the result, I've become extremely disillusioned with convoluted architectures. My experience is that they cause more problems than they actually solve and rarely live up to the expectations.
  • If I had the money to hire a designer and programmer to implement my ideas, I would. I don't care about the code that much.
  • I don't know a great deal about low-level details of hardware or software. I generally don't care about algorithmic complexity until I have to care about it.
  • I prefer clean, obvious, well-commented code to "smart" or "clever" code. I've found that extremely smart people (up in the genius IQ range) tend to make terrible software engineers.
  • I am surprised by the lack of outside programming interest by my colleagues. They don't code at home, buy programming books, or learn new technologies on their own initiative.
  • I despise restrictive development practices and micro-management (either by people or systems). Trust and respect me. Don't build in systems and "process" that prevents me from doing my job.
  • I don't like being treated like a hammer ("Hammer, go hit that nail"). If there's no creativity then the enjoyment is lost too.
  • I cannot stand technology that doesn't actually help anyone (particularly expensive, broken technology that is sold to the unsuspecting user)

Correspondence

No replies yet. Mentions of this letter from Bluesky and other sites appear here.

Written a response elsewhere? Send a webmention.