Estimating Unknowns

The reason we rarely know how long a particular task will take is that we’ve never done it before.

It’s possible, and in fact probable, that we’ll miss a step. We might assume there’s already some code written and available to do a particular subtask of what needs to be done and find out that there isn’t any, or we’ll discover that this unique task we need to do isn’t so unique after all and there’s a library that has exactly the functionality we need. More than anything we need to think things through, and we can never do that as effectively as when we’re actually performing the task.

The tasks we perform when writing software are vastly different moment to moment, day to day, month to month, and project to project. Of course, ...

Get Beyond Legacy Code now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.