Quite often software developers are required to provide estimates of how long it will take them to create a new piece of software or modify existing software. This estimate rarely matches the actual time it takes to complete the project, and there is sometimes a huge chasm between the two.
There are two forces at play.
The developer needs to give themselves enough time to complete the task comfortably, accounting for a little unforeseen contingency. This need will push the quote up. There is also an equal and opposite force pulling the quote down, exerted by the account manager. He or she wants the quote to be attractive to the customer so that they authorise the work.
But then, there is the odd freak of nature where the account manager pushes the quote up themselves. This weird phenomenon can happen for a number of reasons:
- the customer believes that the work is more complicated than it actually is, and the account manager can get away with pandering to this belief. More money for the software company!
- the account manager is trying to recoup costs incurred on other projects. Perhaps another project for the customer went way over budget because of inaccurate estimates and the account manager is trying to claw back those costs.
- political manoeuvring. Picture the scene. A project will take 20 days to complete but the customer has a budget for only 10 days. I know – we’ll quote them 10 days for this project to get the work and then we’ll add the extra 10 days to a future quote. Or spread them over a selection of future projects. Either way, we want our money!
Earlier today I quoted a piece of work at 2 days for my manager. He said that he would quote the customer more.
Is that bad?
Not necessarily. The majority of the work has been done already for another customer of ours . They requested similar functionality for themselves. However the project was shelved when the work was nearly finished, at no cost to themselves. We sometimes need to keep customers sweet to guarantee future work. We’ve incurred costs in developing the software for this project, but in the long term it doesn’t matter if we recoup those costs immediately.
My estimate was that it would take 2 days to complete the original project that was never finished. But we also need to take into account the work that was already done that the customer is also benefitting from. Hence the increase my manager is going to impose.
But this raises another question.
If you add functionality to a package software solution because a customer has requested it, and they pay for it, should you charge new customers for it when they buy your product?