As an enterprise software developer, I spend way too much time sitting at my desk, drinking coffee or iced tea, listening to music while lost in an editor for hours on end. Unsurprisingly, this led to what some might affectionately call a “Dad Bod.” While there are many awesome aspects to parenthood, the idea of having a Homer Simpson body type does not appeal…
I started taking classes at Colorado Krav Maga to get more active and to practice some self-care. I am still a beginner, at about 4-5 months in, but I’ve learned some basics and guiding ideas in Krav Maga.
Krav Maga is a modern, Israeli martial art. Just as you iterate and optimize your code base, different athletic and self defense skills are refined with multiple iterations. From this premise, Krav Maga is intended to be a highly physical, practical style of training and self defense.
In addition to being a badass self-defense practice, I have learned principles from Krav Maga lend themselves well to software engineering and development.
Identify the Immediate Threat
Krav Maga tactics involve defending against choking or other highly threatening attacks. Before any defense can be successful, you learn to clear your airway or get off the ground before anything else.
This got me reflecting on prioritization of software development. Certain features (or fixes!) immediately impact the success of your project. These include getting an automated deployment process, basic logging config, or even a basic proof-of-concept (POC) for an approach. Whatever is keeping you from delivering something of value tomorrow, start working on it today.
Krav Maga makes great use of highly physical, explosive movements. These movements correspond to natural reactions, and tend to be hard to over-power.
At risk of over-stretching the metaphor, once you identify an immediate threat to your project/product/mission, take immediate action. Remember that an immediate 80% solution can be iterated on, while waiting to write a 95% solution can take much longer.
Finish the Fight
Ok, this is definitely a stretched metaphor. For self-defense, Krav Maga emphasizes highly physical responses to attacks. Delivering one defensive blow is not enough- one must make sure they are safe.
As with Krav Maga, after reaching the 80% solution, you have to determine how much business value for a product is satisfactory of your project goals. This is highly dependent on the situation; for an MVP, 80% may be over-engineered, while product-grade (funded) development projects may require more refinement for edge cases, scalability and error handling.
I think this analogy has been stretched to the point of breaking. The point is, prioritization and focus can make the difference between a successful solution or a slow-growing mess of features.
For help building an MVP, check out this video about how to story map custom software.