Vous êtes sur la page 1sur 32

Unit I

Software Project Management

Introduction
What is a PROJECT?
• Planned activity.

• A specific plan or undertaking.

• A planned undertaking.
Characteristics
• Non-routine tasks are involved.

• Planning is required.

• Specific objectives are to be met or a specified


product is to be created.

• The project has a predetermined time span.


• Work is carried out for someone else other than
yourself.

• Work involves several specialisms.

• Work is carried out in several phases.

• The resources that are available for use on the


project are constrained.
SMART Objectives
• Specific.

• Measurable.

• Achievable.

• Relevant.

• Time constrained.
Stakeholders
• Internal to the project team

• External to the project team but within the


same organization.

• External to both project team and


organization.
Plans Methods and Methodologies.
• Analyze the requirements of the software
• Devise and write cases that will check that each
requirement has been satisfied.
• Create test scripts and expected results for each
test case.
• Compare the results.
• Its start and end dates
• Who will carry it out.
• What tool and materials will be used.
Problems with software projects
• Poor estimates and plans.
• Lack of quality standards and measures.
• Lack of guidance about making
organizational decisions.
• Lack of techniques to make progress
visible.
• Poor role definition-who does what?
• Incorrect success criteria.
Evolution of Software Economics
Economic factors
• Who?

• What?

• Where & When?

• How?
Factors (continued…)
• Why? are software economics important?
– Feasibility analysis
Project Proposal

feasibility

No profit/
Rs making time
Don’t proceed

– Deliverables to ascertain work trends, and provide


ability to give accurate proposals.
– ROI
5 basic parameters
• Most software cost models can be abstracted into a
function of five basic parameters:

1. Size

2. Process

3. Personnel

4. Environment

5. Required Quality
Parameter relationship
• Effort=(Personnel)*(Environment)*(Quality)*(Size Process)

• Diseconomy of scale!
– What are the reasons for this?
Three generations of software economics

Cost

Software size
1960s-1970s 1980s-1990s 2000 and on
Waterfall model Process improvement Iterative development
Functional design Encapsulation-based Component- based
Diseconomy of scale Diseconomy of scale Return to investment

Environments/tools: Environments/tools: Environments/tools:


Custom Off-the-shelf, separate Off-the-shelf, integrated
Size: Size: Size:
100% custom 30%component-based, 70% custom 70%component-based, 30% custom
Process: Process: Process:
Ad hoc Repeatable Managed/measured

Typical project performance


Predictably bad Unpredictable Predictable
Always: Infrequently: Usually:
-Over budget -On budget -On budget
-Over schedule -On schedule -On schedule
Pragmatic software cost estimation

• A good estimate has the following attributes:


 It is conceived and supported by the project manager,
architecture team, development team, and test team
accountable for performing the work.
 It is accepted by all stakeholders as ambitious but
realizable.
 It is based on a well defined software cost model with a
credible basis.
 It is based on a database of relevant project experience
that includes similar processes, technologies,
environments, quality requirements, and people.
 It is defined in enough detail so that its key risk areas are
understood and the probability of success is objectively
assessed.
Improving Software Economics

• Five basic parameters of the software cost


model:
1. Reducing the size or complexity of what needs to be
developed
2. Improving the development process
3. Using more-skilled personnel and better teams (not
necessarily the same thing)
4. Using better environments (tools to automate the
process)
5. Trading off or backing off on quality thresholds
Improving Software Economics
Important trends in improving software economics

Cost model parameters Trends


Higher order languages
(C++, Java, Visual Basic, etc.)
Size
Object-oriented
Abstraction and component
(Analysis, design, programming)
based development technologies
Reuse
Commercial components
Iterative development
Process Process maturity models
Methods and techniques Architecture-first development
Acquisition reform

Training and personnel


Personnel skill development
People factors Teamwork
Win-win cultures
Integrated tools
(Visual modeling, compiler, editor, etc)
Environment Open systems
Automation technologies and tools Hardware platform performance
Automation of coding, documents,
Hardwaretesting, analyses
platform performance
Quality
Demonstration-based assessment
Performance, reliability, accuracy
Statistical quality control
Improving Software Economics
Reducing Software Product Size

“The most significant way to improve affordability and


return on investment is usually to produce a product that
achieves the design goals with the minimum amount of
human-generated source material.”
Re-use, object-oriented technology,
automatic code production, and
higher order programming
languages are all focused on
achieving a given system with fewer
lines of human-specified source
directives.
Improving Software Economics
Reducing Software Product Size - Languages
Language SLOC per UFP
SLOC metrics are
UFP -Universal Function Assembly 320
Points. The basic units of
useful estimators for
the function points C 128 software
are external user inputs, Fortran 77 105 after a candidate
external outputs, internal solution is
logic data groups, Cobol 85 91
external data interfaces, formulated and an
and external inquiries. Ada 83 71 implementation
C++ 56 language is known.
Ada 95 55
Java 55
Visual Basic 35
Improving Software Economics
Reducing Software Product Size – Re-use

