I am the single programmer working on a website handling both frontend and backend. Recently in my task list I have to provide a social news feed (activities among friends) which should summarize activities from different modules (at least 7 modules). It has taken at least 20-25 days for me to develop that. Remember in news feed every action can be performed right on the news feed + there must be some kind of aggregation which should aggregate similar activities e.g. User A, B and C liked your item.
How can I convince my client that the task was complex and the time I took is fair?
5
You gave an estimate, your client agreed based on it, you got it wrong, you take the hit.
It’s a harsh lesson, and you did have the option of attempting to renegotiate the cost and or scope, but you got into one more day mode, there’s always a price for that.
Even if you succeeded in persuading your client to pay for your mistake, they are not going to be happy, and will be reluctant to do business with you again. Personally I’d visibly take this one on the chin and honestly and openly admit my error. You’ll get regain some respect and get a reputation for integrity.
I know it’s not what you want to hear, but put yourself in their shoes, what would persuade you to pay over 2.5 times what was originally agreed with some third party? It would have to be really convincing wouldn’t it?
5
TL;DR: Establish a rapport. Do regular status updates and offer options that save money, or meet their needs better.
So accurate estimation is good. What’s even better is timely communication as soon as you know that your estimation is off, as well as regular status updates on progress including challenges. You should also strive to make these updates a 2 way conversation. Explain when things start taking a long time, offer options that may takes less time. Feel free to offer options that take more time as well, but may provide the value the customer if really looking for.