Dr. Dobb's Journal - June 2008 - (Page 6) d06edit_p3as 4/11/08 11:49 AM Page 6 FRIDAY NIGHT FISH FRY by Jonathan Erickson Requirements Are Required Reading TO MY WAY of thinking, the basic requirement for a requirements document is that, upon receiving it, I never again have to speak to the person who gave it to me. Of course, that might say more about my antisocial behavioral patterns than my ability to ramrod a project out the door. It goes without saying (but I’ll say it anyway) that I’m no expert when it comes to requirements; I leave that honor to the likes of Joe Marasco and Karl Wiegers who’ve built companies and written books on the topic of requirements, particularly when they have to do with software development. Of course, another basic requirement of requirements is that all project participants should agree at the outset what they’re talking about—starting with what requirements are. And therein lies the first rub, says Karl Wiegers, explaining that “different people have many different ideas of what requirements are and are not.” But I expect that Wiegers and I would agree that requirements are fundamentally a communication—not a technical—activity. Something else Wiegers and I would probably agree upon is that Ian Sommerville and Pete Sawyer’s definition of requirements is pretty darn good: “Requirements are…a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute.” Wiegers goes on to say that for any project, there needs to be three levels of requirements: • Business requirements that define the “why” of the product, and identify benefits for both customers and the business. • User requirements that describe the tasks or business processes users will be able to perform with the product. • Functional requirements, which describe the specific system behaviors that must be implemented. All in all, requirements seem so fundamental and so important that projects with poorly delineated requirements should never leave the gate. And the bigger the project, the more important clear requirements are, something you’d think that large organizations with multibillion dollar projects would know. Well, think again—especially when that “large organization” is a government bureaucracy. Here’s the deal: It’s not like the U.S. census comes as a big surprise. After all, it’s taken place every decade for the past 200+ years. Which seems like plenty of time to get the process right. But that’s not the case with the upcoming 2010 census, which, at a cost of around $11 billion, will be the most expensive census ever. Driving up the cost of the 2010 census is the Harris Field Data Collection Automation (FDCA)—essentially a mobile hand-held device on the front end, a database on the back end, and a bunch of stuff like security and communications in between—which was supposed to save taxpayers $1 billion, but instead may end up costing $3 billion extra. Why? Because, according to people who participated in real-world trials, the mobile FDCA system (which will be used by 600,000 temporary census takers) is just too doggone hard to use. How serious is the problem? Serious enough that the Census Bureau is going back to the more traditional pencil-and-paper approach of conducting the census (www.nextgov.com/nextgov/ng_20080403_9574 .php). A suggested alternative is to use web-based cell phone applications that run on existing network infrastructures, but that’s probably too simple an idea for a big bureaucracy. Harris is standing behind its FDCA system, claiming that the computers actually are easy to use. “After you spend about 30 minutes to an hour familiarizing yourself with it, it’s as easy to use as a modern cell phone,” said a Harris spokesman. Well now, that’s comforting. After 30 minutes of fiddling with a new cell phone, I’m lucky I haven’t chucked it. But the real problem seems to be in the area of requirements. According to the Census Bureau, there was a communication problem. No, not a “telecommunication” problem, but “a lack of clarity in defining technical requirements…especially with regard to the testing and functionality.” As you might guess, the FDCA requirements documents are voluminous (see www.census.gov/procur/www/fdca/fdca-rfp.html) and slogging through them no doubt led to a lot of flaws. Whatever. The bottom line is that, thanks to poorly defined requirements, the Harris FDCA is difficult to use and will cost you and me a lot of tax dollars. Oh well, there’s always the 2020 census. Next Month: Designing developers are our July focus, as we examine the design and architecture of complex software. Jonathan Erickson Editor-in-Chief jerickson@ddj.com 6 Dr. Dobb’s Journal l www.ddj.com l June 2008 http://www.nextgov.com/nextgov/ng_20080403_9574.php http://www.nextgov.com/nextgov/ng_20080403_9574.php http://www.census.gov/procur/www/fdca/fdca-rfp.html http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - June 2008 Dr. Dobb's Journal - June 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries There Must Be Contest Conversations Building a Test Harness for RTOS QT and Windows CE Software to Hardware Parallelization Performance Portable C++ Effective Concurrency The Agile Edge Swaine's Flames Dr. Dobb's Journal - June 2008 Dr. Dobb's Journal - June 2008 - Dr. Dobb's Journal - June 2008 (Page Cover1) Dr. Dobb's Journal - June 2008 - Dr. Dobb's Journal - June 2008 (Page Cover2) Dr. Dobb's Journal - June 2008 - Dr. Dobb's Journal - June 2008 (Page 1) Dr. Dobb's Journal - June 2008 - Dr. Dobb's Journal - June 2008 (Page 2) Dr. Dobb's Journal - June 2008 - Dr. Dobb's Journal - June 2008 (Page 3) Dr. Dobb's Journal - June 2008 - Contents (Page 4) Dr. Dobb's Journal - June 2008 - Contents (Page 5) Dr. Dobb's Journal - June 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - June 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - June 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - June 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - June 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - June 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - June 2008 - Alia Vox (Page 12) Dr. Dobb's Journal - June 2008 - Alia Vox (Page 13) Dr. Dobb's Journal - June 2008 - Developer Diaries (Page 14) Dr. Dobb's Journal - June 2008 - Developer Diaries (Page 15) Dr. Dobb's Journal - June 2008 - There Must Be Contest (Page 16) Dr. Dobb's Journal - June 2008 - There Must Be Contest (Page 17) Dr. Dobb's Journal - June 2008 - There Must Be Contest (Page 18) Dr. Dobb's Journal - June 2008 - There Must Be Contest (Page 19) Dr. Dobb's Journal - June 2008 - Conversations (Page 20) Dr. Dobb's Journal - June 2008 - Conversations (Page 21) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 22) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 23) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 24) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page IBM-1) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page IMB-2) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 25) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 26) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 27) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 28) Dr. Dobb's Journal - June 2008 - Building a Test Harness for RTOS (Page 29) Dr. Dobb's Journal - June 2008 - QT and Windows CE (Page 30) Dr. Dobb's Journal - June 2008 - QT and Windows CE (Page 31) Dr. Dobb's Journal - June 2008 - QT and Windows CE (Page 32) Dr. Dobb's Journal - June 2008 - QT and Windows CE (Page 33) Dr. Dobb's Journal - June 2008 - QT and Windows CE (Page 34) Dr. Dobb's Journal - June 2008 - QT and Windows CE (Page 35) Dr. Dobb's Journal - June 2008 - Software to Hardware Parallelization (Page 36) Dr. Dobb's Journal - June 2008 - Software to Hardware Parallelization (Page 37) Dr. Dobb's Journal - June 2008 - Software to Hardware Parallelization (Page 38) Dr. Dobb's Journal - June 2008 - Software to Hardware Parallelization (Page 39) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 40) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 41) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 42) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 43) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 44) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 45) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 46) Dr. Dobb's Journal - June 2008 - Performance Portable C++ (Page 47) Dr. Dobb's Journal - June 2008 - Effective Concurrency (Page 48) Dr. Dobb's Journal - June 2008 - Effective Concurrency (Page 49) Dr. Dobb's Journal - June 2008 - Effective Concurrency (Page 50) Dr. Dobb's Journal - June 2008 - Effective Concurrency (Page 51) Dr. Dobb's Journal - June 2008 - The Agile Edge (Page 52) Dr. Dobb's Journal - June 2008 - The Agile Edge (Page 53) Dr. Dobb's Journal - June 2008 - The Agile Edge (Page 54) Dr. Dobb's Journal - June 2008 - The Agile Edge (Page 55) Dr. Dobb's Journal - June 2008 - Swaine's Flames (Page 56) Dr. Dobb's Journal - June 2008 - Swaine's Flames (Page Cover3) Dr. Dobb's Journal - June 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.