What are some differences among simple, complicated and complex problems and work?
We can think of simple, complicated and complex problems as a continuum going from
simple (where most things are known)
to complicated (where we know what we don't know)
to complex (where we don't know what we don't know)
Simple problems are those where we have a clear understanding of the problem and the solution is easily developed.
When our work is simple, it’s because we fully understand what we’re tasked to do and we know how to do it.
We can identify whether we’re engaged in simple problems or simple aspects of our work because:
- most things are known about the problem and solution
- they can be solved using well-established methods
- if we've solved this problem before, we can do it again roughly the same way
- if we haven't done it before, the solution is easy to figure out because we understand everything about the problem and how to create a solution
- we can create a plan of the tasks need to solve the problem
- Software: run a build that succeeds consistently. (Note that if the build fails for non-obvious reasons, this problem can become either complicated or complex)
- Medicine: treat an upset stomach
- Home: bake cookies; shop for groceries
Complicated problems are those where we have agreement on the problem, but the solution is ill-defined. That said, if we find experts in the problem domain, they can create a solution to the problem.
In product development or other work, we generally understand what we’re tasked to do and we can figure out how to do it if we have the right expertise on the team.
We can identify whether we’re engaged in complicated problems or complicated aspects of our work because:
- there are aspects of this problem that are unknown or that we don’t understand, but we know what they are and we will turn the unknowns into knowns through analysis
- we have solved a similar problem before, so experts can figure out how to solve this one
- we can predict the outcome of specific actions after we analyze the situation
- we can create a template of most of the tasks to execute to solve the problem
- Software: fix a non-trivial bug; extend a feature
- Medicine: diagnose a blockage and perform surgery to place a stent in an artery
- Home: buy a house; save for retirement
Complex problems are those where we don’t have agreement on the problem or the solution. With complex problems, the variables involved are so intertwined that when we change one variable, it has an impact on others. This results in us being unable to predict all the cause-and-effect relationships, we can only explain them in hindsight.
At the beginning of complex product development or complex work, we generally don’t know exactly what the final product will be and we certainly don’t know exactly how to create it. There are many unknowns that are unknown and we’ll encounter them along the way.
We can identify whether we’re engaged in complex problems or complex work because:
- we don’t know what we don’t know and we won’t know what they are until we encounter them
- we are often surprised by what we uncover
- they have a large number of interdependent variables, many of which are uncertain and can result in multiple potential solutions
- they cannot be solved through linear or predictable means
- we haven't done this before and we’re not even sure if there is a way to do it
- we don't really know exactly what the problem or solution is
- Software: create a new product for a new market
- Medicine: find a cure for pancreatic cancer
- Home: raise children