“Architect” is a thought-leadership role, and being a thought-leader means dealing with ambiguous problems. You may need to be the solver of ambiguous problems, or guide your colleagues so they can do so.
Dealing with ambiguity is an important skill, otherwise it will slow you down or lead to poor decisions.
Beware of Over-Baking
A symptom of being paralyzed by ambiguity is to over-bake a piece of work – probably one that is comfortable.
Our brains love avoiding difficult or unpleasant tasks in flavor of easier and more enjoyable ones, so it’s important to recognize when you are faced with ambiguity before too much time is lost to avoidance. If you find yourself putting a lot of effort into something fun but relatively trivial – that might be a sign to move on.
For example, imagine some two part process: step one is to conduct some analysis, but you’re unsure what step two looks like. If you find yourself (or someone else) over-baking the analysis (“Oooh, I really need to add some more colour to these charts”) it might be due the next step is not well defined i.e. you don’t know how to start it or you don’t have a plan.
The following approaches can be useful for dealing with ambiguous problems. These approaches aren’t mutually exclusive – you can mix and match.
Go back to the Objective
One of the first things to do is make sure you haven’t forgotten the objective.
Often we immerse ourselves in a complex problem and get so caught-up in its intricacies that we forget what we’re actually there to achieve. Once we lose sight of our objective we tend to get lost. Therefore, remember to keep coming back to the objective: make sure you clearly understand it and don’t lose sight of it.
Also, you can use the objective as a point of reference – to work backwards from, and that can help penetrate the ambiguity.
Go Back to First Principles
Similar to the previous strategy, a good way to take control of a problems intricacies is to go back to first principles.
“First principle” is essentially a fundamental truth that stands alone. Aristotle defines it as “the first basis from which a thing is known.” In the context of this strategy, first principles refers to things which you know to be true – not things you assume.
Often our understanding of complex problems is a web of linked assumptions; if the overall hypothesis is flawed we can end up getting lost due to circular reasoning – essentially we get defeated by the complexity. Going back to first principles is essentially to throw all your assumptions out the window and start again.
Using first principles helps you work methodically and focus on specific things that matter; “divide & conquer” can be a good complimentary approach.
Give Yourself Time / Space to Think
Complex / multi-dimensional problems will require more mental processing than usual.
The number of variables & possibilities present, plus the variety of disparate information available, will be larger than usual. Therefore, its important to give yourself time to think.
“Chipping away” is a great companion strategy – digest part of the problem and mull it over or sleep on it, then take another bite. As you build up a picture of the problem you’ll develop a mental model that you can fit new things into. Also be ready to change and restructure your mental model as needed – try not to be too rigid.
Just Attack the Problem
Brute force. Like starting a cold engine, you might need a surge of energy to make an initial break-through.
One way to break writers block is to just start writing – even if the initial output is total garbage, the act of forced writing can help kick-start the brain into the right kind of processing, and productive writing will follow. The same can hold for problem solving – sometimes you just need to get stuck in and warm your brain up.
Divide & Conquer
Break a big problem into smaller ones. Concentrate on one. Make progress or recognize when to give it time and come back to it.
Slightly related – rather than trying to solve the entire problem first, see if you can put some “stakes in the ground”, i.e. make concrete progress on some key points and use those as a basis for further work.
Find Themes / Consolidate
Group many moving parts into themes to reduce overall “noise”.
Look for patterns.
See the big picture.
“Death by a thousand cuts” but in reverse.
Putting a small amount of effort into something huge usually seems futile,
but many small efforts added together
will make an impact.
- Works well with “giving yourself time/space to think”. Take a small bite at the problem and mull it over.
- Supports a sustainable pace. (Its a marathon, not a sprint).
- Start early. Expect course corrections.
Putting-off something difficult by procrastinating is not a recipe for success. That said, problems sometimes have a timing dimension to them, and so picking the right time to tackle the problem is sensible.
The trick is to successfully identify the factors, and recognize that its real and not procrastination.
For example, the work of you and your team will often have dependencies on other projects, teams, decisions and future state strategies; sometimes the direction of these will be unclear. In such cases you may need to get clarity on where they are likely to land before it is worth investing significant effort in related problems.
Share Your Problem
If you’ve been struggling on your own, share your problem with a colleague or a friend. Often an outside perspective is all we need to get us started.
Not so much a strategy of it’s own but something which applies to many of the strategies above.
Think about how much time to invest in a given approach. If you still haven’t made progress after an appropriate amount of time, ask yourself:
- Is this a signal you need to switch to a different approach?
- Should we put the problem to the side for the moment and come back to it later?
- Is the problem insoluble, and we may need a change in overall strategy?
This expands on part of the “Consulting Architect – How To Get Sh#t Done” talk I gave at the Geekle Worldwide Software Architecture Summit, May 2023:
- Deck, extended response to some audience questions, etc: https://morphological.wordpress.com/2023/05/16/consulting-architect/
- recording of the event stream: Worldwide Software Architecture Summit’23 – Career Track – YouTube
- Event Schedule & speakers: Agenda- Worldwide Software Architecture Summit 23 (geekle.us)