I Haven’t Seen a New Software Development Problem in Thirty Years
…why do we keep making the same mistakes over and over?
We’ve got the whole opposable thumb thing… and the gift of language… but what the heck? Why can’t we learn from history and start making some new mistakes and generating some new problems?
I’ve been working in the software development industry for over forty years… and haven’t seen a new problem since my first time around. I’ll outline them below… in hopes of reaching my younger self. It would be good to not retrace these in the future… but that’s up to you… and your leadership.
Later in my career, when called in to work on a tough program challenge, I used to say that I hadn’t seen a new problem in thirty years. Most folks thought that was funny and that I was just kidding them. Wrong!
Major Recurring Problems
The following problems been found to play a significant role in almost every software failure I’ve seen over my long career as a developer. They can be divided into three major (and measurable) categories.
- Effectiveness — degree to which the thing you’re making aligns with the thing you need.
- Efficiency — ratio of useful work performed (by a person or a machine) compared to the total energy expended.
- Robustness — condition of strength and good health; and capability to withstand or overcome adverse conditions.