As software consultants, we work with widely varying degrees of direction. Sometimes we pick up well-defined tasks, like the best, clearest stories in our development backlog or direct requests for information from our clients. Other times, we have to work harder to create the clarity we need to succeed. And, it can feel stressful if you’re expecting a high degree of clarity and receive the opposite.
I’ve found a few simple questions invaluable in helping my teams work through situations where a high degree of unexpected uncertainty is blocking a task.
Focusing on these questions helps reduce stress and redirect energy toward productive next steps. So, let’s walk through them.
What does success look like?
It’s hard to achieve success if you don’t know what it should look like. This is mostly just a rephrasing of “Start with the end in mind” from Stephen Covey’s The 7 Habits of Highly Effective People. Before you start enumerating your needs, define success.
Here are some examples of defining success for tasks on a product design/development team.
- By the end of this week, I have a draft pull request submitted for review for this story.
- I can suggest a data store for the team before work starts on the upload feature during the next sprint.
- The team will have initial wireframe feedback by Thursday.
- We’re prepared to present a set of scope/budget control tradeoffs by Tuesday.
- I understand what’s expected in this story, and how to achieve it.
What do you need to be successful?
Now that we have a definition of success, we’re on to the topic that probably spurred this conversation in the first place: something is blocking our ability to succeed. In our line of work, often the blocker is missing information, though other blockers do manifest.
Here are examples of how we might begin to define our needs. We need to know:
- which codebases in this microservice system are affected by this API change
- what transaction volume will be like and whether the database can handle it
- how to handle these edge cases in the price calculation
- what the actual inputs and outputs are for this calculation
More detail is often helpful when expressing these needs. For example, enumerating the edge cases can help others understand and get the right answers. Spend the time to write them down, being as specific and detailed as you think will help resolve the needs. Then, dig deeper with questions like, “Why do you need that?” or, “Is there a way to succeed without that? How?”
How can we get what you need?
After we know what we need, we can start making plans to get unblocked. The next steps coming from this question should have a clear owner and expectations, and we might need multiple steps to get unblocked. We might end up with plans like:
- At stand-up tomorrow, I will raise the issue and see if Steve has time to walk through these questions with me.
- I will finish writing up a description of the edge cases we need to decide on and set up a time to meet with our client to review it before the end of the week.
- Also, I will write a story in the backlog to evaluate database performance at 150% of production transaction load.
- I will ask the client to purchase the dataset we need for their product and see if we can have it by next week.
- You will find another story to work on, and I will plan a workshop with the product team next week.
Be creative where it’s appropriate. Review tools in our Design Thinking Toolkit if the team needs to bring some tools and structure to design thinking sessions. Working in a space that needs more clarity can be an opportunity to engage in different types of work and have fun!
Taking Ownership of Creating Clarity
These questions can help teams and individuals take control of unexpected lack of direction. That will reduce stress and make it easier to craft plans to create the clarity needed to succeed.