John Obelenus
Solving Problems & Saving Time through Software and Crushing Entropy
Our work experience is an experience of iteration. Loops. We show up day after day. Week after week. Year after year. The goal should be for each of those loops to be building on one another. But, this is not the only kind of loop. The loop that interests me is the OODA loop. Initially articulated by John Boyd for the Air Force, it can now be found throughout the business and management world.
People have written books and courses about the OODA loop, but if I were to distill what completing a loop in the software development process looks like it would be: the time between realizing a feature gap exists and deploying a solution and having customers using it. The internals of the loop itself is important, no doubt. But what Boyd was really telling us is—in a competitive environment, whoever can complete their loop and start another before their opponent, has the best chance of victory.
The speed at which you complete loops is everything. This is the root of so many other pieces of advice (e.g. "Best is the enemy of good.", "Define an MVP") and warnings ("Scope creep is bad", "Don't optimize prematurely"), as well as the baseline of so many agile practices that prioritize working code and de-prioritize long term planning.
Now, how do you make that loop fast? Again, there are tons and tons of focus on the technical aspects; GitFlow vs Trunk-based dev, test coverage, continuous integration, continuous delivery vs release trains, etc. But, there is one point that I would love to see more focus on: making decisions.
Irreversible decisions should be made with great care and consulting many sources. However, very few decisions are irreversible. All other decisions should be made as quickly as possible.
You should arm your teams with values that actually help them make decisions during their day-to-day. Many values look great on the wall, but how many help you choose Path A vs Path B?
You should arm your teams beforehand with a rubric or matrix that tells them: "When you are forced to choose between X and Y, choose X." The shape of many decisions are known ahead of time—enable your team to know they are making the right ones (without you) by outlining the scenario to them.
This is one of the best ways to ensure that you are managing with Context and not with Control. When you are making decisions be sure to share the context of why and how you came to this conclusion. Make a note of how much information you have that your team does not. Create a process of communication to give them this information. If your team is making decisions that surprise you and that you disagree you should consider that a failure of leadership. They are missing context you have, or you have not gotten your team(s) to value what you value.
This is the responsibility leadership takes on to create quick OODA loops for your organization.
[Image credit goes to Pavel Samsonov of Amplitude from Twitter]