Simplifying Software Development: The Power of Example Mapping
Unraveling the Complexity: Achieving Shared Understanding in Software Development
Software development can be a complex process, and it is essential to find ways to streamline it for both individuals and teams. A common challenge faced by software teams is establishing a shared understanding of the problem domain. While numerous methods exist to address this issue, some can result in unstructured, inconsistent, or tedious discussions and procedures. One technique that has proven effective, with some modifications, is Example Mapping. This low-tech approach can greatly facilitate communication and understanding within a team.
The Theory Behind Example Mapping
Have you ever grappled with comprehending a technical or theoretical concept in the absence of examples? Examples hold great power, offering clarity and context. Example Mapping, true to its name, utilises examples to assist teams in examining problem domains and laying the groundwork for acceptance tests. This method also reveals elements necessary for devising solutions. The key components you require are:
Issue/Story/Task: The initial step in examining our problem domain is to have a manageable and well-defined starting point. Making sure it is neither too broad nor too complex helps in identifying appropriate solutions. Concentrating on a smaller objective enables us to deliver business value, delve into the problem domain comprehensively, and acquire a more profound understanding of underlying issues and potential solutions.
Rules: These guidelines set the acceptance criteria for a solution, defining expected functionality, desired outcomes, and crucial aspects. They provide a framework for assessing if the proposed solution addresses the problem effectively. Clear rules help developers align with objectives and meet acceptance criteria, making the development process more efficient and reducing misunderstandings.
Questions: Gaining a thorough understanding of the problem domain and crafting an effective solution requires asking questions about the rules. These questions serve to clarify acceptance criteria, expected functionality, desired outcomes, and other vital aspects. By posing questions, developers can uncover overlooked rules or deepen their understanding of the problem, ensuring that the final solution delivers the intended business value.
Examples: Offering examples is essential in order to clarify rules and requirements. By presenting specific scenarios, use cases, or situations, the team can gain a better understanding of the expected functionality, desired outcomes, and other important aspects. Examples demonstrate how the system should behave under different conditions, and can help uncover overlooked rules or improve the team's understanding of the problem at hand.
The Runsheet
Example Mapping is a straightforward technique that requires minimal tools; typically, a wall and a 4-pack of colored sticky notes would suffice. However, in today's digitally connected environment, we can utilise Miro (or a similar collaborative whiteboarding tool) to achieve the same results.
Prepare
It is essential to be well-prepared before participating in an Example Mapping session. As part of the preparation process, the context for the session should be provided, typically by the Product Owner/Manager. To do this, the problem domain (Issue/Story/Task) should be specified on a yellow sticky note.
Following this, it is necessary to establish ground rules, which represent the "Known" business rules. These rules should be placed on blue sticky notes.
Contextualise
At the start of the session, it is crucial to make sure all participants have a shared understanding of the problem domain and ground rules. The individual leading the session (Product Owner/Manager) should allocate 1 minute to explain the problem domain and go over the ground rules. This explanation should be both brief and informative.
Discover
During the discovery phase, participants take part in a 5 minute timeboxed session where they independently write down questions on pink sticky notes. These questions aim to address concerns or clarify aspects of the rules or problem domain. The goal is to enhance understanding of the acceptance criteria, expected functionality, desired outcomes, and other crucial elements of the problem domain and rules. By promoting question-asking, the discovery session creates a cooperative atmosphere where everyone can share their insights and expertise to better grasp the project's requirements and objectives. It is also beneficial to arrange the questions by grouping similar ones together.
Map
The Product Owner/Manager leads the conversation by dedicating 20 minutes to answering questions, facilitating discussions, and noting examples on green sticky notes. It is recommended to indicate addressed questions by switching them to a lighter shade of pink sticky note. If new rules arise during the discussions, they should be recorded on blue sticky notes. Any irrelevant questions can be marked by changing them to black sticky notes, while questions that lead to out-of-scope discussions can be placed in a parking lot section. Team members should assist in capturing examples on green sticky notes, and a useful format for noting examples is the GIVEN, WHEN, THEN syntax.
Close
As the session comes to an end, you will have gathered numerous valuable insights, including:
Key areas of agreement and disagreement among team members
Enhanced comprehension of the problem and potential solutions
Identification of aspects requiring further research or clarification
A set of relevant questions to guide future discussions and decision-making processes
Irrelevant questions, to be addressed later or in a different context
Questions leading to out-of-scope discussions, placed in a parking lot section for future exploration
Various examples following the GIVEN, WHEN, THEN syntax, illustrating different scenarios and promoting a shared understanding among team members
By thoroughly analysing and organising the information obtained during the session, you can ensure that your team is well-prepared to address upcoming challenges and make informed decisions as you progress.
Summary
In summary, Example Mapping is a valuable and effective method for simplifying software development. It promotes a shared understanding of the problem domain and encourages collaborative exploration of potential solutions, enabling teams to navigate the intricacies of software development more easily. This approach utilises examples and questions to clarify rules and requirements, reducing misunderstandings and streamlining the development process. Applicable in both physical and digital workspaces, Example Mapping can be easily implemented and customized to suit your team's requirements. By employing this technique, you can enhance your team's productivity, elevate the quality of your software, and ultimately deliver increased business value.