Ten things you should consider when making software development estimations

Anca Onuta
3 min readJun 7, 2019

Client: How long will it take to develop this new functionality?
Team: About 2.5–3 months.

If you wonder why you receive or give a wrong answer to this question, here are ten things that you might not have considered in the estimations:

  1. The learning curve. It includes three things: understanding the requirement in detail, validating your understanding, and learning more about the subject. A developer is not a business expert and needs to know the business to understand the requirements.
  2. A developer doesn’t sit on his/her desk and starts coding just like plugging a laptop. Before starting coding, a software developer needs to define what the data structure is, what are the data types, where each field comes, what happens when a user does XYZ action. This step can be called Technical Design, and it is a necessary step.
  3. Testing. Development doesn’t mean testing in a lot of the situations, but it’s impossible to develop something based on the requirements if you never checked what you produced.
  4. Documentation. Depending on the project and technology, this could be minutes or days.
  5. Merges. I think any developer spent a least one day in merging an old branch, which in theory is a maximum of 1-hour work.
  6. Deployment in multiple environments. A developer code locally most of the time, he/she needs to deploy the deliverables on the development, staging, and production server. Even with automated deployment, this requires some effort.
  7. Bug fixing. Everyone wants a bug-free solution. There is the expectation that the technical team is fixing the bugs.
  8. Code refactoring is the natural process of cleaning and simplifying the code of specific functionality. The refactoring process can bring increased performance, faster troubleshooting, shorter maintenance times. It is essential to consider it in the development of multiple features.
  9. Communication. We need to communicate with our colleagues, our clients, align ourselves as a team on a daily bases. That’s all part of the development process.
  10. Business Validation. From showing the functionality to the managers / Product Owner to validating that the development meets their requirements, it is part of the validation process.

All the above are part of the actions needed to “develop” a specific functionality. The coding itself is just a step of software development.

What to avoid the misestimation trap? Ask, “ how long will it take to LAUNCH in PRODUCTION a certain functionality?
That changes the equation.

You might be interested in: