Last year I had the pleasure of attending one of Markus Egger’s sessions at Houston Techfest. Markus is the President and CSA of EPS Software, creators of CODE magazine and a company that I have a great amount of respect for. The people I’ve met from EPS have consistently been great programmers and speakers who have a commitment to creating great software.
The reason I bring up Markus Egger and EPS Software is because of a particular aspect of their business that challenges me as an individual and as a developer. On Markus’s personal website as well as published in CODE Magazine are several public facing postmortems. That’s right. Public postmortems.
These postmortems outline the successes and failures, the right decisions and the wrong decisions, that were made on real life projects performed by EPS software. This isn’t just a case study that glosses over details and highlights just the positives. I personally am in awe of this. Maybe admitting this says something negative about me, but I think it’s worth saying: I admire the courage and confidence that this concept portrays.
The concept of a public postmortem makes me ask myself the following questions: If I knew my successes and failures would be made public, would I code any differently? Would I have made the same decisions? Am I truly looking to learn from my mistakes? What if my company made public facing postmortems? What would my personal postmortem say on Project XYZ? Can I code without regret?
Software development is a continuous learning process, one that I am confident that the day I believe I have mastered it is the day I should be forcefully retired or committed. Our profession is one of continuous growth and learning, only bested by a continual desire to better oneself. We all have our moments of reflection where we see something we’ve written before and cringe. We’ve all written code that we adamantly hope is never traced back to us. That there’s no developer lurking in the dark alleyways of the internet waiting for the right time to surface and single us out.
The admiration I have is for the pure embrace of the fact that we are imperfect. We will make mistakes and hedge bets that might not turn out as well. There are lessons we can learn if we are willing to hold ourselves accountable for those missed decisions. If we cannot do that, then we will never become the greatest we can be and we will never have the confidence necessary to make the best decisions we can make.
So here’s the call to action. For myself, for anyone who might be listening. Let’s code with the confidence that our decisions were the best we could have made. Let’s reflect afterwards and confirm or adjust our opinions to align with the results we’ve achieved. Let’s learn to code without regret.