October 4, 2020

Make Mistakes

The earlier we can make mistakes and find them the cheaper they are to deal with. If we can identify problems during design discussions that’s far cheaper than potentially developing part of the software. If we can discover bugs during the development phase through testing that’s far cheaper than it having to recycle back from QA. If we discover and fix the bug in QA it’s way cheaper than releasing the bug to production and having to stop everything to hotfix it. If we find out a year later something hasn’t been doing what we wanted - you get the idea.

Sometimes we forget this, or at least don’t put it into practice. We feel pressure to pick up a story and immediately get to work, which for us usually means putting our hands on our keyboards to start typing. But often if we would spend a few minutes looking at the code and imagining all the ways we could accomplish the story we would find better ways to do the work before we even start. Sometimes we might even figure out that this story can’t work as written. These are cheap and easy to fix at this point.

Once we’ve begun coding, we have several tools to help us make mistakes fast. Git is a fantastic tool for dealing with decisions that turn out to be mistakes. If you commit early and often Git is the next best thing to a time machine – you can rewind to a point in time before you decided to start refactoring that file that turned out to be way more complex than you bargained. It can be hard to throw work away, but it’s cheaper than continuing with a bad decision and having to own it forever.

As a final note on this topic, use this reality to your advantage! Because mistakes are cheap and easy early in the process that’s the perfect time to push boundaries and try out things that might be crazy. Over the years I’ve reverted more “what if I tried this” branches than I can count. But sometimes those crazy ideas worked.

© Eric Biven 2020