Dr. Dobb's Journal - December 2008 - (Page 50) D12ambler_p3as 10/10/08 8:58 AM Page 50 The Agile Edge the fact that you have been producing potentially shippable software every iteration up to that point. Figure 2 shows how requirements on a stack can be related to one another. For example, the red requirements need to be shipped together even though one of them is further down the stack than others. The green Figure 2: Small functional requirements only support part of the usage workflow that provides actual value. requirements are also related to one another, although they are clustered closer to each other than the red ones. Once the product owner recognizes that there are relationships between items on the work item stack, and that a lower priority item may be preventing you from releasing higher priority items and thereby lengthening the time to value for your project, they may decide to rethink their strategy. This rethinking might mean that they reprioritize the work items or that they renegotiate with the larger group of stakeholders that they represent and drop the dependency on the lower priority work item. Understanding these more complex requirements requires a more sophisticated approach than user stories or features by themselves. A simple strategy is to organize them into “epics” or feature sets respectively, collections of small requirements that are somehow related to one another. This is similar to throwing the requirements into separate buckets—it organizes them but doesn’t provide context. Context is better addressed through usage scenarios or use cases. Many Agilists are leery of use cases because they’ve only seen heavy use cases, often because the business analysts got out of control and wanted to capture every possible detail in the use cases. But as I show at www.agilemodeling .com/artifacts/systemUseCase.htm, you can write very simple use cases in point form so as to think through the usage of your system without taking on the risk of needless documentation. Each of these bullet points could be addressed by zero or one user stories—the order of the use case steps and the “filler steps” that are addressed by manual activities or functionality implemented elsewhere provide the needed context that isn’t captured by the individual user stories. In “Scaling On-Site Customer” (www .ddj.com/architect/204801134), I argued that the role of XP’s on-site customer—Scrum’s product owner—is actually quite difficult because they need to represent a wide range of stakeholders, not just end users. This is why context is so important—different types of stakeholders will interact with the system in different ways, and you need to understand their various and often contradictory usage patterns and act accordingly. Sophisticated requirements artifacts such as use cases provide this context, the challenge then becomes writing use cases in an agile manner that avoids the needless bureaucracy often exhibited by traditional teams. Requirements Cross Components In “Agile and Large Teams” (www.ddj .com/architect/208700162), I described how large agile teams are organized into small agile subteams, often around the architecture Figure 3: On large-scale agile projects usage scenarios cross several components. 50 Dr. Dobb’s Journal l www.ddj.com l December 2008 http://www.agilemodeling.com/artifacts/systemUseCase.htm http://www.agilemodeling.com/artifacts/systemUseCase.htm http://www.ddj.com/architect/204801134 http://www.ddj.com/architect/204801134 http://www.rallydev.com http://www.ddj.com/architect/208700162 http://www.ddj.com/architect/208700162 http://www.rallydev.com http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - December 2008 Dr. Dobb's Journal - December 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Conversations The Man Who Sold the Sky Performance on Rails LINQ-to-SQL and T-SQL A Remote Java RMI Registry Beyond B-Trees File Descriptors and Multithreaded Programs Effective Concurrency The Agile Edge Swaine's Flames Dr. Dobb's Journal - December 2008 Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page Cover1) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page Cover2) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page 1) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page 2) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page 3) Dr. Dobb's Journal - December 2008 - Contents (Page 4) Dr. Dobb's Journal - December 2008 - Contents (Page 5) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - December 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - December 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - December 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - December 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - December 2008 - Conversations (Page 14) Dr. Dobb's Journal - December 2008 - Conversations (Page 15) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 16) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 17) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 18) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 19) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 20) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 21) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 22) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 23) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 24) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 25) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 26) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 27) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 28) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 29) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 30) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 31) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 32) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 33) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 34) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 35) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 36) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 37) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 38) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 39) Dr. Dobb's Journal - December 2008 - Beyond B-Trees (Page 40) Dr. Dobb's Journal - December 2008 - Beyond B-Trees (Page 41) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 42) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 43) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 44) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 45) Dr. Dobb's Journal - December 2008 - Effective Concurrency (Page 46) Dr. Dobb's Journal - December 2008 - Effective Concurrency (Page 47) Dr. Dobb's Journal - December 2008 - Effective Concurrency (Page 48) Dr. Dobb's Journal - December 2008 - The Agile Edge (Page 49) Dr. Dobb's Journal - December 2008 - The Agile Edge (Page 50) Dr. Dobb's Journal - December 2008 - The Agile Edge (Page 51) Dr. Dobb's Journal - December 2008 - Swaine's Flames (Page 52) Dr. Dobb's Journal - December 2008 - Swaine's Flames (Page Cover3) Dr. Dobb's Journal - December 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.