97 Things Every Programmer Should Know

Page 126

Learn to Estimate Giovanni Asproni

you need to be able to provide estimates to your managers, colleagues, and users for the tasks you need to perform, so that they will have a reasonably accurate idea of the time, costs, technology, and other resources needed to achieve their goals.

AS A PROGRAMMER,

To be able to estimate well, it is obviously important to learn some estimation techniques. First of all, however, it is fundamental to learn what estimates are, and what they should be used for—as strange as it may seem, many developers and managers don’t really know this. The following exchange between a project manager and a programmer is not atypical: 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! The programmer, at the end, comes up with an “estimate” that matches what is acceptable for the manager. But since it is seen to be the programmer’s estimate, the manager will hold the programmer accountable to it. To understand what is wrong with this conversation, we need three definitions—estimate, target, and commitment:

100

97 Things Every Programmer Should Know


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.