A well known distinction of problem types are Simple, Complicated, and Complex (some people might add Chaotic).
This chart can be found on page 2 of the paper "Complicated and Complex Systems: What Would Successful Reform of Medicare Look Like?":
Segmenting problems into these categories is the first step to coming up with an effective solution. We can decide which of the following approaches must be taken:
- Set out simple, well defined steps from the beginning and follow the whole thing through (Waterfall management)
- Set out high-level steps (goals), ensuring there is a high level of autonomy and communication from the leaf level team members. Also ensure there is plenty of testing/qa along the way. Meet as a team regularly to discuss progress and problems - hopefully to help eachother with shared knowledge and new techniques (Agile management)
- "Wing it" through the situation. While always bearing in mind the end goal, respond to changes and problems along the way. It is unlikely that the outcomes will be measureable either part-way, or even once the task is complete. This is a highly fluid, dynamic, and responsive approach.
You might notice that we don't currently have a "management name" for the third point. It's a very uncontrolled process and focuses on divolving power and responsibility from a central point to the outer reaches of a team.
As our technological advances continue to increase the complexity of our day-to-day lives, we need to start moving our management of problems from being 'centralised' to a more 'distributed' style.
More on centralised and distributed problem solving/management in future posts, but different problems require different approaches, and we've recently been tackling totally new problems with a completely new level of complexity to them.
If we approach all problems with Waterfall/Agile style methodologies, we'll become the proverbial hammer, to which everything looks like a nail.