0% found this document useful (0 votes)
6 views

CS615 3

The document discusses the fundamentals of software project management, emphasizing the Pareto Principle (80:20 rule) which suggests that a small percentage of causes often lead to the majority of effects in project outcomes. It outlines the project life cycle, detailing five key phases: Initiation, Planning, Executing, Controlling, and Closing, along with the importance of managing each phase effectively to enhance project success. Additionally, it introduces the Waterfall model of software development, highlighting the structured approach necessary for successful project management.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

CS615 3

The document discusses the fundamentals of software project management, emphasizing the Pareto Principle (80:20 rule) which suggests that a small percentage of causes often lead to the majority of effects in project outcomes. It outlines the project life cycle, detailing five key phases: Initiation, Planning, Executing, Controlling, and Closing, along with the importance of managing each phase effectively to enhance project success. Additionally, it introduces the Waterfall model of software development, highlighting the structured approach necessary for successful project management.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Software Project Management (CS615)

LECTURE # 3

1. Introduction & Fundamentals

1.8 Project Dimensions

⇒ Product and Technology

– The 80:20, rule was originated by Vilfredo Pareto, an Italian economist who
studies the distribution of wealth in a variety of countries around 1900. He
discovered a common phenomenon: about 80% of the wealth in most countries
was controlled by a consistent minority -- about 20% of the people. Pareto called
this a "predictable imbalance." His observation eventually became known as
either the "80:20 rule" or "Pareto's Principle."

The credit for adapting Pareto's economic observations to business goes to the
"Father of Total Quality Management," service quality consultant Joseph M.
Juran. In 1950, he published "The Quality Control Handbook," which first
recognized the applicability of the Pareto principle in the context of inventory
management, e.g.:

• 20% of the repair parts normally account for 80 percent of the total
inventory
• 80% of production volume usually comes from 20% of the producers

He subsequently recognized that this rule of thumb was universally applicable


across fields of endeavor. As a credit to Pareto's work, Juran named his finding
the Pareto Principle. This universal management theory became generalized as
"the 80-20 Rule":

The "80:20 rule" has become one of the best known "leadership shorthand terms"
reflecting the notion that most of the results (of a life, of a program, of a financial
campaign) come from a minority of effort (or people, or input).

The Rule, states that a small number of causes (20%) is responsible for a large
percentage (80%) of the effect. It means that in anything a few (20 percent) are
vital and many (80 percent) are trivial.

There is an inherent imbalance between cause and effect, effort and reward, inputs
and outputs, etc; and that imbalance tends to the ratio of 80:20. So, if we know
which 20% of our work produces 80% of our income, we can do more of it and
our income will increase proportionately!

You know 20 percent of you stock takes up 80 percent of your warehouse space
and that 80 percent of your stock comes from 20 percent of your suppliers. Also
80 percent of your sales will come from 20 percent of your sales staff. 20 percent
1
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

of your staff will cause 80 percent of your problems, but another 20 percent of
your staff will provide 80 percent of your production. It works both ways.
Some Sample 80/20 Rule Applications

80% of process defects arise from 20% of the process issues.


20% of your sales force produces 80% of your company revenues.
80% of delays in schedule arise from 20% of the possible causes of the delays.
80% of customer complaints arise from 20% of your products or services.

How It Can Help You

– The value of the Pareto Principle for a manager is that it reminds you to focus on
the 20 percent that matters. Of the things you do during your day, only 20 percent
really matter. Those 20 percent produce 80 percent of your results. Identify and
Characteristic
focus on those things. When the fire drills of the day begin to sap your time,
remind yourself of the 20 percent you need to focus on. If something in the
schedule has to slip, if something isn't going to get done, make sure it's not part of
that 20 percent.

Pareto's Principle, the 80/20 Rule, should serve as a daily reminder to focus 80
percent of your time and energy on the 20 percent of you work that is really
important. Don't just "work smart", work smart on the right things.

– Size

The larger product, there will be more requirements and features to deliver,
eventually it will take more time in its production. So if you cut the size of the
produce to half it will save you 60% of the effort.

– Characteristic

– Development Tools

2
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

Customer delivered value

Value of products
Total value
Value of services +
Personal value
Real value to
Image value the customer

-
Financial cost
Total costs
Time cost
Energy cost

Psychical cost

1.9 Project Phases

Organizations performing projects will usually divide each project into several
Project phases to improve management control and provide for links to the
ongoing operations of the performing organization.

Collectively, the project phases are known as the project life cycle. Software
development, just like most other activities, has a beginning, middle and an end.

The end of one development activity is sometimes perceived as being linked to


the beginning of a new development activity thus producing a cycle of beginning-
middle-end, link, beginning- middle-end, link, and so forth.

This view of software development is referred to as the software development


life cycle.

A project has five phases. Here's a brief summary of each:

⇒ Initiation
Articulate your vision for the project, establish goals, assemble your team,
and define expectations and the scope of your project.
⇒ Planning
Refine the scope, identify specific tasks and activities to be completed,
and develop a schedule and budget.

