Design better Solutions with Design Sessions
A technic to better design solutions in a collaborative way
How to ?
Once a team member wants to open a new Product Backlog Item, User Story or feature implementation, we do an instant meeting in front of a whiteboard and a computer.
- We start by agreeing on its definition
- Be sure we are all aligned on what needs to be done
We use a whiteboard to align ourselves on the different flows to implement
We open the source code or create a new one and start designing the contracts. From our external layers (APIs for example) to our Domain model : POCOs / POJOs, DTOs / Commands.
We don’t implement anything except of the contracts
We throw exceptions throw new NotImplementedException()
BUT we agree on the naming / parameters.
We put TODOs in the code to be clear what is expected to implement
Later on I have learned that this TODO approach to implementation had a name : Puzzle Driven Development
The whole team or part of it can now work on the implementation by knowing exactly what to do.
Pros
- Instant alignment feedback on what needs to be done
- Increased knowledge sharing
- Quick up-skilling for new-joiners
- Better solution when designed collaboratively : “Alone we go faster together we go further”
- Avoid feedback loops (in code reviews for example) when no team alignment
- Reinforce the collective ownership feeling inside the team
- Help to shape a real team spirit as well
- Everyone is involved at the beginning of everything