Why do software projects miss deadlines?
Yesterday I built this blog using Jekyll and Github pages. I followed the tutorial “Build a Blog In Five Minutes”, but it took me more than three hours to do it.
Am I that slow, or am I doing something wrong?
In my defense, I spend most of the time:
- setting up the project on GitHub;
- setting up Google Analytics;
- configuring DNS records;
- installing Ruby on my laptop;
- placing a picture of me and polishing it with CSS;
- writing a message in the footer.
Maybe, if I had everything prepared in advance, I would spend 5 minutes building the blog.
This reminds me of my own mistake:
- Placing an action button on the page should not take me more than one minute, right?
- Wrong!!! I usually spend more than five minutes per button.
- Why? Because I’m forgetting about the time needed to:
- type the code;
- find a good icon;
- adjust margins and padding;
- polish look with CSS;
Maybe there is a pattern here:
- when the job is dominantly creative or engaging, we tend to overlook uncreative and grinding work;
- forcing us to underestimate the time needed to finish the project.
The proper way to estimate the deadline
- Give your initial estimate as you usually do;
- Deliberately think about all the grinding work that needs to be done, and add time for it;
- Multiply everything with 2 or 3 and hope for the best;
- As you work, periodically review and adapt the project scope to hit the deadline.