Software engineering is an interesting field. You start your career with visions of elegant algorithms, adoring groupies and start-up riches but eventually you have to face the brutal reality.
- Nothing ever works the first time.
- When something finally works, it always breaks later.
There are two broad categories of organizational responses to this grim reality.
- Delusional. Keep looking for the magic silver bullet that will make defects vanish: smarter people, better tools, new design methodology, shinier executive hair.
- Practical. Acknowledge that defects are ultimately caused by human cognitive frailties and learn to prevent, detect and mitigate them as best as you can.
More about practical defect-busting techniques later because now I need to go to the hardware store to buy plumbing supplies and light bulbs. Because everything always breaks.