Posterous theme by Cory Watilo

Done by Tomorrow

Client: When will it be done by?
Programmer: Give me a couple of days and I should have it ready.

Prospective Client: "Is this difficult to build? Have you built such an system before?"
Programmer: I haven't done it before, but I would assume this is easy to build

If you are a programmer, you have been part of such conversations before. You have made promises to your client or yourself to get a certain thing done, without having thought so much about the complexity of the problem or if you do in fact have the time to get it done tomorrow. 

I have had these moments, a lot last year while working on multiple projects. A requirement to build a simple Image gallery in PHP/MySQL would have me giving out a time-frame of 3-4 days. Would it really take 3-4 days? No, it would take me less time to build it. What made that timeline 3-4 days is the fact, that I had other things going on, which also needed attention while the Image Gallery was being built.

Most people I meet want things completed as soon as possible. Often their decision of working with you involves you having the required time to get things completed at the earliest. It's tough saying "no" to "can I get it back tomorrow" requests. The client assumes there is something wrong when you say it would take 2 days to add a simple feature. 

Communication, I have learnt is really important as I spend more time working through projects. Done by tomorrow conversations have now been replaced by "Done by {date}". The {date} I arrive upon, after having looked through the work involved that week and letting the client know that I have other things to attend to between today and {date}. It's important to have a good work-life balance. Burning the mid night candle cannot go on a long time.