Back2Basics: Software Project Estimation and Planning
Once we know roles and activities involved in software project management, the next step is to start planning the project. Project manager typically takes this initiative to arrive at a reasonable estimation using various techniques as appropriate for the project.
Software Project Planning
IT or Software project planning doesn’t revolve only around work breakdown structure (WBS), task milestones, it is also about resource planning, risk planning, scope management, cost planning, communication planning and so on. But considering the importance of project scheduling and scope in traditional IT project management, let’s look at these aspects in particular.
Software Project Charter
Project charter is kind of prerequisite for planning a project. It kicks off the planning process for a given project. Project sponsor formally identifies the responsible person for project planning and execution. Project charter is the document wherein project manager is identified, assigned to a project. It also outlines high level of project objectives, responsibilities, assumptions and limitations, etc. The project charter document should also clearly identify authority as well as management support.
Software Project Scope Management
Defining project scope is like drawing a map wherein project manager draws boundaries within which project team will work to deliver desired objectives. Project scope defines which all activities and processes will be followed to deliver software product or service. A clearly defined scope is important for successful project delivery. It brings clarity to stakeholders about what will be delivered and what is not in scope of the project. Project scope is defining factor for project resources, timeline, cost and quality.
Project scope management involves:
- Define the scope in terms of goals, deliverable, tasks, timeline, resources and cost
- Establish a process to verify project scope, changes requested and control those changes
Overall Software Project Estimation
Management any initiative can not be effective without proper planning and for a planning to be proper, one should have accurate estimates. It is all the more important for project management of software. Project manager of software, who is thoroughly knowledgeable of project estimates, is better positioned to monitor and control software project more effectively.
One can never underestimate the importance of planning in software project management. In case of software project planning, software project estimation involves typically four key elements.
- Project size estimation
- Project schedule estimation
- Project resources estimation (effort estimation)
- Project cost estimation
Estimating Size of a Software Project
Conventionally and historically one of the most common methodology used for determining software size is count of lines of source code written for development of the software application using certain coding practice. Alternate method used is Function Point Analysis (FPA) depending on client/ software requirements. Though there are pros and cons of these approaches, yet professionals continue to use these techniques to get sense of size of a software project.
Estimating Resources/ Efforts for a Software Project
Next method used in project estimation is after project size, project manager assesses the human efforts required to carry out and deliver project. Typically it is expressed in terms of man-hours or man-days. It is based on experience, roles of individuals expected to be involved (such as project manager, business analyst, programmer, architect, etc) in planning, executing and delivering software project. Project manager also checks for possible resources who can work on a given project depending on
- Skills/ roles/ experience required
- Availability/ workload
- Cost/billing implication
Beside lines of source code, prudent project manager also takes into account
- Efforts to check and ensure project quality
- Efforts to support customer during/after project is delivered
- Travel, market research, requirement gathering efforts
- Expected use of third party software, licensing
Estimating Timeline for a Software Project
Once a project manager get fair idea about software size and efforts required to deliver it, s/he works on creating project schedule. Project scheduling involves identifying high level tasks, work breakdown structure, expanding wbs into minute level of actionable tasks, milestones, task inter-dependency, lead/lag time, etc (Gantt chart). Typically tasks duration are expressed in terms of efforts (hours), days (hours, days, weeks, months).
Based on timeline, efforts and resources involved, project manager can come up with an estimated cost to delivery software project.
Software Project Estimation Techniques
We looked at key elements of project estimation Let’s look at the estimation techniques used in software project management.
Lot of research has been done in software project estimation. In nearly days, the focus was on developing effort estimation models based on regression analysis; subsequently estimation reasoning models were adopted such as case-based reasoning along with Bayesian statistic, lexical analysis, fuzzy logic, bootstrapping, three point estimates, etc. More scientific models were also explored and researched such as COCOMO, SEER-SEM, SLIM, Delphi Technique.
There are broadly three approaches used in software project estimation; namely
- Subject Matter Expert Estimation: Involving subject matter expert to arrive at estimation numbers.
- Formal Estimation Methods: Involves formal computation of software estimate based on parametric or empirical model.
- Hybrid Estimation Methods: Combination of methods from above approaches.
In the next post, we will delve into software project planning and management approaches.
Zilicus offers All-In-One project management software ZilicusPM that provides complete project management control for project and portfolio managers; at the same time makes it really simple for project team members to stay on top of things. If you have been managing projects with conventional spreadsheet/ MS Excel templates or emails, it is the right time to start using online project portfolio management software. ZilicusPM is great platform for better project collaboration. Take a screenshot tour of project management software tour of ZilicusPM and Sign up for 30-days free trial of project management software ZilicusPM