Connect with us


Why Do Software Developers Suck at Estimating How Long a Software Project Will Take

He asked a real interview question about why programmers suck at code development project estimates.

I was interviewed for a freelance project online. The person who interviewed me wasn’t an HR person but a programmer with first-hand experience in code and the corporate world.

He asked a real interview question about why programmers suck at code development project estimates. Based on my experience, I put together all possible reasons why this is always the case:

  1. It is the case that programmers usually need much longer than they estimate. The larger the project, the more the estimate is off the mark in percentage terms.
  2. Programmers often experience that they quickly find themselves needing explanation when making realistic assessments. To avoid this, overly optimistic estimates are usually given.
  3. Programmers often only consider the time they need to write the actual program code. But there are also meetings, agreements with other developers, customer inquiries, code reviews, developer tests, bug fixing, documentation, etc. You quickly need just as much time for these activities alongside the actual coding.
  4. In large projects, there are almost always areas associated with a certain degree of uncertainty. For example, if the technical implementation in this area is new territory for everyone. Or one is dependent on an interface that is still being developed by another company involved in the project. These areas must be considered separately and a risk premium added to the assessment.
  5. Another problem is insufficiently thought through and formulated functional specifications. But it also doesn’t make sense to expect too much detail from the specifications. So apart from the effort required, there is a risk of inappropriate detailed specifications.
  6. The management sometimes has such abstruse ideas because nobody can imagine that all the details have to be translated into the correct program code. And the administration has no idea what needs to be there and what needs to be considered. In unfortunate cases, the management also lacks any experience in software development.
  7. Because software development is a creative process, there is no single way to solve a problem. There are many, and there will always be many, dependencies that are rarely clarified in sufficient detail in advance. And the demand to be able to plan everything comes from my point of view from a narrow perspective of the planners.

If you already have more experience, you can consider this by estimating and then adding a certain safety margin based on your gut feeling. Effortless thinking is of little use here.

I always wrote down all the necessary SW modules that I could think of. Then put myself in a state of relaxation and wrote down the effort in person-days for each module. Then totaled and rounded up to full man-weeks. And then bravely presented the result.

Full Article: Josef Cruz @ JavaScript in Plain English
👋: 125
Apr 22, 2022