SpecDD was created to improve two areas of agile development:

  • Development can be done with both software and the product design in parallel. Design is not only about documenting the requirements of the software, but also tracking human interactions and creating a process for improving design.
  • Incremental development can be applied not only to the software but also to the design. Change should be managed and tracked with a conceptual understanding of the requirements and not by merely changing the software. 

 

SpecDD is a development framework that is designed to promote agile development process with two deliverables: working software and a quantified product design SpecDD consists of the following best practices 

  • Development is divided into 2-4 week long iterations
  • The product owner team (who manage the design) and development team (who implement the design) should coordinate their efforts
  • Each development iteration has two deliverables: improved working software and an improved product design
  • Requirements are quantified to optimize their ability to drive development and testing.  A specification is the basic unit representing a customer-valued feature or function of the software to be developed.  A specification is a unit that can be used for resource and timeline planning, code implementation, and QA testing.
  • The scope of an iteration (which specifications will be delivered at the conclusion of the iteration) can change if either the working software or a better understanding of business needs mandates such a change. 
  • Development work should be based on a quantified product design: any tasks are linked to specifications.
  • QA testing should be governed by requirements: a functional testing task is about testing one or many specifications.