While time and materials is the right way to bill clients, it doesn't always make estimating cost easy. This is how we do it.
So… how much do you think this is going to cost? After a 30 to 90 minute conversation with a prospective client the question will inevitably be asked. It’s the moment any self respecting and honest consultant fears because you know your chances of landing the project could hang in the balance. So how do you respond? The fear is that any number you provide could be used against you should the project end up going over budget and at this point you just don't know enough about the project to provide any type of estimate. However, you have to tell them something or else they will take their business to someone who is willing to make up a number. So again.. what do you do? Tell the truth of course; politely inform the client that you do not have enough information to accurately gauge the scope of work. It is important to understand that at this point they are most likely trying to weed out shops who are completely out of their ballpark. So give them a number based on what it “feels” like compared to previous projects with the caveat that the number you provide is no more than an educated guess. If the number you provide is completely out of their ballpark than chances are it wouldn’t have been a good fit anyway. Reiterate that you will have a clearer view of the scope of work after a story carding session and even then the estimate will still only be an educated guess as the stories captured are only a snapshot into the requirements for the app at that time. In most cases that snapshot will change and evolve from week to week as both the project and client teams become more informed on the domain and feedback starts to trickle in from users.
There are typically two times a client is going to ask about cost. The first time is outlined above, during the “sales process”. The reality is that a client does need an idea at the outset of a project of what the overall scope is going to be, no matter how flawed that estimation may be. Our job is to make the client aware of why the estimates are flawed, and that while projecting total scope is important it is much better to manage scope on an ongoing basis.
The second time is post story carding prior to development kick off. Hopefully, you’ve been able to make this more manageable by having scope conversations during story carding. All throughout the story-carding and sales process we repeatedly communicate the difficulty in accurately projecting the cost of an application. By the time they get the estimate they should be aware that any numbers provided are merely conjecture.
So how do you provide an estimate with any type of accuracy and feel confident about it? We are acutely aware that any number provided will be used as a point of discussion should budget become a concern. As such, what we like to do is paint the “worst case scenario” for a client and prepare them for it at the outset. So given that all stories average out to 2 points a piece we look at the number of feature stories and multiply by 2 to determine the amount of points which comprise the project as it sits at that time. We then increase the point total based on the average amount of unaccounted for scope we've seen over the 170+ projects we've worked to date. We then divide that point total by a conservative estimate of our weekly velocity. This will give us a projection for the amount of weeks in the project. We then multiple that by our weekly burn rate to estimate overall cost. This may be significantly higher than the client anticipated, however it makes them aware of what could happen... and we feel like we’ve been honest in setting expectations. We then tell them that we’ll most likely get the project done for less than the estimate. The key to which is working together to manage scope and always being aware of where we are in relation to feature completion and budget consumption. The idea isn’t to prepare the client to spend more than they want to but to prepare for that possibility from the outset, so they are diligent in working with us to manage scope.