From time to time estimating a project's length can be tricky if you have very little in the way of specs. It's probably best to not even quote the project and go hourly under this cicumstance. About 9 months ago we quoted a client on some work. This client happens to be a close friend of mine. I told him what I thought it would take at the time with the resources I had back then. Since then we've raised our rates by a lot, hired a couple more folks and changed the way we do business. The site was launched behind schedule in an incomplete status. They've asked for all kinds of additions and changes to the project. I was happy to give it to them but didn't warn them every time they asked for something that it was puttting us further behind. We were building a software package that could be reusable and so I didn't mind the extra features.
So, now they are really pissed because the project is still not complete and I only have a week's time this month to dedicate to their project which may or may not be enough. It's a behemoth of a project which is over 100 hours outside of it's budget. So, what to do? Well, I've learned some lessons.
- Do not do extra work for a client outside the scope of the project without charging and increasing the deadline (yes, I should know this already but have made this mistake regardless of the fact I know it. Generally make this mistake with friends only.)
- When doing work for friends make no or very little special considerations because they are friends after the contract is signed. The contract is in stone and must be followed to a T as much as can be.
- With such a large project deal with it in phases if possible and only charge/estimate one phase at a time. If you make an overall project estimate make it very clear that the accuracy could be off by up to 30%.
- If specs are unclear or unfinished a deadline and a cost cannot be clear. No exceptions.
- When building a software package for a particular company that can be reused pad your quote with extra time.
Back to the question of what is to be done. Well, there isn't much that can be done. I've went back and forth with the client. I've proved my dedication to the completion of the project. Generally I would give a partial refund but because the project is so far over budget it's not a good move. So, all I can do is look over the things that need to be finished and complete the tasks that have the most user impact for the least cost first. After that I need to finish the less important tasks or tasks that have a high cost and low benefit. After that I have to hope that my friendship with the client is strong enough to make up for the issues we have had.
Some of you may say "Will, you so fucked that up." But really, I am not the only responsible party. I talked to the client's wife, who also works for him, and she understands that part of the reason we are behind on the project is also because of additions and changes. So, even if my client doesn't get it at least his wife knows what's up and someone sees the effort I have put in.
Will I salvage this client? Yes, probably. I'm 90% sure. Before this year we had a sketchy reputation with some of our clients but we completely changed the way we do things, the technologies we use and hired people to make up for our lack of ability to complete work. We did a complete 360 and fulfilled my vision of what I wanted the business to be like. This client is one of the last clients from that sketchy past before we did our turn around and I hope to really help them fulfill every vision they have of their company through their website.