3
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

⇒ Executing
Accomplish your goals by leading your team, solving problems, and
building your project.
⇒ Controlling
Monitor changes to the project make corrections, adjust your schedule to
respond to problems, or adjust your expectations and goals.
⇒ Closing
Deliver your project to your audience, acknowledge results, and assess its
success. Take the time to compose a written evaluation of the project and
the development effort.

The middle three phases are not sequential. You will find that you are constantly
planning, executing, and controlling your project as necessary.

Aren't these phases really just common sense? In many ways, yes, but keep in
mind that software development, whether a few Web pages or a complex CD-
ROM, is a complex, unpredictable process.

Most software projects (something like 80 percent) are delivered late,


substantially over budget, and incomplete. The more effort you put into managing
your project, the more you increase your chances of success.

– Characteristics of Project Phases

Each project phase is marked by completion of one or mo re deliverables. A


deliverable is a tangible, verifiable work product such as a feasibility study, a
detail design, or a working prototype. The deliverables, and hence the phases, are
part of a generally sequential logic designed to ensure proper definition of the
product of the project.

The conclusion of a project phase is generally marked by a review of both key


deliverables and project performance to date, to a) determine if the project should
continue into its next phase and b) detect and correct errors cost effectively. These
phase-end reviews are often called phase exits, stage gates, or kill points.

Each project phase normally includes a set of defined deliverables designed to


establish the desired level of management control. The majority of these items are
related to the primary phase deliverable, and the phases typically take their names
from these items: requirements, design, build, test, startup, turnover, and others,
as appropriate.

– Characteristics of the Project Life Cycle

The project life cycle serves to define the beginning and the end of a project. For
example, when an organization identifies an opportunity to which it would like to
respond, it will often authorize a needs assessment and/or a feasibility study to
4
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

decide if it should undertake a project. The project life-cycle definition will


determine whether the feasibility study is treated as the first project phase or as a
separate, standalone project.

The project life-cycle definition will also determine which transitional actions at
the beginning and the end of the project are included and which are not. In this
manner, the project life-cycle definition can be used to link the project to the
ongoing operations of the performing organization.

The phase sequence defined by most project life cycles generally involves some
form of technology transfer or handoff such as requirements to design,
construction to operations, or design to manufacturing. Deliverables from the
preceding phase are usually approved before work starts on the next phase.
However, a subsequent phase is sometimes begun prior to approval of the
previous phase deliverables when the risks involved are deemed acceptable. This
practice of overlapping phases is often called fast tracking.

Project life cycles generally define:

§ What technical work should be done in each phase (e.g., is the work of the
architect part of the definition phase or part of the execution phase?).
§ Who should be involved in each phase (e.g., implementers who need to be
involved with requirements and design).
§ Project life-cycle descriptions may be very general or very detailed. Highly
detailed descriptions may have numerous forms, charts, and checklists to
provide structure and consistency. Such detailed approaches are often called
project management methodologies.

§ Most project life-cycle descriptions share a number of common


characteristics:

§ Cost and staffing levels are low at the start, higher toward the end, and drop
rapidly as the project draws to a conclusion.
§ The probability of successfully completing the project is lowest, and hence
risk and uncertainty are highest, at the start of the project. The probability of
successful completion generally gets progressively higher as the project
continues.
§ The ability of the stakeholders to influence the final characteristics of the
project’s product and the final cost of the project is highest at the start and
gets progressively lower as the project continues. A major contributor to this
phenomenon is that the cost of changes and error correction generally
increases as the project continues.

Care should be taken to distinguish the project life cycle from the product life
cycle. For example, a project undertaken to bring a new desktop computer to
market is but one phase or stage of the product life cycle.

5
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

Although many project life cycles have similar phase names with similar
deliverables required, few are identical. Most have four or five phases, but some
have nine or more. Even within a single application area, there can be significant
variations.

One organization’s software development life cycle may have a single design
phase while another’s has separate phases for functional and detail design.

Subprojects within projects may also have distinct project life cycles. For
example, an architectural firm hired to design a new office building is first
involved in the owner’s definition phase when doing the design, and in the
owner’s implementation phase when supporting the construction effort. The
architect’s design project, however, will have its own series of phases from
conceptual development through definition and implementation to closure. The
architect may even treat designing the facility and supporting the construction as
separate projects with their own distinct phases.

– Project Life Cycle includes the following Phases and activities:

A. Concept Phase
1. User Need
2. Initial Investigation
3. User Review
4. System Performance Design
5. Candidate Review
6. Study Phase Report

B. Requirements Phase
1. The software requirements specification document
2. The project development plan
3. The software test plan

C. Design Phase
1. General System Review
2. Processing Requirements Identification
3. Data Base Design
4. Control Requirements
5. Output Design
6. Input Design
7. Software Selection
8. Equipment Selection/Acquisition
9. People
10. Reference Manual Identification
11. Plans
12. Design Specifications Preparation

