We are working on a large ongoing project that has continual feature changes. These features could take as long as 3 - 4 weeks to complete.
This would of course be fine, except the client is always changing its priorities/focus based on pushes from THEIR clients who may want certain features implemented before others.
So, we often have to shift gears in the middle of a major feature build and start a new feature that all of a sudden has a greater priority. We then of course have the time cost of merging everything together at some point, and also the cost of that lost momentum on the original feature.
Our estimates are out the window at that point.
Is there any good way to handle this?
Some options I've thought of:
- assume this is the way things will be, and apply a 'distracted client' factor of up to 100% on all estimates (this is dangerous in the case where we can actually complete a feature without interruption)
- educate the client on the costs of shifting gears, and perhaps apply a change premium to previous estimates if they want us to change to working on a different feature
- refuse to work on more than one feature/release at a time (aside from bug fixes). This is probably not realistic.
I'm looking forward to hearing about how others have tackled this. It can't be uncommon.