Agile Zone is brought to you in partnership with:

Esther Derby helps create great work places where people can do their best work and make products their customers value. Not so very long ago, she made her living writing code. She's co-author of Behind Closed Doors Secrets of Great Management and Agile Retrospectives: Making Good Teams Great. You can read more of her thoughts on management, organization, teams, and agile methods at www.estherderby.com Esther is a DZone MVB and is not an employee of DZone and has posted 73 posts at DZone. You can read more from them at their website. View Full User Profile

Building Trust, One Iteration at a Time

04.19.2013
| 3238 views |
  • submit to reddit

A while back I talked to a CEO of a contract development shop.  He wondered how Agile could help him with fixed price, fixed scope contracts to deliver software.

Of course, the requirements that come with these contracts are never complete or completely accurate. The first thing that comes to mind is to stop making impossible contracts.  For this CEO, that doesn’t seem possible, at least at this time, given the context he does business in.

In any fixed cost/scope contract there comes a time when the two parties must have a conversation about the short-comings of the requirements, the delivered software, and the budget.

In a waterfall delivery, all progress reports are proxies. You’re reporting on intangibles–designs, test cases, or code that isn’t fully integrated or tested. This is all reporting on faith, because it is not verified by working software.

When a change request does come up, it’s unanchored from the experience of how actually using the software. It’s only words, and the impacts are made tangible in cost thinking, how much it will cost to modify existing artifacts, ripple effects through the code, test cases, documentation.  There’s usually some accounting for the benefit and risks, but those tend to feel subject to inflation, based on conjecture, squishy. What does feel clear is that the change request process takes up time, and approving the change will cost more money. More often than not, the interaction feels like a tug of war. One side is arguing to spend more money, and the other is working with equal vigor for the opposite.

When the moment of truth arrives–the long tail of testing–it becomes apparent that all the progress reports up until that point weren’t reliable. After you’ve made the up-front promises and signed on the line, you have one big opportunity to build trust. If you blow it, you’re sunk. At that point, it’s difficult to have a conversation about meeting goals–especially when the lawyers get involved.

However, if you are using agile methods, you demonstrate some small piece of software every few weeks. People on both sides of the contract see tangible progress.  They have a chance to correct misunderstandings about requirements, and fill in the gaps in each others understanding. People on both sides of the contract can see and experience the short-coming in the requirements, so it’s not the tug of war a traditional change process sets up. People on both sides have more reliable data on which to make decisions.

Most important though, both parties have had many opportunities to build trust based on something real–working software.

So when that point comes, when both parties to the contract must have a conversation about meeting the aim of the contract, it’s a very different conversation.  The moment of truth will probably come sooner, when people have more options.  The conversation will be based on shared understanding of progress and trust.  And that’s a very different conversation.

Published at DZone with permission of Esther Derby , author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Hikari Shidou replied on Sat, 2013/04/20 - 9:16pm

 I've never seem comparing waterfall with agile...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.