First sprint meeting has been completed and all members involved in the sprint have agreed to a list of user stories required by product owner. Now second sprint meeting has been started. Discussion started between development team, product manager and product owner.
………..
Dev Team
- We need a design task for defining the architecture,
- Decide frameworks, patterns and practices, 3rdparty tools/components
- Design sequence diagrams, activity diagrams etc.
Product Manager – Why ?
Dev Team
- Everyone gets the overall picture of what we are doing
- Easy reference point for anyone in the team and also for new team members
Product Manager – So do we need this in every sprint?
Dev Team – Yes to have update design documentation relating to changes/enhancement
………..
This is a common question for any scrum projects. Now the answer is basic and smart design which helps today and flexible for tomorrow. Also there are various tools available in the market that helps you generate design diagrams from code. So Development team do not have to update design documents each time there is a change in the requirement or added a new enhancement.
Here are some examples of how to achieve this
-
Generate sequence diagrams from code
-
Class diagrams from code
And more importantly now you can generate layer diagrams which give the overall picture of the whole projects along with components for more details refer to
MSDN
Also layer diagrams allow you to define a set of rules which can be validated against the project. Layer diagrams can be validated as part of the build process that shows if any of the design rules are violated. So no longer do you need to manually verify code against the design document.
All of these can be automated or can be generated as and when required. So no longer design is a separate task. We only need to do what we need at this point of sprint (fit for purpose) not overestimating other things that might come in future (this is waste of time).
“Simplicity is the ultimate sophistication.”
Leonardo da Vinci quotes