Making explicit the implicit might be my most repeated mantra when working with software development teams - or product development by extension.
When working in a technological context, with interrelated products, you are constantly faced with complex and ambiguous problems that require creative and innovative solutions. You have to make decisions based on incomplete or conflicting information, and communicate them effectively to your team and stakeholders. You also have to deal with the human and emotional aspects of leading people, such as motivating, coaching, and resolving conflicts.
How will this benefit you?
?? One of the most important skills that can help you navigate these challenges is making explicit the implicit. This means being aware of your own assumptions, beliefs, and biases that influence your thinking and behavior, and sharing them openly with others. By doing this, you can:
- Reduce misunderstandings and misalignments. When you make your assumptions explicit, you can check if they are valid and aligned with the reality and the goals of the project. You can also invite feedback and input from others, and learn from different perspectives and experiences.
- Increase trust and collaboration. When you share your assumptions openly, you show vulnerability and honesty, which are essential for building trust and rapport. You also signal that you are open to learning and changing your mind, which fosters a culture of curiosity and experimentation.
- Enhance creativity and innovation. When you challenge your assumptions, you can discover new possibilities and opportunities that you might have overlooked or dismissed. You can also generate more diverse and original ideas by combining and integrating different assumptions and perspectives.
How do you make it happen?
Making explicit the implicit is not easy. It requires a lot of self-awareness, reflection and lots of curiosity, to become aware of what things you are taking for granted that others might overlook, or have a completely different take. It also requires practice, feedback, and being very open to iterating.
??The implicit assumptions can lie in many areas, such as:
- The best solution should involve a technology-driven solution. Sometimes, it's easier (and cheaper) to solve a problem by applying some extra, manual work. We (software engineers) tend to underestimate the cost of ourselves, and overestimate the frequency in which edge case problems might appear and require intervention.
- Users will understand the intention of what we are creating for them. We, as creators of a software product, tend to be way more in connection with our creation than our users. We should be aware of the
- The team members' motivations are aligned with ours. We might be trying to solve a problem that others might not be aware of, or give as much relevance as we do. We should align on what we are trying to accomplish, and why.
- The complexity of the solutions at hand are known by everyone equally. This is a pitfall that I have seen engineers falling endlessly. Explaining the options are hand, and why we had discarded them intuitively leads to great conversations, with plenty of "what if" ideas that might not have crossed our mind initially.
??Here are some tips to help you develop this skill:
- Ask yourself questions. Before making a decision or taking an action, ask yourself: What am I taking as a given in my decision-making process? What am I assuming? Why am I assuming this? How do I know this is true? What if I'm wrong? What are the consequences of this assumption?
- Write down your assumptions. Writing helps you clarify your thoughts and identify gaps or inconsistencies in your reasoning. It also helps you remember your assumptions and revisit them later.
- Share your assumptions with others. Seek feedback from people who have different backgrounds, roles, perspectives, or opinions than yours. Ask them to challenge your assumptions or offer alternative ones. Listen actively and respectfully, and be willing to change your mind if needed.
- Experiment with your assumptions. Test your assumptions by conducting experiments or trying new approaches. Observe the results and learn from them. Adjust your assumptions or actions accordingly.
- Try to look at the problem as a newcomer. Look at the situation as if you didn't have any context, would you evaluate it in the same way? What information leads to evaluate it in a different way? What learnings are you applying that are not explicitly written down?
Wrapping up - what's in for you?
Making explicit the implicit is a powerful way to improve your impact as a technology leader, and to drive better decision making. It helps you create an environment where people have factual conversations, and challenge each other in a healthy way - which is key to a psychologically safe environment as well as to a high performance team.It can help you make better decisions, communicate more clearly, lead more authentically, and foster a culture of learning and innovation in your team or organization.
??Credit: image created with Dall-e 3, for the prompt "An image that shows a fleet of spaceships exploring the universe together, without any text"
Absolutely! Your mantra of "making explicit the implicit" is spot on. Encouraging teams to document assumptions and reflect on biases cultivates transparency and inclusivity, leading to stronger collaboration. Keep up the great work!