Sunday, October 6, 2019

Estimating Software Tasks

Let developers estimate their own work
Any system where management writes a schedule and hands it off to programmers is doomed to fail. Only the programmer who is going to do the work can figure out what steps they will need to take to implement that feature. And only the programmer can estimate how long each one will take.

Design first, and in detail
Attempting to estimate a feature before you’ve figured out how the feature is going to work, in detail, can’t possibly work, even if you “multiply your best guess by three,” because your “best guess” is based on very little in the way of facts. The nature of software development is that things which seem simple are often surprisingly complicated when you think about all the details. For example, when you think about creating a registration and logon system, you might forget that you’re going to need a way to prevent passwords that are the same as the user name, and a way to deal with forgotten passwords, and a way for people to unregister, and so on. Until you try to figure out the design of all these things, you have no basis for an estimate at all.

Friday, October 4, 2019

How to Get Better at Estimating Software Development Time



Being able to accurately estimate the time required to develop a given product or feature is a crucial skill for every developer and one that must be honed over time through deliberation and effort. As an industry, we are constantly plagued with software overruns. One study estimates that as many as 66% of all enterprise software projects have cost and effort overruns.