6
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

13. Design Phase Report Preparation

D. Development Phase
1. Implementation Planning
2. Computer Program Design
3. User Review
4. Equipment Acquisition and Installation
5. Coding and Debugging
6. Computer Program Testing
7. System Testing
8. Reference Manual Preparation
9. Personnel Training
10. Changeover Plan Preparation
11. Development Phase Report Preparation
12. User Acceptance Review

E. Operation Phase
1. System Changeover
2. Routine Operation
3. System Performance Evaluation
4. System Changes/Enhancements

1.10 Software Development Lifecycle

⇒ Water Fall Theme

Software development, just like most other activities, has a beginning, middle and
an end. The end of one development activity is sometimes perceived as being
linked to the beginning of a new development activity thus producing a cycle of
beginning- middle-end, link, beginning- middle-end, link, and so forth. This view
of software development is referred to as the software development life cycle.

There are many variations of the software development life cycle. Figure 1
presents a simple life cycle that was common during the first few decades of
software development. In those early days of software development, the
programmer would create programs by iterating from code to fix then back to
code, and then to fix again, until something acceptable was (hopefully) produced.
At the start of the cycle, there was usually no clear concept of what was required,
and the basic development procedure was a form of 'let's see what we can do'
approach.

The software development method represented by the development cycle in Fig.1


is often referred to as the code and fix method (for obvious reasons). Software
development methodologies have come a long way since the days of code and fix,
though it is surprising how much software is still being developed this way.

7
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

Successful management of any project, especially software projects, requires


planning, and planning is impossible with code and fix, which is totally
unpredictable. Management of software development within an engineering
discipline is based on a much more orderly set of development phases. These
phases are not implemented solely by programmers; they require software
engineers. In fact, programming has become a relatively small part of the modern
software development cycle, as is evident from Table 1.

The numbers in Table 1 are derived from the general shift in emphasis to software
planning (requirements and design) and testing. Commercial data processing
systems, with some exceptions, still spend a significant amount of development
time in the programming and unit testing phase. Real-time systems are often more
complex, and may include extensive hardware software integration. This usually
requires more planning and more integration and testing.

Concept Code Fix Maintain

Figure 1: the code and fix method

Table 1 Estimated percentage of time spent in each major software development phase

Planning Code and unit test Integration and test

Commercial data processing 25% 40% 35%


Real-time systems 35% 25% 40%
Military systems 40% 20% 40%

Military systems require high reliability and are usually closely supervised by the
customer, leading to a significant increase in the time spent in planning.

The data in Table 1, of course, represents a generalization; commercial data


processing systems can be just as complex as a real-time system.

Figure 2 presents the basic phased model of a software development cycle. This
model, called the Waterfall model, gets its name from the way in which each
phase cascades into the next (due to overlapping), as demonstrated in Fig. 3.
Some interpretations of the Waterfall model, like the one that follows, combine
the top level design and the detailed design phases into a single design phase, and
the integration and test phases into a single phase. In fact, there are many

8
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

variations of the classic Waterfall model, but they are all based upon a systematic
transition from one development phase to the next, until the project is complete.

Conception

Maintenance Software
Requirements

Test
Top level
Design

Integration Detailed

Design
Implementation

Figure 2: The phased model of the software development life cycle

Conception

Software requirements

Top level" design

Detailed design

Implementation

Integratio n

Test

Maintenance

T
Figure 3: The Waterfall model of the software development life cycle
9
© Copyright Virtual University of Pakistan
Software Project Management (CS615)

⇒ Rapid prototyping There are other development methodologies that do not move
from one phase to the next like the Waterfall model. Rapid prototyping, for
instance, iterates in a mini-development phase until a system prototype is
developed (see Fig. 4). After the prototype is complete, the Waterfall approach
can then be implemented to complete the full system. Rapid prototyping is
particularly helpful in projects where the requirements are difficult to specify. The
prototype can be used as a tool for analyzing and determining what the
requirements should be.

⇒ The Spiral model, described by Boehm (1988), is another development method


that iterates between the requirements, design and implementation phases.
However, the Spiral model continues iterating until the final system is complete.
Within each, iteration, the Spiral model follows a phased approach similar to the
Waterfall model.

Different models maybe suitable for different software projects or for different
software development organizations However, a good model must include certain
fundamental features. Some of these basic requirements are discussed in IEEE
Standard (IEEE 1993) Standard for Software Life Cycle Processes. This standard
describes the processes that are mandatory for the development of software and
specifies the activities that must be included in the life cycle model.

Most modern software development models, and certainly those following IEEE
Standard 1074, include some form of the basic phased model. It is therefore
important to understand the different phases and how they relate to one another.

Concept Prototype Requirements Design Implementation Test

The rapid prototyping cycle

Figure 4: Rapid prototyping followed by the phase method.

10
© Copyright Virtual University of Pakistan

You might also like