Enhancing shared understanding
When working with a problem where domain concepts are unclear, there is a need to arrive at a common understanding among key team members (both those that have bright ideas – the business/product people, and those that translate those ideas into working software – the software developers). For this process to be effective, we tend to look for approaches that are as follows:
- Quick, informal, and effective
- Collaborative – easy to learn and adopt for both non-technical and technical team members
- Pictorial, because a picture can be worth a thousand words
- Usable for both coarse-grained and fine-grained scenarios
There are several means to arrive at this shared understanding. The following are some of the commonly used approaches:
- UML
- BPMN
- Use cases
- User story mapping
- CRC models
- Data flow diagrams
These modeling techniques try to formalize knowledge and express it in the form...