sajad torkamani

Suppose you’re asked to provide an estimate for a piece of work – whether it’s a completely new feature or a reworking an existing feature. Here’s how I do that.

Don’t be tempted to give an approximate estimate

Push back on giving a rough estimate. Say that you need to take 10-15 mins to go through the changes more closely to ensure you better understand the scope of the changes. If you give an estimate on the spot without much thought, you’re likely to overlook hidden complexities of the changes and so give a shorter estimate.

List all the changes involved

Create a new Roam page and create a bullet point list of all the changes involved. Nest the bullet points where a task can be broken down into smaller subtasks. Don’t worry about assigning an estimate at this point – just focus on identifying all the changes involved.

As you do this, create another list in the same Roam page called Potentially non-essential features and list the changes that could potentially be dropped from version 1. You can also use Roam block references to reference the relevant bullet points here. I use this in a later step to potentially reduce the scope of the version 1 changes.

Assign estimates to each change and calculate the total

Go through your list of changes and assign a time estimate to each task in terms of hours or days.

Add up the total to get your estimate.

Give the estimate but suggest potential ways to reduce scope

Often, there will be changes that take up a lot of time but which aren’t essential for version 1 of the work or which don’t add enough value to justify the effort required. If you identify some of these, let the relevant person know as they might be happy to drop those changes.