Factoring complexity

10.04.2006
Good morning, my stalwart friends and Agility Corps recruits. As I promised last month when I inaugurated this virtual group of IT practitioners, today I'm going to talk about encounters with complexity.

Complexity is that place where huge systems-development budgets disappear, leaving nothing behind but empty checkbooks, loose-leaf binders full of incoherent specifications, and half-baked program code that crashes unexpectedly. It's the places on the map of a development project where orderly logic gives way to great foggy spaces. All that is known about these spaces is, "There be dragons here." Many brave system developers have marched into them and gotten lost.

Developers' senses are overwhelmed by detail. They are assailed by hard-to-understand patterns. There is much hollering and hand-waving as the business folks describe all the things that could happen and all the things that must be guarded against. Many fine developers emerge from these places with slack jaws and glassy eyes. They babble about disjointed facts and are often on the verge of tears. They have been devastated.

Courage alone is not enough to survive an encounter with complexity. You need good technique, too. In the heat of the moment, smart use of the six core techniques I have written about this past year is what separates brave winners from valiant losers. Your company turns to you, as a member of the Agility Corps, when the going gets complex. It needs you to find a way through those foggy spaces to build the agile systems it needs in order to reach its destination. Are you ready?

Now tell me, how do we apply simple techniques to cut through the noise and find the simple patterns and components that make up complex situations?

Before you answer that question, consider how mathematics deals with complexity. Do you remember trigonometry and those tests where you had to graph solution sets for big, hairy quadratic equations? Remember how those equations made your heart race and your blood pressure rise? And do you remember that ray of hope when you realized that you had been taught a technique called factoring that lets you simplify these equations? For example, what if you are asked to calculate x and y values and plot the graph of this equation?

If you don't panic, if you keep your cool and apply factoring to the equation, it simplifies to become:

Now you can easily calculate the x and y values.

By direct analogy, there are two techniques to apply in complex business situations. First, use process mapping to identify high-level activities and break those activities into their component tasks. Then use data modeling to define the structure and volume of the data handled by those tasks.

Presto, you just factored business complexity and revealed its simple underlying patterns. Now you can describe the processing logic and create a system prototype to deal with the situation. Congratulations -- you earned your pay. Take the rest of the day off.

Before we finish, though, I noticed that a few of you froze up when confronted with that equation. I also know that some of you panicked recently when confronted with a complex business situation. Calm down. Take a deep breath. Go back and review the core techniques and practice using them until you feel confident that you can hack it in the Agility Corps. And before you go -- give me 50 push-ups.

Michael H. Hugos is a CIO at large, author and speaker. He is also a member of the 2006 Computerworld Premier 100 IT Leaders class. His books include Essentials of Supply Chain Management and Building the Real-Time Enterprise: An Executive Briefing (both published by John Wiley & Sons). He can be reached at mhugos@yahoo.com.