Uncertainty and the Art of Business Planning

What we can learn about software development from an Army field manual

Dick Dowdell
Geek Culture
5 min readMay 27, 2022

--

Courtesy of Vecteezy Vector Art

Managing a business in a competitive market is filled with uncertainties. So why do we work so hard to avoid acknowledging uncertainty in our business planning? How often do we build our software development plans around uncertain assumptions — and how often do we cling to a plan after too many of our assumptions have been proven wrong? The military learned long ago that the more quickly you can adapt your plans to changing circumstances, the more likely you are to win.

Please do not misunderstand me. I was an Army officer in Vietnam before I became a software developer, and I know that the military is far from perfect. But you would be amazed at how well it runs, despite the human frailties of the people who operate it. In wartime, organizational politics take a back seat to operational realities. Too bad that does not happen frequently enough in the business environment.

What the Field Manual Tells Us

The U.S. Army field manual, FM 50, Planning and Orders Production, distills what the Army has learned about planning and execution in dramatically uncertain environments.

Planning — the art and science of understanding a situation, envisioning a desired future, and laying out ways of bringing that future about — is a key enabler of effective business management and execution. Leaders and subordinates should continuously revise plans and goals based upon the most current understanding, any changing circumstances, and actual measured progress.

To paraphrase Star Wars’ Yoda. When measuring task progress, “No! There is no almost done! Done or not done, there is no almost.”

Keep individual planned tasks to 80 person-hours or fewer, so that you cannot deceive yourself about real progress. A measured task can be either 100% or 0% complete. Its goal has either been achieved or it has not.

The output of planning is the plan (with goals and budgets) that serves as a framework for anticipated actions through each phase of the resulting operation or operations. Since planning is continuous, the plan is always an interim product based on the information and understanding at a moment in time — and is always subject to revision.

The true measure of a good plan is not whether its execution transpires exactly as planned, but whether it facilitates effective action in the face of unforeseen events.

Plan execution demands a flexible approach that adapts methods to each situation. An effective planning process helps structure the thinking of leaders and subordinates while supporting insight and creativity. Continuous planning does not imply micromanagement, which is an anathema in the military. It is assumed that the leaders on the ground have the clearest view of tactical conditions and the most detailed knowledge of how to accomplish their mission.

Uncertainty

Military operations are inherently dynamic and uncertain. The complexity of friendly and enemy operations, unique combinations of terrain and weather, and the dynamic interactions among all participants create uncertainty. Chance and friction further increase the potential for chaos and uncertainty.

Chance pertains to unexpected events or changes beyond the control of friendly forces, while friction describes the obstacles that can sometimes make the execution of even simple tasks difficult. Both are always present for all sides in combat.

Except for the hopeful absence of violence, is that too different from the uncertainties businesses face in a competitive marketplace? How often to we know exactly what customers want (or whether they would rather have something else if they saw it)? How often do we know exactly what the competition is going to do (or is even capable of doing)? And when do we ever have enough time, budget, or people to do what we think we should do (or the certainty of knowing what that even is)?

The Takeaway

The wish for certainty with things that are important to us is a normal human desire. That desire is also a fundamental attribute of the business organizations and processes we create. But demanding certainty, where long experience shows it cannot exist, is counter-productive and wasteful of resources.

The military is perhaps less mindful of budgetary constraints than businesses are, but those constraints are no less real. No one can spend money they don’t have for very long. What the military has learned to accept, through painful experience, is that no matter how much planning and budgeting they do, it is impossible to eliminate uncertainty.

The military solution is to continue to adjust and adapt by iterating and communicating a plan throughout its lifetime — and to accept that a plan is always an interim product based on the information and understanding at a moment in time — and is always subject to revision. As soon as any plan is set in concrete, it will become obsolete.

Planning Software Development

In the 50-years that I’ve been building software, often managing the development of commercial software applications, I’ve come to see the wasted opportunities and resources that result from failing to understand that uncertainty is fundamental to building software.

Software development is a process of discovery, learning, and experimentation that — unlike manufacturing and construction — requires a highly iterative process of trial and adjustment. It requires agility — which, in turn, requires architectural models that minimize the cost of iteration.

The capacity of a manufacturing assembly line can be reasonably consistent, barring equipment failure or other infrequent disruption. The capacity of a software development team is far more variable and depends upon a myriad of factors that can be neither predicted nor planned for — though sound planning, architecture, and design can help to mitigate their consequences.

Most business plans assume a production line for software development, as if building software were like manufacturing a refridgerator. That is a very inefficient approach that expends inordinate time and resources ineffectively trying to eliminate uncertainty — when instead it should be optimized to respond effectively to the inevitability of uncertainty and change.

In my experience, a well-managed, effective and efficient software development organization can be up to 4-times more productive than the average development organization — all while being far more predictable and cost-effective. It is difficult to build such teams under the hamster-wheel conditions that exist in many companies.

The best way to deal with development uncertainties is to invest in building teams that are mission-oriented and thrive on uncertainty. Then fine tune them with good leadership and effective planning. You will be amazed at the real output of quality software such empowered teams can deliver — and how much less stressful living with uncertainty will become.

If you want to build software, you cannot eliminate uncertainty. Don’t waste time and resources pretending you can.

Thank you for reading.

People who seriously study warfare understand that its not only about tactics and fire and maneuver. It is even more about planning and logistics — getting the right people and resources to the right places at the right time is what wins wars.

Experienced Army officers know that amateurs might talk about tactics but the real professionals talk about planning and logistics. Maybe there is something to that perspective.

--

--

Dick Dowdell
Geek Culture

A former US Army officer with a wonderful wife and family, I’m a software architect and engineer who has been building software systems for 50 years.