We know about Guess(ti)mate, Error-n-Judge-n-implement, Experience, and Ball-park! But, to achieve at a new way to learn “how to Estimate”, and do it in a mature (Level-2) and defined (Level-3) way…let’s get started:
Whenever you start doing estimate, you’ve to understand about the work, which is supposed to be done by your resources. We call it, WBS(Work Breakdown Structure). This is primarily done to understand the scope of the project.
At the beginning of the project, this may term as a factor for initial Estimate. The objective of this WBS is to divide the overall project in to s,all interconnected set of manageable component.For eg., say you’ve to develop an eCommerce site, which will include:
- – Evaluate the potential of current website
- – Communicate on the said plan
- – Decide upon its potential and prospective decisions, whether to restyle or replace (if required)
- – Differentiate key areas to manage and organize the project
- – Implement sales, tasks, employee, product, client and money management solutions
- – Devise customized solutions to heighten the sales and achieve the coveted goals
Now a WBS will mean coming up with the timings on each of these actionable items. So you SHOULD “identify and organize” the logical units of the work which is to be managed.
Once a WBS is defined you’ll then have a reference which will be used for assigning Efforts, Schedule, Responsibility for coming up with a plan.
Now while defining WBS you should consider the following:
- Risk and how you’re going to mitigate them
- Task for deliverables
- Tasks for Skill, Knowledge, and Training sessions
- Tasks for Development plan, QA plan, and Configuration management plan
The more detailed the WBS is the more realistic this will turn out to be. An example would be (Courtesy wikipedia):
Now once we have identified the scope of the project at a high level, now is the turn to establish the estimates of the work products:
In many of the associated models which are used to estimate effort, cost, and schedule of the work, SIZE is the major input. You can also include SLAs (Service Level Agreements), Connectivity, and Availability etc.
Lets see a bit of examples:
- Number and complexity of requirements
- Number of functions that you’re going to use
- Function points – what all are function points
- Source lines of code – especially in OpenSource
- Experience of project participants
- Number of classes and objects – This is something architecture needs to define
- Number of database tables – The database and the structure needs to be defined and understood
- Number of fields in data tables
- Architecture elements
- Amount of code to be reused versus created
- Number of inputs and outputs
- Number of technical risk items
- Proximity of customers, end users, and suppliers
- How agreeable or difficult the customer is
- Quality and “cleanliness” of the existing code base
One important point to consider is that while determining the estimates, your estimate should be in sync with project requirements.
You should definitely talk about the technical approach which defines a strategy for development of the product. It includes decisions on architectural features, such as distributed or client/server; Cloud based computing etc.
The last thing that you would need for is to learn about “How to learn about Estimating Efforts and cost”
This is an essential component for Project Planning.
- You should collect all the historical data to convert the attributes of work products in to estimate of resource hours and cost.
- You can also use estimation techniques like: Examples of effort and cost inputs used for estimating typically include the following:
- Estimates provided by an expert or group of experts (e.g., Delphi method)
- Critical competencies and roles needed to perform the work
- Skill levels of managers and staff
- Knowledge, skill, and training needs
- Product and product component requirements
- Size estimates of work products, tasks, and anticipated changes
- Capability of tools provided in engineering environment
- Technical approach
With this we come to an end of understanding of Estimates, and the techniques required for estimation, now another step would be to understand about the how to develop the Project Plan. Till then Cheers!
- Project Management: Work Breakdown Structure (larrysgunter.com)
- CMMi – Project Planning (seeingfuture.wordpress.com)
- CMMi – Project Planning – Estimation (seeingfuture.wordpress.com)
- CMMi Process areas and mapping with Maturity levels (seeingfuture.wordpress.com)
- CMMi – Maturity Levels – Initial – Managed – Defined (seeingfuture.wordpress.com)