Estimating and Planning as Separate Activities
Estimation and planning are both vital organizational competencies which enable organizations to make effective decisions and coordinate the activities of all employees.
Estimation can be described as:
the process of identifying the complexity of a set of future tasks or activities.
Planning can be described as:
the process of identifying a set of tasks or activities required to achieve a goal and how to identify which resources are required to get these activities done.
Benefits of Estimating
Estimation allows us to make decisions effectively.
When you are able to understand the cost and benefits of a set of items, then you can effectively prioritize them.
For example, your plumber tells you that the boiler is broken and will cost $800 for a new one as opposed to fixing the existing one; which will cost "somewhere between $400-600." You have estimates for both options, and you know the benefits of each choice. You have enough information to make a decision.
Knowing the cost (or an estimate of the cost) of building features is a vital input for product managers as they decide which features to build and in which order.
Therefore, estimation is a key input into planning.
The main purpose of estimating requirements or features is to allow the product owner to choose which items to build and in which order, i.e. to plan which features to work on.
Estimating is an important tool in planning as it helps with quality improvement.
Benefits of Planning
In any business, there are two main actions: planning and doing. Effective organizations spend time researching and planning before shifting their focus to execution.
There are many benefits to planning:
It helps determine the appropriate actions to engage in.
It helps to set goals and coordinate the activities of all employees.
Goals allow the organization to measure performance.
Shapes the most efficient use of resources allowing the organization the best chance of achieving its goals.
Communicates with each team and individual how their work contributes to the overall organizational target which helps increase performance.
This requires that other departments in the organization know something about the strategic direction of each tech team. For example, the marketing and sales teams shouldn't sell something that the tech team does not intend to build. For management, it is important that the company's overall objectives are being supported by initiatives in the tech team's intended output.
In order to coordinate the activities of employees, it is essential to use accurate planning to determine the project completion dates.
The Need for Distinction
When estimates are calculated very quickly, they have a lower certainty of being accurate. However, sometimes this very "quick" estimate can be helpful with decision-making.
Consider the case when your plumber tells you that fixing the existing boiler would cost "somewhere between $400-600." This estimate has a large range. It may even be the case that it is inaccurate - maybe the plumber would fix it and actually charge you $300 because the condition of the boiler wasn't actually as bad as he feared.
Estimation should be used to provide a cost to prioritize work items.
Planning should be used to create a plan involving prioritized items, who will work on them, how long it will take, and how much it will cost.
Estimation is used to answer the question "How big is this task?" and planning to answer the question "How long will it take to complete?" This will be covered later in the course.
The major takeaway is that estimating should be done first and then planning can happen later as a separate activity using the information from our estimation workshops.
Common Pitfalls of Estimation
Let's examine some of the common pitfalls of estimating complex projects.
Optimism Bias - This is a cognitive bias that reflects a human tendency to be over-optimistic about future developments. We tend to believe that tasks can be completed more quickly than necessary.
Failure to incorporate risks - Often the person estimating may consider the complexity of a task or how long it will take based on the "happy path" scenario where everything goes according to plan. When asked instead to list all of the potential risks, how likely they are, and what impact they have, the estimates tend to better incorporate the probability of some of these events happening.
Poorly-defined scope -Accuracy is based on the assumption that the scope of the item being estimated is clearly defined. For example, are you estimating how long it takes to build a certain feature or how long it takes to build and test it? Are you estimating how long it takes to make a change to your database schema or should it also include an estimate for creating a script to migrate the existing users to this new structure? Lack of clarity is often a source of inaccuracy
Padding - This occurs when an artificially high estimate is given in order to complete the task within the given time period. This is common when the organization has incentives for completing work within the estimated time (or punishments for not doing so).
Confusing estimates and commitments - An estimate of the time/cost of building a feature is a valuable input into the decisions "Should we build it?" and "When should we build it?" You may recall plumber example above - knowing that the cost of fixing the boiler is at least half of the cost of buying a new one is probably enough information to make a decision. Effective tech teams use estimates to drive decision-making. However, you don't want to take a set of estimates and confuse them with a commitment that the team has promised to deliver these features in this time.
Political Pressure - This is when a person or team is asked to estimate how long a set of features or tasks will take to complete with pre-determined deadlines from management. This is akin to asking "How long will all of this take - but before you tell me, it must all be completed by the end of July."
In order to explain how Agile project management includes measures and best practices to avoid the above pitfalls, we will first take a look at an Agile framework called Scrum before looking at how user stories are employed to represent Scrum requirements.
Then we will look at how Scrum uses relative estimation and look in depth at how we plan and estimate in Scrum.
Estimation is the process of identifying the complexity of a set of future tasks or activities.
Planning is the process identifying a set of tasks or activities required to achieve a goal and creating a plan for which available resources will do those activities.
Planning and estimating are separate activities - estimation is a key input into the planning and should be done first.
Estimation has many pitfalls including optimism bias, failure to incorporate risk, and poorly-defined scoping of items to be estimated.
Agile methodologies purposefully address these pitfalls.
Research that proves the impact of optimism bias in the estimation of software projects.