I don't always test code, but when I do, I do it inproduction

Sometimes I want to push a quick change to production without applying the proper tagging/versioning system in place. Just make the change in the prod server and don’t tell anyone. I can probably even sneak it into trunk without anyone reviewing the code! The customer will never know and none of my teammates will have to know I messed up in the first place. No harm, no foul, right?

GM’s present recall nightmare is an example of what can happen when this kind of engineering ego goes unchecked. This lesson from the automotive engineering world applies equally to software.

The reported story is that an engineer at GM approved a part that did not meet torque specifications, and as the report says, he was more concerned about the part failing in cold weather - a bruise to his ego. He later then fixed the part without changing the part number, a violation of GM protcol.

As a result, the error wasn’t found for years, because there was no paper trail. The error has cost at least thirteen lives.

It’s one thing if you tell your team and document the quick-fix, and make sure it makes it into source control. But as software eats more of everything it becomes more and more mission critical. So its very important to stay out of the habit of making un-documentend changes to protect ego, lest the company wants to end up in a mess like GM is.

Self-awareness and professionalism matter. How horrible it must be to have lost a family member thanks to an engineer’s ego.