1 Project Solution:
$N and M months Many-project solution:
Operating with high value
per unit investment, typical
2 Project Solution: of commercial products
and Schedule Resources

50% more cost and


100% more time
Development Cost

5 Project Solution:
125% more cost and
150% more time

Number of Projects Using Reusable Components


Improving Software Economics
Reducing Software Product Size – Commercial Components

APPROACH ADVANTAGES DISADVANTAGES

Predictable license costs Frequent upgrades


Commercial Up-front license fees
Broadly used, mature
components technology
Recurring maintenance fees
Dependency on vendor
Available now Run-time efficiency sacrifices
Dedicated support Functionality constraints
organization Integration not always trivial
Hardware/software No control over upgrades and
maintenance
independence Unnecessary features that consume
Rich in functionality extra resources
Often inadequate reliability and
stability
Multiple-vendor incompatibility
APPROACH ADVANTAGES DISADVANTAGE
S
Complete change freedom Expensive, unpredictable
Custom Smaller, often simpler development
development implementations Unpredictable availability
Often better performance date
Control of development Undefined maintenance
and enhancement model
Often immature and fragile
Single-platform dependency
Drain on expert resources
Improving Software Economics
Improving Software Processes
Three levels of processes and their attributes
- Meta-process Macro-process Micro-process

Subject Line of business Project Iteration

Objectives Line-of-business profitability Project profitability Resource management


Competitiveness Risk management Risk resolution
Project budget, schedule, quality Milestone budget, schedule,
quality

Audience Acquisition authorities, customers Software project managers Subproject managers


Organizational management Software engineers Software engineers

Metrics Project predictability On budget, on schedule On budget, on schedule


Revenue, market share Major milestone success Major milestone progress
Project scrap and rework Release/iteration scrap and
rework

Concerns Bureaucracy vs. standardization Quality vs. financial performance Content vs. schedule

Time scales 6 to 12 months 1 to many years 1 to 6 months


Improving Software Economics
Improving Team Effectiveness (1)

• The principle of top talent: Use better and fewer people.

• The principle of job matching: Fit the task to the skills an


motivation of the people available.

• The principle of career progression: An organization does best


in the long run by helping its people to self-actualize.

• The principle of team balance: Select people who will


complement and harmonize with one another.

• The principle of phase-out: Keeping a misfit on the team


doesn’t benefit anyone.
Improving Software Economics
Improving Team Effectiveness
Important Project Manager Skills:

• Hiring skills. Few


decisions are as
important as hiring
decisions. Placing the
right person in the
right job seems
obvious but is
surprisingly hard to
achieve.
• Customer-interface
skill. Avoiding
adversarial
relationships among
stake-holders is a
prerequisite for
success.
• Decision-making skill.
The million books
written about
management have
failed to provide a
clear definition of this
attribute. We all know
a good leader when
we run into one, and
decision-making skill
seems obvious
despite its intangible
definition.
• Team-building skill.
Teamwork requires
that a manager
establish trust,
motivate progress,
exploit eccentric
prima donnas,
transition average
people into top
performers, eliminate
misfits, and
consolidate diverse
opinions into a team
direction.
Selling skill. Successful project managers must
sell all stakeholders (including themselves) on
decisions and priorities, sell candidates on job
positions, sell changes to the status quo in the
face of resistance, and sell achievements
against objectives. In practice, selling requires
continuous negotiation, compromise, and
empathy.
Improving Software Economics
Achieving Required Quality

Key practices that improve overall software quality:

 Focusing on driving requirements and critical use


cases early in the life cycle, focusing on requirements
completeness and traceability late in the life cycle,
and focusing throughout the life cycle on a balance
between requirements evolution, design evolution,
and plan evolution
 Using metrics and indicators to measure the progress
and quality of an architecture as it evolves from a
high-level prototype into a fully compliant product
 Providing integrated life-cycle environments that support
early and continuous configuration control, change
management, rigorous design methods, document
automation, and regression test automation

 Using visual modeling and higher level language that


support architectural control, abstraction, reliable
programming, reuse, and self-documentation

 Early and continuous insight into performance issues


through demonstration-based evaluations
Diseconomies of scale
• Contrary to manufacturing processes, the more
software you build, the more expensive it is per
unit

• Production is less efficient if either too many or


too few workers (efforts) are employed in
correspondence to the design capacity

• The inefficiency of under or over production

Vous aimerez peut-être aussi