software project planning cs 414 – software engineering i donald j. bagert rose-hulman institute...

19
Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

Post on 21-Dec-2015

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

Software Project Planning

CS 414 – Software Engineering I

Donald J. Bagert

Rose-Hulman Institute of Technology

December 12, 2002

Page 2: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

2

Outline

• Definition and Objectives• Scope• Resources• Estimation Methods• To Build or Not to Build?• The Project Plan• Project Management• Summary

Page 3: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

3

Definition and Objectives

• Software project planning is the process of– determining what the scope and available resources for a

project,– estimating the costs, total effort and duration of the project

required to develop and deliver the software,– determining the feasibility of the project,– deciding on whether or not to go forward with project

implementation,– creating a plan for the successful on-time and within budget

delivery of reliable software that meets the client’s needs, and– updating the plan as necessary throughout the project lifetime.

• Planning is primarily the job of the Project Manager

Page 4: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

4

Scope

• The scope of the project describes the desired functionality of the software, and what constraints are involved

• Therefore, project scope is determined as part of the analysis process by the requirements team

• The project manager then uses the scope that has been defined in order to determine project feasibility, and to estimate what costs, total effort and project duration will be involved in engineering the software

Page 5: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

5

Scope (continued)

• So does that mean that planning should come after requirements?– No. Project planning is actually an iterative process, which

starts at the beginning of the project, and continues throughout

Page 6: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

6

Resources

• Human Resources– Includes “overhead”– By far the most dominant aspect of software costs and effort

• Software Resources– COTS– In-house developed software and tools– Reusable artifacts (e.g. design patterns)– Historical data (helps with cost/effort estimation)

• Note that there is usually not much involving physical resources (except as it relates to overhead)

Page 7: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

7

Estimation Methods

• Estimation may be the most difficult task in an entire software project

• Almost all software cost estimation is related to human resources

• This is different from other engineering disciplines, which have to deal with more physical resources

Page 8: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

8

Estimation Methods (continued)

• Estimation Techniques– Using historical data– Decomposition techniques– Empirical models– A combination of any or all of the above

• Many estimation techniques use some estimate of size, such as– KLOC (Thousands of lines of code)– FP (Function points)– OP (Object points)

Page 9: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

9

Estimation Methods (continued)

• Historical Data– Pretty self-explanatory– Uses track record on previous projects to make estimates for

the new project

– Main Advantage:• Is specific to that organization

– Main Disadvantages:• Continuous process improvement is sometimes hard to factor in

• Some projects may be very different than previous ones

Page 10: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

10

Estimation Methods (continued)

• Examples of Decomposition Techniques– Problem-based: Use functional or object decomposition,

estimate each object, and sum the result• Estimates either use historical data or empirical techniques

– Process-based: Estimate effort and cost for each task of the process, then sum the result

• Estimates use historical data

– Main advantage of decomposition techniques:• Easier to estimate smaller parts

– Main disadvantage:• More variables involved means more potential errors

Page 11: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

11

Estimation Methods (continued)

• Empirical Models– Uses formulae of the form

g = f(x)

where g is the value to be estimated (cost, effort or project duration) and x is a parameter such as KLOC, FP or OP

• Most formulae involving KLOC consistently show that there is an almost linear relationship between KLOC and estimated total effort

– Main advantage of empirical models:• Easy to use

– Main disadvantage:• Models are usually derived from a limited number of projects, but

are used in a more generalized fashion

Page 12: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

12

Estimation Methods (continued)

• COCOMO– The most well-known empirical model – First introduced by Barry Boehm in 1981– Has since evolved into a more comprehensive model named

COCOMO IIhttp://sunset.usc.edu/research/cocomosuite/index.html

– COCOMO II has a variety of formulae• For various stages of the project

• For various size parameters (KLOC, FP, object points)

• For various types of project teams

Page 13: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

13

To Build or Not to Build?

• During early stages of planning, critical decisions must be made due to estimation results e.g.– Whether or not to bid on a contract, and if so, for how much– Whether or not build software, or to purchase existing software

that has much of the desired functionality– Whether or not to subcontract (outsource) some of the software

development

Page 14: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

14

The Project Plan

• Actual description of– The tasks to be done– Who is responsible for the tasks– What order tasks are to be accomplished– When the tasks will be accomplished, and how long they will

take

• The Project Plan is updated throughout the project

Page 15: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

15

The Project Plan

• For this course– CS 414 Project Plan Template– The Project Plan should be consistent with the Weekly Reports

– What tasks should go into your team’s Project Plan?

Page 16: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

16

Project Management

• Project planning is only part of the overall management of the project

• Other project management activities include– Risk analysis and management– Assigning and organizing project personnel– Project scheduling and tracking– Configuration management

Page 17: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

17

Project Management

• Project Management (across disciplines) is actually considered a whole separate field from software engineering

• The Project Management Institute (http://www.pmi.org) has actually developed a entire Body of Knowledge for project management

• However, there are some aspects of software project management that are unique to the management of software

Page 18: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

18

Summary

• The primary objective of software project planning is to plan for the successful on-time and within budget delivery of reliable software that meets the client’s needs

• Project scope should be determined through requirements analysis and used for planning by the project manager

• The primary resources needed for a software project are the actual developers

Page 19: Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002

CS 414 Software Engineering I - Software Project Planning - December 12, 2002

19

Summary (continued)

• Various techniques are available for the estimation of project cost, total effort and project duration

• Early on in a project decisions must be made on whether or not to proceed with a project, and whether or not to buy or build the software

• The project tasks, schedule and resource allocation is all part of the Project Plan

• Project planning is only part of the project management process