THEORY: It is impossible to 'Do your best'...

I have thought about this for some time now and decided to write it down and let people tell me how ludicrous my theory is….

 

I believe that it is not possible to ‘Do your best’ when it comes to developing an application. I think this because as developers we are constantly evolving in our skill sets. Even within the scope of a small, say 4-6 week project; we have learned things by the end of the 6 weeks that make us better than when we started. Thus, to do our best we would need to re-code the things done at the project outset and then at the end of the re-write we would once again be in the same boat. This is all said with the unrealistic consideration that I asked for 10-12 weeks for the project, when I really needed 18-24 and the client only gave me 4-6.

 

So in order to truly ‘Do your best’ on a project, there would need to be no deadline (thus an unlimited budget) and you would have to do the entire project without learning anything new or knowing of any possible way that any line of code could work better!

 

Translation: This just ain’t gonna happen in the real world!

 

So – the next time you complete a project, don’t say ‘I did my best!’

1 Comment

  • I think this is insightful.





    I'm withholding my full agreement on one point. Do you think that a developer could truly continue to improve a/any project with infinite subsequent rewrites? I believe that you'd see diminishing returns. This would be especially pronounced if no other educational projects occur between rewrites.





    For example: Let's say I have a component I've developed in one week. If I take another week to completely rewrite it with the knowledge I learned, I could make substantial improvements. Let's just say I can make it 100% better. After another week, I bet I could redesign it based on things I just learned and get at least 50% better (or, if I'm really lucky, 75%). The next week, though, I'm running out of items to improve. I've begun to hit the limit of my tweaking, but I still manage to squeak out a rewrite that provides a 20% improvement in performance, size, scalability, etc. I spend another week on a rewrite and am now able to spend the majority of the week thinking and much less time coding. I find a way to eek out an additional 5% of improvement. After that, each week/rewrite has a good chance of not showing any improvement, or, perhaps, only providing a miniscule or debatable improvement. I'm reaching a point where I can improve the project no further on my own.





    In my mind, there is an upper limit to how well you can develop specific projects given extraordinary amounts of time. Regardless, no one really expects any project to ever reach that threshold because no one will pay to squeeze out the final few percentage points-- especially if the second rewrite was good enough for 99.9% of the business needs.





    Still, I'd really love a study that shows this. I'm tempted to try rewriting a couple of side projects (over a year) and see how much better it is. It'd be interesting to see if there's a 'golden number' of rewrites that gets you within, say, 90% of your optimal work.

Comments have been disabled for this content.