Unit V Project Management Concept
Unit V Project Management Concept
- The Management Spectrum - The People - The Product - The Process - The Project
The product
Product objectives and scope should be established before a project can be planned
The process
The software process provides the framework from which a comprehensive plan for software development can be established
The project
Planning and controlling a software project is done for one primary reasonit is the only known way to manage complexity In a 1998 survey, 26% of software projects failed outright, 46% experienced cost and schedule overruns
10
Group Dynamics
Based on studies published by B. Tuckman in 1965 Updated later in 1977 Describes a four-stage model
Forming Storming Norming Performing
11
12
13
Norming
Members engage in active acknowledgement of all members contributions, community building, and solving of group issues Members are willing to change their preconceived ideas or opinions based on facts presented by the group Leadership is shared, active listening occurs, and cliques dissolve Members began to identify with one another, which leads to a level of trust in their personal relations and contributes to cohesion Members begin to experience a sense of group belonging
14
15
The Product
The scope of the software development must be established and bounded
Context How does the software to be built fit into a larger system, product, or business context, and what constraints are imposed as a result of the context? Information objectives What customer-visible data objects are produced as output from the software? What data objects are required for input? Function and performance What functions does the software perform to transform input data into output? Are there any special performance characteristics to be addressed?
Software project scope must be unambiguous and understandable at both the managerial and technical levels
17
18
The Process
Getting Started
The project manager must decide which process model is most appropriate based on
The customers who have requested the product and the people who will do the work The characteristics of the product itself The project environment in which the software team works
Once a process model is selected, a preliminary project plan is established based on the process framework activities Process decomposition then begins The result is a complete plan reflecting the work tasks required to populate the framework activities
Project planning begins as a melding of the product and the process based on the various framework activities
20
Maintain momentum
Provide incentives to reduce turnover of people; emphasize quality in every task; have senior management stay out of the teams way
Track progress
Track the completion of work products; collect software process and project measures; assess progress against expected averages
23
5 W HH
Principle
A series of questions that lead to a definition of key project characteristics and the resultant project plan
Why is the system being developed?
Assesses the validity of business reasons and justifications
Summary
People Project Product
Process
25
27
Uses of Measurement
Can be applied to the software process with the intent of improving it on a continuous basis Can be used throughout a software project to assist in estimation, quality control, productivity assessment, and project control Can be used to help assess the quality of software work products and to assist in tactical decision making as a project proceeds
28
Reasons to Measure
To characterize in order to
Gain an understanding of processes, products, resources, and environments Establish baselines for comparisons with future assessments
To evaluate in order to
Determine status with respect to plans
To predict in order to
Gain understanding of relationships among processes and products Build models of these relationships
To improve in order to
Identify roadblocks, root causes, inefficiencies, and other opportunities for improving product quality and process performance
29
31
32
33
Many of the same metrics are used in both the process and project domain Project metrics are used for making tactical decisions
They are used to adapt project workflow and technical activities
35
As a project proceeds, the amount of time and effort expended are compared to original estimates As technical work commences, other project metrics become important
Production rates are measured (represented in terms of models created, review hours, function points, and delivered source lines of code) Error uncovered during each generic framework activity (i.e, communication, planning, modeling, construction, deployment) are measured
36
In summary
As quality improves, defects are minimized As defects go down, the amount of rework required during the project is also reduced As rework goes down, the overall project cost is reduced
37
Software Measurement
39
Size-oriented Metrics
Derived by normalizing quality and/or productivity measures by considering the size of the software produced Thousand lines of code (KLOC) are often chosen as the normalization value Metrics include
Errors per KLOC - Errors per person-month Defects per KLOC - KLOC per person-month Dollars per KLOC - Dollars per page of documentation Pages of documentation per KLOC
41
Function-oriented Metrics
Function-oriented metrics use a measure of the functionality delivered by the application as a normalization value Most widely used metric of this type is the function point: FP = count total * [0.65 + 0.01 * sum (value adj. factors)] Material in Chapter 15 covered this in more detail Function point values on past projects can be used to compute, for example, the average number of lines of code per function point (e.g., 60)
42
43
FP and LOC have been found to be relatively accurate predictors of software development effort and cost
However, a historical baseline of information must first be established
The table on the next slide provides a rough estimate of the average LOC to one FP in various programming languages
44
Ada
Assembler C C++ COBOL Java PL/1 Visual Basic
154
337 162 66 77 55 78 47
-315 109 53 77 53 67 42
104
91 33 29 14 9 22 16
205
694 704 178 400 214 263 158
45
Object-oriented Metrics
Number of scenario scripts (i.e., use cases)
This number is directly related to the size of an application and to the number of test cases required to test the system
46
Number of subsystems
A subsystem is an aggregation of classes that support a function that is visible to the end user of a system
47
Maintainability
This describes the ease with which a program can be corrected if an error is found, adapted if the environment changes, or enhanced if the customer has changed requirements Mean time to change (MTTC) : the time to analyze, design, implement, test, and distribute a change to all users
Maintainable programs on average have a lower MTTC
48
It is defined as DRE = E / (E + D)
E is the number of errors found before delivery of the software to the end user D is the number of defects found after delivery
As D increases, DRE decreases (i.e., becomes a smaller and smaller fraction) The ideal value of DRE is 1, which means no defects are found after delivery DRE encourages a software team to institute techniques for finding as many errors as possible before delivery
49
51
After data is collected and metrics are computed, the metrics should be evaluated and applied during estimation, technical work, project control, and process improvement
52
Metrics
Software Product Metrics Computation Indicators Metrics Evaluation
53
6) 7) 8)
Acquire appropriate tools to assist in collection and assessment Establish a metrics database Define appropriate feedback mechanisms on what the metrics indicate about your process so that the process and the metrics program can be improved
55
Project Planning
Estimation determines how much money, effort, resources, and time it will take to build a specific system or product The software team first estimates
The work to be done The resources required The time that will elapse from start to finish
58
Observations on Estimation
Planning requires technical managers and the software team to make an initial commitment Process and project metrics can provide a historical perspective and valuable input for generation of quantitative estimates Past experience can aid greatly Estimation carries inherent risk, and this risk leads to uncertainty The availability of historical information has a strong influence on estimation risk
59
Estimation risk is measured by the degree of uncertainty in the quantitative estimates for cost, schedule, and resources Nevertheless, a project manager should not become obsessive about estimation
Plans should be iterative and allow adjustments as time passes and more is made certain
"It is the mark of an instructed mind to rest satisfied with the degree of precision that the nature of the subject admits, and not to seek exactness when only an approximation of the truth is possible." ARISTOTLE
60
5)
6)
61
62
Software Scope
Software scope describes
The functions and features that are to be delivered to end users The data that are input to and output from the system The "content" that is presented to users as a consequence of using the software The performance, constraints, interfaces, and reliability that bound the system
64
Software engineers too often rush (or are pushed) past these questions Later they become mired in a project that is doomed from the onset
65
Feasibility
After the scope is resolved, feasibility is addressed Software feasibility has four dimensions
Technology Is the project technically feasible? Is it within the state of the art? Can defects be reduced to a level matching the application's needs? Finance Is is financially feasible? Can development be completed at a cost that the software organization, its client, or the market can afford? Time Will the project's time-to-market beat the competition? Resources Does the software organization have the resources needed to succeed in doing the project?
Another view recommends the following feasibility dimensions: technological, economical, legal, operational, and schedule issues (TELOS)
66
Project Resources
Resource Estimation
Three major categories of software engineering resources
People Development environment Reusable software components
Often neglected during planning but become a paramount concern during the construction phase of the software process
Time window
68
Categories of Resources
People - Number required - Skills required - Geographical location Development Environment - Software tools - Computer hardware - Network resources
The Project
Reusable Software Components - Off-the-shelf components - Full-experience components - Partial-experience components - New components
69
Human Resources
Planners need to select the number and the kind of people skills needed to complete the project They need to specify the organizational position and job specialty for each person Small projects of a few person-months may only need one individual Large projects spanning many person-months or years require the location of the person to be specified also The number of people required can be determined only after an estimate of the development effort
70
71
Full-experience components
Components are similar to the software that needs to be built Software team has full experience in the application area of these components Modification of components will incur relatively low risk
Partial-experience components
Components are related somehow to the software that needs to be built but will require substantial modification Software team has only limited experience in the application area of these components Modifications that are required have a fair degree of risk
New components
Components must be built from scratch by the software team specifically for the needs of the current project Software team has no practical experience in the application area 72 Software development of components has a high degree of risk
74
Option #1 is not practical, but results in good numbers Option #2 can work reasonably well, but it also relies on other project influences being roughly equivalent Options #3 and #4 can be done in tandem to cross check each other
75
Decomposition techniques
These take a "divide and conquer" approach Cost and effort estimation are performed in a stepwise fashion by breaking down a project into major functions and related software engineering activities
76
Decomposition Techniques
Introduction
Before an estimate can be made and decomposition techniques applied, the planner must
Understand the scope of the software to be built Generate an estimate of the softwares size
Process-based estimation
Based on the effort required to accomplish each task
78
Change sizing
Used when changes are being made to existing software Estimate the number and type of modifications that must be accomplished Types of modifications include reuse, adding code, changing code, and deleting code An effort ratio is then used to estimate each type of change and the size of the change
The results of these estimates are used to compute an optimistic (low), a most likely, and a pessimistic (high) value for software size
79
Problem-Based Estimation
1) 2) 3) 4) 5) Start with a bounded statement of scope Decompose the software into problem functions that can each be estimated individually Compute an LOC or FP value for each function Derive cost or effort estimates by applying the LOC or FP values to your baseline productivity metrics (e.g., LOC/person-month or FP/person-month) Combine function estimates to produce an overall estimate for the entire project
80
LOC and FP estimation differ in the level of detail required for decomposition with each value
For LOC, decomposition of functions is essential and should go into considerable detail (the more detail, the more accurate the estimate) For FP, decomposition occurs for the five information domain characteristics and the 14 adjustment factors
External inputs, external outputs, external inquiries, internal logical files, external interface files
81
pm = person month
82
Process-Based Estimation
1) 2) 3) Identify the set of functions that the software needs to perform as obtained from the project scope Identify the series of framework activities that need to be performed for each function Estimate the effort (in person months) that will be required to accomplish each software process activity for each function
83
Apply average labor rates (i.e., cost/unit effort) to the effort estimated for each process activity Compute the total cost and effort for each function and each framework activity (See table in Pressman, p. 655) Compare the resulting values to those obtained by way of the LOC and FP estimates
If both sets of estimates agree, then your numbers are highly reliable Otherwise, conduct further investigation and analysis concerning the function and activity breakdown
This is the most commonly used of the two estimation techniques (problem and process)
84
Reconciling Estimates
The results gathered from the various estimation techniques must be reconciled to produce a single estimate of effort, project duration, and cost If widely divergent estimates occur, investigate the following causes
The scope of the project is not adequately understood or has been misinterpreted by the planner Productivity data used for problem-based estimation techniques is inappropriate for the application, obsolete (i.e., outdated for the current organization), or has been misapplied
The planner must determine the cause of divergence and then reconcile the estimates
85
Introduction
Estimation models for computer software use empirically derived formulas to predict effort as a function of LOC or FP Resultant values computed for LOC or FP are entered into an estimation model The empirical data for these models are derived from a limited sample of projects
Consequently, the models should be calibrated to reflect local software development conditions
87
COCOMO
Stands for COnstructive COst MOdel Introduced by Barry Boehm in 1981 in his book Software Engineering Economics Became one of the well-known and widely-used estimation models in the industry It has evolved into a more comprehensive estimation model called COCOMO II COCOMO II is actually a hierarchy of three estimation models As with all estimation models, it requires sizing information and accepts it in three forms: object points, function points, and lines of source code
88
COCOMO Models
Application composition model - Used during the early stages of software engineering when the following are important
Prototyping of user interfaces Consideration of software and system interaction Assessment of performance Evaluation of technology maturity
Early design stage model Used once requirements have been stabilized and basic software architecture has been established Post-architecture stage model Used during the construction of the software
89
Product Factors
Project Factors
Make/Buy Decision
It is often more cost effective to acquire rather than develop software Managers have many acquisition options
Software may be purchased (or licensed) off the shelf Full-experience or partial-experience software components may be acquired and integrated to meet specific needs Software may be custom built by an outside contractor to meet the purchasers specifications