Dr. Dobb's Journal - January 2008 - (Page 66) d01ambler_p4ma 11/9/07 10:15 AM Page 66 The Agile Edge to invite them to listen in on the team’s daily meetings. Or, with team permission, the product owner may even give them read access to the team’s work products. Although a traditional business analyst could fill the role of product owner, there is a significant risk that they can fall into old habits of communicating via documentation. The traditional software development community has significant cultural barriers to overcome when it comes to modeling and documentation, and as a result, experienced business analysts often struggle to fit into agile teams. Like I said, we need to do business analysis on agile projects, but that doesn’t imply that we need specialized business analysts. Stakeholders Over Stakeholder Proxies There’s a very real danger of product owners becoming a bottleneck on Agile project teams, particularly at scale. What development teams really need is direct access in a timely manner to the stakeholder(s) with the domain expertise required to address any PC in adv c The the er on lo his tise tinu nge tor d so ou st y o ftw sly f . ar .. et ma oo nk l ind . -lint 8.0 for C/C++ Presents Bug of the Month #1547 class Drink { public: /* */ virtual bool spiked(); }; class Martini : public Drink { double gin, vermouth; }; const int all_bad = -1; int scan( Drink drinks[], int n ) { for( int i = 0; i < n; i++ ) if( !drinks[i].spiked() ) return i; return all_bad; } Martini drinks[100]; int select = scan( drinks, 100 ); The evil Dr. Yes invites one James Bond to a New Year's Eve celebration and places t before him an enticing array of Martinis. But Bond's spike detector, an elaboration on the code above, is simply not working as expected. Can you spot the flaw? Visit our web site at www.gimpel.com PC-lint for C/C++ will catch this and many other bugs. It will analyze a mixed suite of C and C++ modules to uncover bugs, glitches, quirks and inconsistencies. Not your Grandpa’s lint: PC-lint has introduced several spectacular and revolutionary innovations in the art of static program analysis. Taking clues from initializers, assignments, and conditionals, variable and member values are tracked, enabling reports on potential uses of null pointers and out-of-bounds subscripts. New with Version 8: Interfunction value tracking – Actual argument values are used to initialize parameters; return values are computed; a multi-pass operation (you control the number of passes) allows you to plumb the depths of function behavior to arbitrary levels. Plus Our Traditional C/C++ Warnings: Uninitialized variables, inherited non-virtual destructors, strong type mismatches, ill-formed macros, inadvertent name-hiding, suspicious expressions, etc., etc. Full Language Support for ANSI/ISO C and C++. PC-lint for C/C++ FlexeLint for C/C++ $239 Numerous compilers/ libraries supported. Runs on Windows, MS-DOS, and OS/2. The same great product for other operating systems. Runs on all UNIX systems, VMS, mainframes, etc. Distributed in shrouded C source form. Call for pricing. 30 Day Money Back Guarantee questions that they may have about the functionality they are currently implementing. Stakeholder proxies are good, actual stakeholders are even better. A critical task performed by product owners is putting developers in touch with the right stakeholders in a timely and efficient manner. Another important technique that doesn’t get the attention it deserves is observing end users at work. In the late 1980s, the usercentered design (UCD) community showed us that what end users told us they did, and what they actually did in practice, could vary widely. People will often discuss the ideal way of working, ignoring significant details and less-than ideal events. For example, how many times have you told people that your morning routine is to wake up, shower, dress, have breakfast, then get off to work? Yet we all know that far more than showering occurs in the bathroom each morning, enough said about that topic, and that many of us would be embarrassed to admit what we actually consumed for breakfast. Until you observe people in action, you’ll never know what actually happens, and therefore you’ll never truly understand their needs. To successfully scale the concept of agile customers to meet your specific needs, my experience is that you should adopt four values pertaining to stakeholder relationship management. In the lingo of the Agile Alliance, these four values describe preferences; while the ideas on both sides of each value are important, the ones on the left are more important than the ones on the right. These four values are stakeholders over customers; communication conduits over product owners; business analysis over business analysts; and stakeholders over stakeholder proxies. In this instance, the Agile community can clearly benefit from taking the good ideas of traditional development while leaving behind the bureaucracy. Thanks to Mike Vizdos for his insightful feedback, which was incorporated into this article. DDJ Scott is a DDJ Senior Contributing Editor, Practice Leader Agile Development with IBM Rational, and author of several best-selling books. He can be contacted at www.ambysoft.com/ scottAmbler.html. G i m p e l S o f t wa r e Serving the C/C++ Community for 22 Years. CALL TODAY (610) 584-4261 Or FAX (610) 584-4266 www.gimpel.com 66 Dr. Dobb’s Journal l www.ddj.com l January 2008 PC-lint and FlexeLint are trademarks of Gimpel Software http://www.gimpel.com http://www.gimpel.com http://www.ambysoft.com/scottAmbler.html http://www.gimpel.com http://www.ambysoft.com/scottAmbler.html http://www.ddj.com
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.