Step 50: Learn to Estimate ~ Giovanni Asproni

Birat Rai
3 min readFeb 23, 2018

--

This is the 50th Step towards gaining the Programming Enlightenment series. If you didn’t learn the 49th Step, read it.

Photo Source

It may not come as a surprise, but developers will be called upon to estimate the developmental works many times in their career.

Project Manager: Can you give me an estimate of the time necessary to develop feature xyz?Programmer: One month.Project Manager: That’s far too long! We’ve only got one week.Programmer: I need at least three.Project Manager: I can give you two at most.Programmer: Deal!PS: Text used as-is from 97 things every developer should know git-book.

The programmer comes up with an estimate and Manager bargains here, in the end making a deal. This conversation is wrong, the estimate is inaccurate and will either haunt the programmer to meet his deadline or the project might not be achievable in that timeline.

Photo Source

What went wrong is the understanding of estimation. To get an estimate, we need to understand three definitions — estimate, target, and commitment.

What is an estimate?

verb /ˈestəˌmāt/roughly calculate or judge the value, number, quantity, or extent of.

The measure of an estimate cannot be precise for development like 234.14 days. And, to be safe make an estimate in months rather than days, so that estimate of “5–6 months” won’t look bad if it took 7 months. But if we slip from estimate of “150 days” to 180th or 200th day looks horrible.

What is a target?

noun /ˈtärɡət/a mark to shoot at, a goal to be reached.

We must make sure the deliverable or business objective is clear to the developer. eg; “The user should be able to login to the application”

What is the commitment?

noun /kəˈmitmənt/the state or quality of being dedicated to a cause, activity, etc.

The promise to deliver the target objective at certain date or event. Eg; The login functionality will be available by the end of 4 release cycle.

As Steve McConnell notes, “The primary purpose of software estimation is not to predict a project’s outcome; it is to determine whether a project’s targets are realistic enough to allow the project to be controlled to meet them.”

--

--

Birat Rai
Birat Rai

No responses yet