Taxi drivers in India are interesting. None of the taxis so far have meters, so the payment can be a negotiation. Sometimes they tell you it is 100 rupees. Sometimes it is 200 rupees (the return trip to the hotel is always more expensive!). But then you get some drivers who say “Pay me whatever you want. I will not ask you for money.” And finally there are the rickshaw drivers who spend more time transporting you and actually pedal a bike to do it for “free”, hoping for a good tip. They take the negotiation out of it completely!
Anyway, it made me think a bit about the tactic to get paid. I bet that the drivers who let you pay what you want make on average more money. I think that there was a study on this in Freakonomics that showed that tends to be the case. Well good for them, it worked on me!
So let’s apply this to requirements. Let’s say the business writes and prioritizes their requirements. Typically the development team has to then provide an estimate on the requirements or estimate which requirements they can build in the allocated time. Either way, it often becomes a bit of a contentious negotiation. Developers feel pressure to say they can build a lot of requirements in the time-box (and then are pressured to actually do so). Or they are pressured to say they can put an estimate on all of these requirements when they really have no idea how long it will take to do them all. So in the end, this motivates some bad behaviors – for example – they inevitably alter the estimates so they don’t get in trouble for not delivering it all.
So what if instead of this, the business simply says “build what you think is reasonable, just work in order of our priorities”. The business would be motivated to maintain a positive relationship with development – the power of “liking someone” can help you get more out of them! The developers are not pressured to lie, for back of a better word. Frankly, most people have good intentions and want to do good work, so they will work hard and deliver what they can. There would be a nice lever here if the business could actually choose their developers of course – that way if developers gold-plate or are not well intentioned, then they can choose not to use them.