Title: SOFTWARE PROJECT MANAGEMENT
1SOFTWARE PROJECT MANAGEMENT
2Software Project Management Basic Concepts
- What is a Project?
- goal oriented (clarity vs ambiguity achievable
vs. stretch) - interrelated activities (independence??)
- finite duration (really? timing issues?)
- unique (really?)
- Three Trade-Offs Involved with All Projects
- technical goals
- business goals
- budget/schedule goals
- What is Project Management?
- Getting the job done on time, within budget,
according to specifications
3Unsuccessful Projects
- Why Project Management is so difficult
- uncertainty
- outside influences
- inside pressures
- inadequate skills
- nature of teams
- Why Projects Fail
- organizational/organizing/people issues
- poor need identification/specification
- poor planning/control
4Modern Software Systems
- Software Quality
- functionality
- reliability
- cost
- product availability date
- Inherent Properties
- complexity
- conformity
- changeability
- invisibility
5Where the Time GoesBenchmark Database of 1300
FirmsHackett Group, CIO Magazine, Dec. 1998
- 25 Application Software Development
- 25 Operations
- 16 Application Software Maintenance
- 8 End-User Support Training
- 8 Planning and Decision Support
- 6 Infrastructure Development
- 4 Risk Management
- 3 Standards/Tools Development
Administration - 3 Project and Cost Accounting
- 2 Supplier Management
61994 Scientific American Article
- IBM Study of 24 leading companies
- 55 had cost overruns
- 68 had schedule overruns
- 88 had to be redesigned to be used
- 1/3rd of all large-scale software programs are
canceled - The average software program overruns its
schedule by 50 larger programs usually by more - 3/4ths of all large-scale developments are
operational failures they do not function as
intended or are not used at all - Software is still hand-crafted by artisans using
techniques they can neither measure nor
consistently repeat
7Project PerformanceBenchmark Database of 1300
FirmsHackett Group, CIO Magazine, Dec. 1998
- Large IT Projects
- only 37 on-time
- only 42 on-budget
- Small IT Projects (lt 30 days)
- only 80 on-time/on-budget
8Sources of Most Software Development Problems
- Thin spread of application domain knowledge
- Fluctuating and conflicting requirements
- Communication and coordination breakdowns
- Poor problem solving and decision making
9Strategies for Improving Software Development
- New Technologies
- new languages (Ada, Visual Basic, C)
- graphical programming object-oriented
programming - application of AI/ES automatic programming
- environments/tools/workstations
- New Management Approaches
- buy vs. build
- requirements refinement via rapid prototyping
- incremental/evolutionary development
- reuse
- Software Engineering
10Software Engineering
- Software engineering encompasses a set of three
key elementsmethods, tools, and proceduresthat
enable the manager to control the process of
software development and provide for the building
high-quality software in a productive manner. - Methods define the technical how-tos for
software development. - Tools give automated (or semi-automated) support
to the methods. - Procedures merge the methods and tools for
rational, timely software development.
Procedures establish the order in which the
methods are applied, deliverables are required,
and controls are enacted.
11Software Engineering Goals
- Supportability
- Reliability
- Efficiency
- Understandability
12Software Engineering Principals
- Abstraction
- Information Hiding
- Modularity
- Localization
- Uniformity
- Completeness
- Confirmability
13Successful Project Management
Textbook Elements
PMI Competencies
- project requirements
- organizing
- team
- planning
- control
- risk and opportunity management
- project visibility
- project status
- corrective action
- leadership
- scope management
- time management
- cost management
- human resource management
- risk management
- quality management
- contract management
- communication management
14Systems Development Lifecycle
- Systems Concept
- System Design
- System Development
- System Implementation
- System Support
15SYSTEM LIFE CYCLE
Objectives and constraints
Current system descriptions
Analogous problems and solutions
SYSTEM CONCEPT
SYSTEM DESIGN
Enhancement Requests
16CONCEPT DEFINITION
Objectives and constraints
Working model with resolved issues
Statement of key objectives and constraints
Analogous problems and solutions
Current system descriptions
System model
Working model (functions and features)
Conceptual approaches
Work papers
Project plan
Current system definition
17SYSTEM DESIGN
Structured specification and system controls
Software and database design
System architecture
Test environment design
Preferred standard software
System inputs and outputs
Operations design
Conversion specifications
Development and implemen- tation plans
Preliminary users guide
Forms, screens and reports
Draft design
Revised design
18SYSTEM DEVELOPMENT
Operations design
Software and database design
Test environment
Preliminary users guide
Training program design
Prepare user documentation
Unit tested software
Development environment
User documentation
Training program
Project- developed standard software
Tested software and procedures
Production environment
19SYSTEM IMPLEMENTATION
User documentation
Production environment
Tested software
Trained users
Training program
Operational system
Installed software
Accepted system
Converted data
Conversion software
20SYSTEM SUPPORT
System changes
Fixes
Operations reports
Tested changes
Develop software and procedures for changes
Defects
Source data
Reports and inquiries
Change specifications
Change requests
Enhancement and change requests
Scheduled change requests
21Evolution of Software Process Models
- Code-and-Fix Model
- Waterfall Model
- Prototyping
- Evolutionary Development
- Spiral Model
22Waterfall Model
System Feasibility/Validation
Software Plans Requirements/Validation
Product Design/Verification
Detailed Design/Verification
Code/Unit Test
Integration/Product Verification
Implementation/System Test
Operations Maintenance/Revalidation
23Problems with the Waterfall Model
- It takes too long.
- It doesnt result in perfect systems.
- There are alternatives now available.
24Uses of Prototyping
- Verifying user needs
- Verifying that design specifications
- Selecting the best design
- Developing a conceptual understanding of novel
situations - Testing a design under varying environments
- Demonstrating a new product to upper management
- Implementing a new system in the user environment
25Prototyping Advantages and Disadvantages
- Proposed Advantages
- Improved user communication
- Users like it
- Low risk
- Avoids overdesign
- Experimentation and innovation
- Spreads labor to user department
- Disadvantages in practice
- Prototypes are used as is
- Integration often difficult
- Design flaws
- Poor performance
- Difficult to manage process
- Creates unrealistic expectations
26Observed Effects of Prototyping
Software Product
Software Process
- ease of use ()
- user needs ()
- unrealistic user expectations (-)
- added features (?)
- poorer performance (-)
- mixed design quality
- mixed maintainability
- less need
- more difficult to do
- effort decreased ()
- difficult cost-estimation (-)
- end-user participation increased () but what
exactly does this mean??? - more expertise needed (-)
- difficult planning control (-)
27Iterative Development
System Concept
Version 1
Version 2
Version N
Software Development Process
28Spiral Model
- Each Cycle Unfolds as follows
- identify
- objectives of portion of product being elaborated
- alternative means of implementing this portion
- constraints imposed on applying the alternatives
- perform risk assessment
- formulate a strategy for resolving these risks
(focusing on highest risks) - perform some form of prototyping to test the
risk-resolving strategy - implement strategy to accomplish objective (more
planning, additional requirements analysis,
enhance specification, produce a design, build an
operational prototype, implement system, etc.) - complete cycle with a formal review
29(No Transcript)
30Assessment of Spiral Model
Strengths
Weaknesses
- focus on high-risk elements
- defer low-risk items
- uses prototyping as a key risk-reducing strategy
- sees reworks and go-backs as positives and
not negatives
- difficult to do cost and schedule estimation
- difficult to apply standard planning and control
techniques - difficult to apply for contract work
- need for risk assessment expertise