Channels ▼
RSS

Design

Governing Agile Software Development


Formal Visibility

Sometimes the informal level of visibility provided by working software each iteration isn't enough for some organizations, usually because they find it difficult to measure what they got. Although you could count the number of function points delivered, it's doubtful that the benefit of knowing the count is greater than the cost of doing the count in the first place. In my opinion, just the fact that the business stakeholders are willing to continue funding the project should be a sufficient metric.

Traditionalists will often claim that Agilists are flying blind, but nothing could be further from the truth. At the beginning of each iteration, the team plans their work for that iteration in detail, producing an iteration task list (our form of a detailed project plan). According to the Agile Adoption survey, iteration task lists are the fifth most valuable work product of Agile development teams (the first four were working software, source code, developer tests, and whiteboard sketches). Agile teams, particularly those working at scale, will also create high-level schedules that communicate major milestones such as proving the architecture, dependencies on other teams who put together training materials or install production hardware, and on release windows available to the team. This is particularly important for release/transition phase activities (www.ddj.com/development-tools/198800565).

Some Agile processes, particularly those based on the Unified Process such as OpenUp or Rational Unified Process (RUP), include explicit control points in the form of milestones. Figure 3 depicts the lifecycle of the OpenUP, which includes four specific project phases. Many extremists within the Agile community will denounce the concept of phases, often in fear of a waterfall approach to development, but the reality is that when they're done right, phases enable good governance and scaling of Agile techniques. For example, during the Inception phase, you do some initial modeling to envision the requirements and architecture strategy and drive stakeholders to a general agreement as to the scope and vision of the effort. This reduces major business risks and puts your project on a sound footing. During the Elaboration phase, you build a working, end-to-end skeleton of your system, which addresses architecturally difficult requirements, thereby reducing technical risk. And architecturally difficult requirements often prove to be high-priority business requirements, so there is very little reordering of your initial requirements. The Construction phase proves to be the vast majority of the effort where you build the system and the focus of the Transition phase is where you release the system into production.

[Click image to view at full size]

Figure 3: Control points throughout the lifecycle.

Explicit demarcation of the software development lifecycle phases provides business stakeholders with the opportunity for formal checkpoints into the team's progress. For everyone still afraid of the waterfall boogeyman: Just because these checkpoints are "formal," doesn't mean that they have to be dysfunctional. It could be as simple as inviting a few extra senior stakeholders to your end-of-iteration demo and wearing a pressed shirt that day. More importantly, explicit phases enable stakeholders to take a phased-based approach to overall funding. Many organizations can't tolerate the iteration-based "allowance" approach to funding the project described earlier, yet setting the budget at the beginning of the project is clearly an unnecessary business risk that should be avoided. An effective compromise is to fund each phase at a time, and the secret to making this work is to streamline the funding request effort as much as possible.

Agile Governance Works

It shouldn't be a surprise that Agile projects are easier to govern than traditional projects, although it clearly isn't what some traditionalists want to admit. Agilists work closely with stakeholders on a daily basis and the stakeholders have active roles on the team. Agile project teams provide stakeholders with concrete and useful information as to what they're doing, and provide stakeholders with the ability to easily direct teams appropriately. If your organization wants to improve its ability to govern IT project effectively, perhaps you should really focus on adopting Agile approaches to development on all of your software development projects. Once you've done so, I suspect that many of your governance problems will have gone away all on their own.


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.
 

Video