You might think the riskiest aspects of your technology projects would be obvious—complete with flashing neon warnings.
Counterintuitively, the opposite is true. Complexities are often a tech project’s least-visible attributes, whether your tech project is a platform rollout, software development initiative, or system upgrade.
Here’s a rule: Complexity drives both risk and cost in technology projects.
So, what is complexity? The best way to understand a complex activity is to look at its sister activities, the simple and the complicated.
A simple activity is one that requires effort but little brainpower, such as shoveling a pile of snow.
A complicated activity has many interdependent steps that require understanding and skill as well as effort. Think of putting together an Ikea desk. That’s complicated.
I define the simple and the complicated in my previous two blogs.
How so? In both cases, there is nearly a 100% chance you will succeed at what you’re doing. You may be frustrated at the do-it-yourself piece of furniture as it absorbs more and more of your weekend. But you know it will eventually get done.
Not so with complex activities.
What does complexity look like?
A good metaphor to understand complex activities is heart surgery.
If a guy rolls into the emergency room in cardiac arrest, he may have four underlying conditions the doctors don’t know about. The surgeon could be one of the best on the planet. Still, there is no assurance the patient is going to make it off the table.
• Are highly fluid and risky.
• Have a great many unknowns.
• Require skill and experience to attempt.
• Come with no guarantee of success.
In the technology world, complex activities usually involve innovation. They are fluid and risky because no one has attempted them before. Think of the moon landing.
Here’s the problem: Most business leaders unknowingly accept large swaths of complexity in their tech projects.
Complexity’s often not communicated
This is because tech teams typically make the simple and the complicated (piles of snow and Ikea desks) sound way worse than the complex (heart surgery).
• “You mean Greg is going to have to key in 2000 zip codes by hand!” a project lead wails.
(Simple task. 100% likelihood it will get done.)
• “To do the upgrade, we will have to make technical fixes to 150 Drupal modules on our website,” a programmer laments.
(Complicated task. 100% likelihood of success.)
In contrast, technical people can make complex tasks sound like a walk in the park:
• “No one has ever integrated WordPress with our membership system, so we’ll just have to custom-code a solution.”
• “All our customer records need to be imported into our new database. We suspect the legacy data isn’t clean. So we’ll just write a custom script to cleanse, de-dupe, and normalize the data.”
• “We need better customer conversion on our website. Let’s custom-code a recommendation engine to up-sell in the check-out process.”
Look out for words like “we’ll just,” “custom code,” and “hasn’t been done before.”
These are your tip-offs your looking at a heart surgery.
How to scrutinize suspected complex tasks
Ask you teams key questions such as:
• “Do you know what needs to be done in this custom coding job? Or are we on new terrain here?”
• “Do you have an estimate of how long it will take?”
• “What are the known-unknowns? What are the unknown-unknowns?”
If you are in complex territory, the answers to these questions will reveal it.
Complexity isn’t poison
A quick caution: No one is saying complexity is “bad” or should be avoided at all costs. Innovation often depends on accomplishing complex tasks.
The point is that business leaders must know how much complexity they are signing up for in their technology initiatives.
Don’t simply accept “we’ll just custom code” statements from your programmers.
Know which aspects of your project are complex.
And ask yourself whether the added benefit is worth the risk and cost.