I’ll keep this post pretty light. Here are the conditions that I use when to write a dd:
- Junior developers for most tasks (again remember some design documents are just a few dot points)
- Any developer when building a new pattern, system or new functionality that has not been built by the team in the past.
- Any developer when building something that has a high degree of risk (high risk can occur when deadlines are really tight, production or development environment is not stable etc…)
So the point is you don’t need to write dd’s for everything. If you are an experienced developer building something based on an existing pattern – you really should not need to do a dd.