Gerald Weinberg is a long-time writer and commenter on the field of software enginering. I’ve been a longtime fan of Jerry, and had the privilege and pleasure of meeting him, working with him on some stuff back at HP, and attending one of his seminars.
He’s always proven faithful to my vision of how the field of software development should be run, in a humane, thoughtful, and intelligent fashion.
Here’s his answer to the question: “What was your most challenging experience in software development?”
The moral at the end is really the most important take-away for all of us learning and working in this area:
Moral: We may think that hardware and software errors are challenging, but nothing matches the difficulty of confronting human errors—especially when those humans are managers willing to hide errors in order to make schedules.
Software development is ultimately a human system, focused on solving human problems. This also brings into it all the human fallabilities and problems. Keep clear what’s important.