Dr. Dobb's Journal - February 2009 - (Page 10) D02vox_p2db 12/11/08 12:45 PM Page 10 Alia Vox by Dr. Tieren Zhou Specification-Driven Design Agility balanced with design, documentation, and process management AGILE DEVELOPMENT METHODOLOGIES often heavily rely on working software for development process optimization. Since business logic and requirements can be so complicated and often impossible to be complete, traditional requirement management systems can hardly represent the requirements in a way that both product owners (business managers) and developers can easily understand. Working software, or prototypes, become the most reliable method for effective communication between business people and development teams. With the lack of documentation and requirements. One requirement can also be represented with multeam management, disciplines for large tiple specifications. Therefore, a spec serves the purpose of linking and distributed development teams, this the business value, requirements, to the development and QA testapproach results in a shortfall of today’s ing tasks. Agile methods. A product development project can therefore be represented SpecDD, short for “Specification with multiple development iterations and with each iteration comDriven Development,” is a development mitted to develop a set of specifications. Each spec can be methodology specifically designed to pro- designed, planned, implemented, and tested along with other mote agile development, but balanced related specs. with design, documentation, and process Like all other agile development methodologies, SpecDD management. divides development into iterations, or sprints. At the beginning of SpecDD is an agile development a sprint, a set of specifications is committed as the development methodology based of the following sprint backlog. Unlike other agile methods, SpecDD backlogs live principles: within the context of the complete and quantified product design—the conceptual product. Within each development sprint, • Development is divided into iterathe product owners and development teams work together to tions with duration from 2–4 weeks. incrementally develop the working software and improve the “con• Each development iteration has two ceptual product.” deliverables: the improved working software and the improved product SpecDD is designed to enable product owners and developers design. working together and coordinated at one or multiple sites. At any • Requirements and product design time the total product design—the conceptual product—exists are quantified to optimize their abilwith quantified specifications linking the complete requirements. ity to drive development and testing. As a result, the development process is more scalable and is well • Within an iteration, requirement and specification change is allowed when documented. SpecDD recommends the following documentation a better understanding of the busiand design best practices: ness need mandates such change. • Developers should never work on tasks without one or many well-designed specifications. SpecDD manages requirements using • A well designed specification clearly represents the functional two layers: requirements and specificabehavior and relational logic required. While a Spec is normaltions. Requirements represent the funcly a short description of a quantified feature or function, it should be linked with well-specified requirement documents. tions and features needed by customers, product owners, and other stake holders. • When changes to the implementation are required, modifications to the Spec or the related requirements must be finished Specifications are new presentations of and reviewed before developers can make the change. the requirements that serve the purpose of formally dividing the requirements With SpecDD, changes start at the design and concept level, into sets of features that are easier to making communication easier for distributed teams. Multisite and communicate to the teams implementing multiculture teams can rely on both the working software and the them. SpecDD uses specifications (specs) quantified requirement and product design to achieve better comto achieve the purpose of better organiz- munications and enable much more scalable development process ing requirements in a more development control. SpecDD is an agile development methodology with two friendly and quantitative way. deliverables: the working software and the product design. By capA spec is a development-friendly unit turing the complete design and documenting the complete decision that may be linked with one or many making processes, SpecDD better captures process intelligence. DDJ Dr. Tieren Zhou is CEO and Chief Software Architect at Techexcel. More information about SpecDD can be found at www.specdd.org. 10 Changes start at the design and concept level, making communication easier for distributed teams Dr. Dobb’s Journal l www.ddj.com l February 2009 http://www.specdd.org http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - February 2009 Dr. Dobb's Journal - February 2009 Contents Friday Night Fish Fry Alia Vox Developer Diaries Conversations Computing in the Clouds Software Development in the Cloud Videos and Oracle Forms 10g Parallel LINQ Decoupling C Header Files Effective Concurrency Disciplined Agility Swaine’s Flames Dr. Dobb's Journal - February 2009 Dr. Dobb's Journal - February 2009 - (Page BB1) Dr. Dobb's Journal - February 2009 - (Page BB2) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page Cover1) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page Cover2) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page 1) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page 2) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page 3) Dr. Dobb's Journal - February 2009 - Contents (Page 4) Dr. Dobb's Journal - February 2009 - Contents (Page 5) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - February 2009 - Alia Vox (Page 10) Dr. Dobb's Journal - February 2009 - Alia Vox (Page 11) Dr. Dobb's Journal - February 2009 - Developer Diaries (Page 12) Dr. Dobb's Journal - February 2009 - Developer Diaries (Page 13) Dr. Dobb's Journal - February 2009 - Conversations (Page 14) Dr. Dobb's Journal - February 2009 - Conversations (Page 15) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 16) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 17) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 18) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 19) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 20) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 21) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 22) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 23) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 24) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 25) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 26) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 27) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 28) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 29) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 30) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 31) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 32) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 33) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 34) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 35) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 36) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 37) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 38) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 39) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 40) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 41) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 42) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 43) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 44) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 45) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 46) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 47) Dr. Dobb's Journal - February 2009 - Swaine’s Flames (Page 48) Dr. Dobb's Journal - February 2009 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - February 2009 - Swaine’s Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.