No one thinks back to the root cause of the pain they don’t feel. There are new problems to solve, new features, or new projects. It’s very easy to miss a critical element of what got you to this point in the first place. Think about it. When was the last time you stopped and appreciated a piece of software that’s run smoothly for years?
Ironically, less disciplined developers who commonly let bugs out into the world may be more likely to get the technical kudos. After all, they’re performing the software heroics of late night, last-minute debugging and patching. It’s their technical ability that a customer is held hostage to and rescued by. ...these efforts are highly visible to customers. I suspect some developers even get addicted to the opportunity to be a hero and save the day through their technical prowess. This isn’t really in the best interest of customers, but if you’ve headed down the path of undisciplined, unpredictable development, you’re probably thankful for the effort.While overtime and late night heroics are highly visible to managers and non-technical higher-ups as extraordinary effort, one might step back and ask, "Why were these efforts necessary in the first place?" Quiet, consistent quality is distinctly un-sexy. It takes place at 2 PM on Tuesdays, not 2 AM on Saturdays.
Heroics are great when they’re needed, but it sure is better to not need them at all.
Why is our software so buggy, our progress so unpredictable? Let's strive to eliminate heroics from our process, not encourage them.