Why Estimate?
Estimation is an essential part of any project methodology. Estimation is used for a number of purposes:
• To justify the project, particularly at the proposal stage, enabling the costs to be compared with the anticipated benefits and to enable informed comparisons to be made between different technical or functional options.
• To enforces the disciplines needed to make the project succeed.
• To secure the resources required to successfully deliver the project.
• To ensure that the support impact of the project is fully understood.
• To inform and improve our software development process.
This document describes the techniques used to produce reliable estimates for the work required to complete projects and tasks.
Overview of the Estimation Process
The best people to undertake estimation are the staff who are going to do the work. The staff chosen to produce an estimate are typically drawn from IS, customers and/or service partners who have relevant experience of similar previous projects or tasks in the business area.
Our estimation process is based on three components:
1. Expert judgement, i.e. consultation with qualified experts from within IS and our business and service partners. This is supplemented, where required, by expert input from software suppliers and consultants.
2. Experience, i.e. comparison of the proposed project or task with previously completed work.
3. Task Decomposition, i.e. decomposing the project into components, i.e. a Work Breakdown Structure, and estimating each component individually to produce an overall estimate.
The estimates are validated through peer review and are backed up by an experienced Project Manager who takes overall responsibility for the total. Estimates are reviewed and updated throughout the project lifecycle. Estimates, and the processes followed to produce them, are transparent and consistent across all projects.
Project And Task Estimation
Estimation Technique 1 - Three Point Estimation
The Three Point Estimation technique is based on statistical methods, and in particular, the Normal distribution. Three Point Estimation is the preferred estimation technique for IS Applications projects. In Three Point Estimation we produce three figures for every estimate:
a = the best case estimate
m = the most likely estimate
b = the worst case estimate
These values are used to calculate an E value for the estimate and a Standard Deviation (SD) where:
E = a + (4*m) + b / 6
SD = (b - a)/6
E is a weighted average which takes into account both the most most optimistic and pessimistic estimates provided and SD measures the variability or uncertainty in the estimate.
To produce a project estimate the Project Manager:
1. Decomposes the project into a list of estimable tasks, i.e. a Work Breakdown Structure
2. Estimates each the E value and SD for each task.
3. Calculates the E value for the total project work as E (Project Work) = Σ E (Task)
4. Calculates the SD value for the total project work as SD (Project Work) = √Σ SD (Task) 2
We then use the E and SD values to convert the project estimates to Confidence Levels as follows:
• Confidence Level in E value is approximately 50%
• Confidence Level in E value + SD is approximately 70%
• Confidence Level in E value + 2 * SD is approximately 95%
• Confidence Level in E value + 3 * SD is approximately 99.5%
IS Applications use the 95% Confidence Level for all project estimates.
A spreadsheet template for Three Point Estimation is available together with a Worked Example illustrating how the template is used in practice.
Estimation Technique 2 - Base and Contingency Estimation
Base and Contingency is an alternative estimation technique to Three Point Estimation. It is less scientifically based and cannot be used to provide Confidence Levels. It can be a useful technique where there is less detail available on which to base the estimate.
In Base and Contingency estimation all estimates have two components the base and the contingency. The base is the minimum expected time required, i.e. when everything goes well. The contingency is the amount of trust placed on the base when risks are are taken into account and is generally expressed as a percentage of the base. A figure of 10% -20% contingency is a typical figure rising to 50% or even greater for more risky tasks. Separating the base and contingency makes the estimation task easier. We can derive a base figure without having to take into account everything that might go wrong and then use risk analysis to determine the appropriate level of contingency. The assumptions that underpin the base estimate are recorded and the contingency reflects the confidence we have that these assumptions are correct.
The Project Manager will also consider project wide risks and undertake a risk analysis to determine the correct amount of contingency to allow for them. These risks are recorded in the project Risk Register. The contingency is based on the maximum costs to the project of the risk occurring weighted by an assessment of how likely it is to occur expressed as a percentage. Project contingency may be estimated in terms of money, resources or a mixture of both. Resource contingency is managed by adding a factor to individual task estimates.
To produce a project estimate the Project Manager:
1. Decomposes the project into a list of estimable tasks, i.e. a Work Breakdown Structure
2. Estimates each task including any task contingency.
3. Adds the estimates together.
4. Adds the project contingency.
Using this technique the Project Manager must be careful to avoid double-counting, i.e. adding contingency to both the project and task estimates for the same risk.
Technical and Overhead Tasks
Typically we will distinguish between the technical tasks of the project, for example code development or package configuration etc, and overhead tasks such as project management or infrastructure support. Each technical task will be individually estimated whilst the estimate for each overhead tasks can often be calculated on a pro-rata basis. Key factors which will influence estimates for technical tasks are:
• size and complexity of the task
• the skills and experience of the development team and their familiarity with the technology being proposed (training may be required to enable members of the team to become productive with the technologies being used and gain familiarity with the business context - this can be estimated separately)
• non functional requirements such as performance, reliability, code reusability etc.
Typical overhead tasks include:
• Project Management
• Quality Assurance
• Business Analysis
• Systems Analysis and Design
• Infrastructure Support
• Testing
• Deployment (includes user training and implementation in live environment.)
Project experience suggests potentially useful rules of thumb for deriving initial estimates for various overhead tasks. These are provided in Table 1 below.
Task Rule Of Thumb
Project Management A full time Project Manager is required for every six staff assigned to the project. A typical Applications project requires 2 to 3 FTE staff in non project management roles. Applying this rule of thumb suggests that the Project Manager should be assigned between 33% and 50% of the non project management time for a typical project.
Quality Assurance Allow a figure of 5% of the overall project estimate for quality assurance.
Business Analysis Allow a figure of 20% of the time allowed for the technical tasks to complete the business specification.
Systems Analysis and Design Allow a figure of 25% of the time allowed for the technical tasks to complete the design specification.
Peer Testing Allow a figure of 10% of the time allowed for the technical tasks.
Integration Testing Allow a figure of 15% of the time allowed for the technical tasks.
Acceptance Testing Allow a figure of 15% of the time allowed for the technical tasks.
Deployment Allow a figure of 5% of the time allowed for the technical tasks.
Table 1 Rules Of Thumb For Estimating Overhead Tasks
This approach simplifies estimation and can provide a useful cross check of the technical estimates. However it is perfectly acceptable for overhead tasks to be decomposed and estimated separately where the Project Manager feels that this is more appropriate.
Producing A Project Estimate - The Estimation Team
The Project Manager should assemble an estimation team for the project. The estimation team will include the Project Manager and other technical experts from IS - chosen to reflect the staff who will actually do the work. The estimation team may also include representative project stakeholders including customers and service partners. Four or five staff in total is a reasonable estimation team size for most projects. The quality of the estimate will only be as good as the estimation team's knowledge of the project so it is vital that they collectively understand, as far possible, everything that is known about the project at the time that the estimate is produced.
The estimation team will generally have at least two meetings. The first of these meetings will:
• Review and agree the project goals and identify any risks or assumptions.
• Discuss ways in which the goals may be met including design options.
• Identify key tasks.
This meeting should be attended by a customer stakeholder who will play a key role in discussions on functionality requirements, usability issues etc.
The second meeting will typically take place a few days later to finalise the estimate. It is important that each member of the team prepares their own estimate of the work involved ahead of this second meeting (Delphi Technique). This ensure every member of the team is fully prepared and reduces the risk of individuals having over-influencing the results of the process. This second meeting:
• Confirms the list of estimable tasks
• Confirm the estimates for each estimable and overhead task
At this meeting the Project Manager may ask members of the estimation team to take a lead role in the discussions for particular tasks. For example, a senior member of the proposed development team may lead the review of coding task estimates by walking-through their estimate of the work involved. This meeting will continue, perhaps with further break outs, until consensus is reached on the estimates for all tasks. (Where "Base and Contingency" technique is being used the Project Manager will then lead discussions to determine the overall project contingency using the same consensus building techniques.)
Notes
1. A typical estimation team will be composed of the following staff: the Project Manager, two developers, an IS Apps Section Head or Team Leader and one or two others such as a customer, a technology specialist (e.g. a Technical Services or MyEd representative) or an external supplier. (From 2006/7 onwards the Applications Development Team Manager must be invited to participate in each Applications estimation team.)
2. During estimation meetings it is vital that a note taker is appointed to record design decisions, assumptions and risks. These notes are an important deliverable from the sessions as they help ensure that the context for the estimate is fully understood.
3. Sufficient time should be allowed to enable the team to complete the estimation process. An allowance of 0.5 - 1 day for each member of the team is reasonable.
Monitoring And Signing Off Project Estimates
The Project Manager will monitor estimates throughout the project. Experience gained from previous stages is used to update the task list and the corresponding estimates. Risks are reviewed and contingencies adjusted as appropriate. The revised estimates are reviewed as part of the sign off process at the end of each stage in the project methodology. Completed estimates are signed off by the Project Manager and key project stakeholders. This will typically be done as part of the stage sign off as indicated in Table 2 below:
Project Methodology Stage Deliverable Requirement
Initiation Project Proposal Estimates to be signed off by the Project Sponsor and Project Services Programme Manager
Note: A single estimation team should be established for each business area programme for estimating proposals produced as part of the Annual Planning process. This will reduce the number of estimation meetings required and improve consistency of estimation within the programme.
Planning TOR Revised estimates to be provided with TOR and signed off by Project Manager, Project Sponsor and IS Applications Management.
Business Analysis PPAR Revised estimates signed off as part of PPAR.
Systems Analysis And Design PPDR Revised estimates signed off as part of PPDR.
Build PPBR Revised estimates signed off as part of PPBR.
Integration PPIR Revised estimates signed off as part of PPBR.
Acceptance ASOR Revised estimates signed off as part of Acceptance Sign Off Review.
Deployment DSOR Revised estimates signed off as part of Deployment Sign Off Review.
Closure Closure Review Actuals and estimates to be reviewed and reasons for divergence recorded as part of Closure Review. This is an important means of reviewing and improving the estimation process and building up a 'lesson learnt' database for projects.
Table 2 Signing Off Estimates Within The Project Methodology
Project Planning And Resourcing
Basics
Project risks must be properly managed. There are many risks which can apply to projects which estimation techniques alone cannot adequately address. These include:
• Unrealistic expectations of costs or timescales.
• Unstable business requirements.
• Lack of commitment from project stakeholders.
• Poor project management or technical skills.
• Unclear roles and responsibilities
If any of these problems exist they should be addressed before the project is started!
All projects must have a Task Plan or Gantt Chart. This may be produced using ASTA Teamplan, Microsoft Project or Excel. This is used record the tasks, their estimated durations and any dependencies. The Task Plan is fundamental to determining an appropriate resourcing strategy for the project.
Projects must also have an appropriate change control mechanism. There is no point in estimating and then allowing the scope to change so that the estimates are no longer valid. The Project Issue and Change Control Log (PICCL) is used to record all changes and ensure that the impact of the change is fully considered before the change is approved.
Resourcing Strategy - Dedicated Resources
Recent project management literature has discussed how best to deliver projects in matrix managed environments. This literature has identified the characteristics of optimally managed projects as:
• Task plans and estimates are produced and maintained.
• A dedicated team of resources are assigned 100% to the project.
• Multitasking of development staff with other projects is minimised or, ideally, eliminated.
• Customer and technical inputs are coordinated to achieve maximum effectiveness.
• Project value is increased through the effective interaction of professional staff.
• There is a clear enterprise wide priority for the project which can be referred to to resolve any resource conflicts which may arise.
• Regular contact between the Project Manager and Resource Managers is maintained to provide rapid resolution of resource issues.
Project Managers should try to bring their projects into line as far as possible with this model and book resources to the project, or as significant parts of the project as is possible, rather than individual tasks. Projects for which this approach is particularly recommended will typically have one or more of the following characteristics:
• Require in excess of 150 Days technical resources.
• Be categorised as "Essential" or "Funded"
• Have one or more hard delivery milestones.
• Can be managed as a joint and closely interacting team of IS and customer staff.
The Project Manager can indicate the requirement for "dedicated" resources as part of the Project Proposal and ToR.
Resourcing Strategy - Non Dedicated Resources
For most Applications projects it will not be possible for the Project Manager to secure dedicated resources. For these projects and task estimates, including 95% confidence levels or contingencies as appropriate, are used to assign resources on a task by task basis.
However with this approach the Project Manager must be aware of a number of factors which can prevent the effective deployment of resources and threaten the overall success of the project:
• "Multi-Tasking" - the Developer has been forced to juggle priorities and resources are spread too thinly. As a result he/she switches from task to task reducing productivity, chewing up the available time and reducing the quality of the task deliverable.
• "Procrastination Syndrome" - the Developer interprets the contingency as additional time to finish a task that they think they could do in less. If problems occur with other work this may be given priority and they don't make a start on the task until too late. There is now no safety margin and the task may be late.
• "Early Completion Syndrome" - there is little reward for early completion, in fact if the Developer provided the original estimate they may find their future estimates reduced. In the absence of any incentives to do otherwise the Developer uses the time saved to undertake additional testing or make the solution more elegant. As a result the best outcome available is to finish on time.
The key to successfully managing and reducing these problems is communication. Early identification of potential problems by the development team, Project Manager and/or the customer is essential. To promote successful communication it is strongly recommended that the Project Manager identify staff to fulfil the following key technical roles at the outset of the project:
• Systems Analyst Developer
• Technical Architect
• Production Management Coordinator
• IS Service Owner(s)
Once identified the staff resources can be secured by means of a 10% resource booking with the relevant Resource Manager. This approach will promote a team culture and provide more flexibility for the Project Manager to secure these key resources for meetings and other project activities. This approach is accommodated with the overall estimate as staff will only record time to the project for actual work done.
No comments:
Post a Comment