Wednesday, 25 July 2012

Anti-Pattern #4: Give Work To The Lowest Bidder

The idea of giving work to the lowest bidder is very commonplace throughout many industries, and our personal lives also. After all, we're interested in saving money for ourselves and our clients. But, there's the old adage that "you get what you pay for", and there in lies the rub: if something's too good to be true, it probably is. "This is just anecdotal waffling" I hear you all saying, so I'll break it down.

To start with, it's worth me being specific about the type of work and the type of bid I'm talking about: it's for agreed scope and quality software work, but not fixed price; with a contractor, or even an internal division, team, or individual.

When I used to send out tender documents in the building trade, I'd be fairly sure that the client would pick the lowest price. But most engineering contractors tended to return quotes in the same ballpark, and there were never any startling outliers. One contractor's ability to undercut another usually came from a good relationship with a certain supplier, source of labour, or proximity to the job, and I'm sure good old fashioned loss-leading was at play sometimes, to get a foot-in-the-door in a new area or sector. But what would we have recommended to our client if one contractor's price was 30% lower than all of the others?

Because this never happened to me in those halcyon days of pipe-sizing and psychometric chart analysis, I can't comment, but I know where I'd start: I'd look at the tender and figure out where they appear to be saving this money. If it was in the price of certain equipment, piece work or labour rates, then fair enough: they're ripping someone off to do this, but I'd then make it my client's decision to take this saving or not. However, if it was in a completely different guess of how much labour, or the quantity of certain materials needed, then alarm bells are ringing: they've completely underestimated relative to everyone else, which is likely to mean that the real figure is going to end up much higher. A cynic might say that they're lying to get us to take their deal, and they're entitled to try it on. But they're not entitled to be cross when we tell them no.

So, this simple analogy is probably nothing new to you really, and simply states that an absurdly low bid for software work (relative to other bids) probably means a woeful underestimation of the work required, the risks involved or the complexity of the job at hand (or all three). Taking this bid will almost certainly mean project failure in the eyes of the project sponsors, as it's going to be late, over-budget or hacked out at low quality, all of which will make a fool of you if you're the one doing the choosing or the advising.

Conversely, let's think about what the outlying high bid might mean. Could this mean that these people are the only ones that truly understand the full complexity of the problem? By the same token, I could argue that outlying lowest bidders might be the only people who have realised what a truly simple job it is if they do it a certain way. Either way, such an outlier deserves thought and discussion. Perhaps getting the low and high bidders to talk to each other and discuss why they differ so wildly might move them closer to common ground. This is starting to sound a lot like planning poker, so you all know how this works already! This might initially sound like a bad idea - and maybe some external contractors would point blank refuse - but having them share each other's secrets isn't our concern, it's that they get the right answer.

If we apply these principles to handing out work internally (to individuals, teams, or divisions), then the planning poker perspective is the one that works best for me: you don't say "sold" to the lowest card holder in planning poker, you force them to explain! So, we just have to apply the same discipline to larger scale work bids between teams and divisions. With internal work, the most fundamental things that I believe here is that a high bid doesn't mean a rip off: it's probably a fair indication that what you want is complex, big or risky. For internal work, it's hard for the high bidder to actually take all of the money and run anyway: you're only going to run the project until they're finished!

When deciding how to internally allocate work based work, I also feel very strongly that it isn't a negotiation. I'm rather tired of people in the same company talking about negotiating with each other when we're on the same side! I want collaboration, not negotiation.

Finally, it's worth remembering that you can't recognise an outlier from a population of two. Or three, or four for that matter, but I won't go too deeply into statistics, and simply state the obvious, that two bids is difficult, so you need at least three! That said, examining the differences as a proportion of the total gives some idea: I never usually found building contract work tenders to differ across their range by much more than 10% (but the thresholds we need to use in software development are much higher!)

But when it comes down to it, and you've done all the analysis, and whether the bids are widely spread, or you can't get a cigarette paper between them, my Wife and I have a simple mantra, and it goes something like this:
Second cheapest, every time

1 comment: