logo design...copyright Elena Yatzeck, 2010-2014

Sunday, April 14, 2013

Fixed Bid Agile Without Cognitive Dissonance

I've been following a LinkedIn forum discussion with interest entitled "Could we use Agile methodology with a fixed bid contract."  There are some quick, snappy answers to the question which came up immediately which I will quickly put into two categories:
  • Straightforward:  NEVER NEVER NEVER.  Run away!  Screaming!  These people don't understand agile.  It's a smell.  It's a TRAP!   I'm embarrassed for you.
  • Nuanced:  If you must do this, here's how to make the best of a bad situation (offers advice with implied background nose holding).
Of course, there were also some really useful answers, pointing to blogs like this really nice one from codesqueeze, recommending "target scope" or "target cost" models rather than either "fixed bid" or "time and materials."

from http://www.cytrion.com/businessmodel
Let's talk about "fixed" things though.
 
I'm always intrigued by people who think a perfect stranger should hire them to build software on a "time and materials" basis, or on a retainer, or on salary, and be willing to wait and see whether they will eventually get some monetary benefit from the resultant software that meets or exceeds overall expenditures.  I suppose I shouldn't be surprised.  Sales is more often than not about emotion, gut feeling, and trust, and not about projected returns on investment.  And the decision to pay someone in particular to build software boils down to a sales proposition, one way or another.

Let's posit a world where software delivery team hiring and retention could be subject to financial projections justifying the cash outlay, and in which the hiring body would routinely compare money spent to software return on investment.  Crazy talk, I know, but humor me.

In such a world, the first thing we would want to do is push a little harder on definitions.

What do you mean by "fixed bid?"

Mary Poppendiek summed it up neatly in 2011 with her Agile Under Contract presentation:  agile software development lends itself extremely well to "Fixed Price" contracts, but agile does not lend itself well to contracts with "Fixed Scope."  One of the great advantages to an agile project is that you can stand up a team of people with a known run rate, agree to pay them for a certain time period, and then focus on questions around "what can I get for my money?"

So if we're talking about the simple question of "should you accept a fixed price contract" for agile, the answer is yes, certainly, so long as you make sure you set a protocol with the client for reviewing expected scope on a regular basis.

If you structure the engagement as a two-phase one, with the first as a workshop engagement to get consensus and structure around the functional details, and then move into a larger fixed price agreement, which includes an agreed-upon contingency for newly discovered functional needs, you are embarking on a project that will be much better than anything this client has seen before, and they will be a great reference for you.

But if we're talking about "fixed scope" projects, isn't that still really insane?  Agilists shouldn't do that!  It's evil!

Hold on a minute, there.  You're right.  That might be insane.  But let's say there's an insane person or company out there that wants to hire someone to do something for them, but only on the condition that the work must be done fixed price/fixed scope.  And they are willing to negotiate on the price up front.  Does Agile philosophy or methodology forbid you to bid on that project?

If they are an evil client planning to take advantage and act in bad faith, then of course you shouldn't agree to work for them, no matter what.  Some agile thinkers regard the fact that a potential client is insisting on a fixed bid as a strong indicator of underlying evil.  And perhaps it is.  Buyer beware.  But as you weigh your prospective clients, please make sure you understand when you have made a judgement call based on the implied trustworthiness of the client, and don't confuse that judgement with a theoretical rejection of their professionalism or intelligence.

For a moment, let's posit a good faith client who operates under old-fashioned methodology, not "a bad person."  Maybe they are working in a highly regulated industry.  Maybe their dad is making them do things this way.  Who knows.  Can you work with them?  This brings us to the final definitional question.

What does your client mean by "fixed scope?"

To me, this is the real crux of the matter.  No matter how you structure your contract, you're making a guess at the beginning about what the end-state scope is going to be.  The project is creating something that has never been created before.  All engagements, in fact, are the combination of an initial agreement and an ongoing professional interaction.

Most people can agree on the first three values of the agile manifesto:  focus on people, working software, and customer collaboration.  The sticking point for your fixed bid oriented clients is most likely on the final point:  with this kind of contract, how can you embrace change and avoid arguments about sticking to an original plan?

I think there's a simple answer to this:  spend some time in your fixed bid contract discussing the "change management" protocol.  Instead of getting all fussy about "that's not agile" or "I'm out of here," placidly agree to do a fixed bid contract, and put your energy into discussing:
  • how scope will be defined and enforced throughout the life cycle (pushing for lower granularity at the start, more defined granularity just before development,)
  • how progress will be reviewed (pushing for regular customer involvement and inspection), 
  • what the threshhold should be for discussing functional changes to the software (push for delegation to functional subject matter experts, except where some overall impact to timeline will be made)
By pushing a pragmatic change management protocol (along with a contingency built into the pricing), you can gain significant agile benefits for clients who wouldn't otherwise accept them.