Dr. Dobb's Journal - October 2008 - (Page 65) D10ambler_p5db 8/14/08 4:00 PM Page 65 Agile Modeling Strategies An important part of Iteration 0 is requirements and architectural envisioning because it enables you to gain critical information required to start the project successfully. For example, few organizations will fund a project unless the team can indicate what problem they intend to address, how they intend to do so, roughly how much it will cost, and roughly how long it will take. The team needs at least a high-level understanding of the requirements and a reasonable technical strategy; hence, the need for initial envisioning. I recently ran a survey within the agile community to explore this issue (the results are posted at www.ambysoft.com/surveys/ practicesPrinciples2008.html) and found that 83 percent of respondents indicated that they very often, often, or sometimes performed requirements envisioning and 81 percent performed architectural envisioning at similar levels. Contrary to popular belief, agilists do in fact do up-front modeling. It is during your initial requirements envisioning that you will identify high-level functional requirements, NFRs, and constraints. All forms of requirements will drive your architectural efforts, which occur iteratively in parallel with requirements envisioning. Initial envisioning is done at a highlevel, the goal is to do just enough modeling to provide sufficient information to drive the initial decision making on your project. The goal is not to create detailed specifications because that would actually increase the risk, and the costs, of your project. Although the initial envisioning efforts make you aware of the NFRs and constraints, you will discover that you very likely don’t have the details that you require to fully address them. These details are captured on a JIT basis throughout construction via short model storming sessions with stakeholders. For example, you’ll pull a functional requirement off the top of the stack that describes a change to an existing screen and supporting functionality behind that screen. As you explore the details of the functional requirement on a JIT basis with your stakeholder(s), you will also explore the cross-cutting NFRs and constraints that apply to it. The implication is that not only do the developers need to be aware of the NFRs and constraints, which the initial envisioning should have accomplished, they need to be sufficiently skilled to do so. More on this shortly. Independent Testing Models, particularly those created early in the lifecycle, are little better than speculative promises regarding what you intend to build or how you intend to build it. Promises are nice, but validation that you’re fulfilling those promises is even nicer. Although many agilists have adopted a test-first or test-driven approach to development, an incredibly good practice, as I described in “Scaling Test-Driven Development” (www.ddj.com/architect/ 205207998) this is at best a confirmatory approach to testing. The goal of confirmatory testing is to validate that you’ve built the system to your understanding of the requirements. Test-driven development (TDD) is effectively the agile equivalent of testing against the specification, but that assumes that the requirements are identi- fied and understood. If you’re not doing TDD you’ve got an even bigger challenge. The point is that TDD is a great start but that you need more. As Figure 1 shows, disciplined agile teams include an independent testing effort that runs in parallel to development. The basic strategy is that the agile team should deploy a working build of their system to an independent test team on a regular basis, at least once an iteration, so that they can perform investigative testing and other higher forms of testing. This independent testing effort addresses concerns that are typically addressed by traditional teams during the testing phase at the end of the lifecycle. By doing this testing in parallel with development, and by reporting issues back to the development team quickly, you can reduce the average cost of addressing any defects and often shorten the overall time of your project. The development team treats the identified defects as potential requirements to be put onto their prioritized work item list and eventually addressed through TDD. October 2008 l www.ddj.com l Dr. Dobb’s Journal 65 http://www.ambysoft.com/surveys/practicesPrinciples2008.html http://www.ddj.com/architect/205207998 http://www.ambysoft.com/surveys/practicesPrinciples2008.html http://www.ddj.com/architect/205207998 http://www.rallydev.com/ddj http://www.rallydev.com/ddj http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - October 2008 Dr. Dobb's Journal - October 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Developer’s Notebook Is Your Next Language COBOL? Conversations Safe Coding Practices Code Signing in Adobe AIR OpenID Single Sign-On The Book Cipher Algorithm Indexing and Searching Image files Extending Continuous Integration Into ALM The Agile Edge Effective Concurrency Swaine’s Flames Dr. Dobb's Journal - October 2008 Dr. Dobb's Journal - October 2008 - (Page Bellyband1) Dr. Dobb's Journal - October 2008 - (Page Bellyband2) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page Cover1) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page Cover2) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page 1) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page 2) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page 3) Dr. Dobb's Journal - October 2008 - Contents (Page 4) Dr. Dobb's Journal - October 2008 - Contents (Page 5) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - October 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - October 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - October 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - October 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - October 2008 - Developer’s Notebook (Page 14) Dr. Dobb's Journal - October 2008 - Developer’s Notebook (Page 15) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 16) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 17) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 18) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 19) Dr. Dobb's Journal - October 2008 - Conversations (Page 20) Dr. Dobb's Journal - October 2008 - Conversations (Page 21) Dr. Dobb's Journal - October 2008 - Conversations (Page 22) Dr. Dobb's Journal - October 2008 - Conversations (Page 23) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 24) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 25) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 26) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 27) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 28) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 29) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 30) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 31) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 32) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 33) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 34) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 35) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 36) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 37) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 38) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 39) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 40) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 41) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 42) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 43) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 44) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 45) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 46) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 47) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 48) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 49) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 50) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 51) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 52) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 53) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 54) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 55) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 56) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 57) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 58) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 59) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 60) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 61) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 62) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 63) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 64) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 65) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 66) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 67) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 68) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 69) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 70) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 71) Dr. Dobb's Journal - October 2008 - Swaine’s Flames (Page 72) Dr. Dobb's Journal - October 2008 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - October 2008 - 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.