Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Design

Crossing the Chasm


Reality vs. Rhetoric

First and foremost, the agile community needs to address the hyperbole. Our detractors will say, "Agilists don't write documentation." Nothing could be further from the truth. To further exacerbate the situation, some extreme agile evangelists claim that all the documentation is in the code. In reality, the goal is to store information only once, in the most appropriate place possible (see http://www.agilemodeling.com/essays/singleSourceInformation.htm). Even though a lot of the documentation is in the code, agile developers may often detail design information in unit tests, and requirement definitions in acceptance tests. But if the stakeholders insist on investing their time and money on traditional high-level models, system overviews and full support and user documentation, we will deliver them.

Other harmful rhetoric includes: "Agile teams don't need project managers, quality-assurance people or architects." Even though this is partially true, we still need aspects of all of these job functions. What we don't need are specialists who want to focus only on those specific roles. For instance, project management becomes a team function, but product managers are still needed to protect the team and obtain access to resources that are critical to project success. Quality assurance becomes a mindset that everyone on the team should have—after all, agilists are, by definition, "quality infected." Similarly, although architects are important to every system, architecture is something that we design in a highly collaborative and evolutionary manner, and we may not even have a need for comprehensive architecture documents (see http://www.agilemodeling.com/essays/agileArchitecture.htm for details).

But some of the rhetoric is absolutely brilliant: "We maximize the amount of work not done," is one of them. Agilists travel light. We've learned to discard traditionally comprehensive documentation for working software. When you travel light, you also reduce the bureaucracy surrounding those work products. For example, less documentation implies fewer documentation reviews and less need for traceability between documents.

The most interesting and controversial rhetoric is "the agile cost-of-change curve is flat." Once again, this is only partially true. In Extreme Programming Explained (Addison-Wesley, 2004), Kent Beck claimed that the cost-of-change curve for XP is flat, with the occasional bump in the production stage. The reason this claim is controversial is that the traditional cost-of-change curve is exponential—the longer you take to find a defect, the more expensive it is to fix. The reality is that agile methods occupy only the left-most part of the cost-of- change curve because agilists adopt techniques with very short feedback cycles (see Figure 2). This enables us to detect and address defects as early as possible. I explore this concept in detail at http://www.agilemodeling.com/essays/costOfChange.htm. The real message should be "Agilists follow techniques that minimize the cost of change."

[Click image to view at full size]

Figure 2
Comparing the cost-of-change "curves." The agile and traditional cost-of-change curves are identical. The difference is that agilists follow techniques that keep us at the low-cost end of the curve.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.