Week 2
Week 2
•1
Today’s Lecture
• 1. Phases in Detail
– Step-by-step of typical software project
• 2. Choosing Software Project Lifecycle
•2
•1
Time Allocation by Phase
• Remember the 40-20-40 Rule
• Specification-Implementation-Test
Planning Code & Integration &
Unit Test Test
Commercial 25% 40% 35%
DP
Internet 55% 15% 30%
Systems
Real-time 35% 25% 40%
Systems
Defense 40% 20% 40%
Systems
Bennatan, E.M, “On Time Within Budget”
3
•3
•4
•2
Activities by % of Total Effort
•5
•6
•3
Concept Exploration
• The “Why” phase
• Not a “mandatory formal” phase
– Sometimes called the “pre-project” phase
• Collecting project ideas
– Then the “funneling” process
• Project Justification
– ROI
– Cost-benefit analysis
– Project Portfolio Matrix
• Initial planning and estimates
7
•7
•8
•4
Concept Exploration
• Possibly includes Procurement Management:
• RFP Process
• Vendor selection
• Contract management
• Gathering the initial team
– Including PM if not already on-board
• Identify the project sponsor
– Primary contact for approval and decision making
• Potential Phase Outputs:
– Concept Document, Product Description, Proposal,
SOW, Project Charter
9
•9
Requirements
• The “What” phase
• Inputs: SOW, Proposal
• Outputs:
– Requirements Document (RD)
• a.k.a.Requirements Specification Document (RSD)
• Software Requirements Specification (SRS)
– 1st Project Baseline
– Software Project Management Plan (SPMP)
– Requirements Approval & Sign-Off
• Your most difficult task in this phase
10
•10
•5
2 Types of Requirements
– Functional (behavioral)
– Features and capabilities
– Non-functional (a.k.a. “technical”) (everything else)
– Usability
» Human factors, help, documentation
– Reliability
» Failure rates, recoverability, availability
– Performance
» Response times, throughput, resource usage
– Supportability
» Maintainability, internationalization
– Operations: systems management, installation
– Interface: integration with other systems
– Other: legal, packaging, hardware
11
•11
12
•12
•6
Development
• The “Do It” phase
• Coding & Unit testing
• Often overlaps Design & Integration phases
– To shorten the overall schedule
– PM needs to coordinate this
13
•13
14
•14
•7
Integration & Test
• Tests
– Integration testing
– Black & White-box testing
– Load & Stress testing
– Alpha & Beta testing
– Acceptance testing
• Other activities
– Final budgeting; risk mgmt.; training;
installation preparation; team reduced
15
•15
16
•16
•8
Deployment & Maintenance
• Maintenance
– Fix defects
– Add new features
– Improve performance
• Configuration control is very important here
• Documents need to be maintained also
• Sometimes a single team maintains multiple
products
17
•17
Lifecycle Planning
• Lifecycle Management or SDLC
• Greatly influences your chance of success
• Three primary lifecycle model components
– Phases and their order
– Intermediate products of each phase
– Reviews used in each phase
18
•18
•9
Lifecycle Planning
• Different projects require different approaches
• You do not need to know all models by name
• You should know how that if given a certain
scenario what sort of SDLC would be appropriate
• There are more than covered here
• A lifecycle is not a design, modeling or
diagramming technique
– The same technique (UML, DFD, etc) can be used with
multiple lifecycles
19
•19
Pure Waterfall
• The “granddaddy” of models
• Linear sequence of phases
– “Pure” model: no phases overlap
• Document driven
• All planning done up-front
20
•20
•10
Code-and-Fix
• “Code-like-Hell”
• Specification (maybe), Code (yes), Release
(maybe)
• Advantages
– No overhead
– Requires little expertise
• Disadvantages
– No process, quality control, etc.
– Highly risky
• Suitable for prototypes or throwaways
21
•21
Spiral
22
•22
•11
Evolutionary Prototyping
• Design most prominent parts first
– Usually via a visual prototype
• Good for situations with:
– Rapidly changing requirements
– Non-committal customer
– Vague problem domain
• Provides steady, visible progress
• Disadvantages
– Time estimation is difficult
– Project completion date may be unknown
– An excuse to do “code-and-fix” 23
•23
Staged Delivery
• Waterfall steps through architectural design
• Then detailed design, code, test, deliver in stages
• Advantages
• Customers get product much sooner
• Tangible signs of progress sooner
• Problems discovered earlier
• Increases flexibility
• Reduces: status reporting overhead & estimation error
• Disadvantages
• Requires more planning (for you the PM)
• More releases increase effort (and possible feature creep)
• How’s this differ from Evolutionary Prototyping?
24
•24
•12
V Process Model
25
•25
RAD
• Rapid Application Development
• Popular in the 80’s
– 1. Joint Requirements Planning (JRP)
– 2. Joint Application Design (JAD)
– 3. Construction
• Heavy use of tools: code generators
• Time-boxed; many prototypes
– 4. Cutover
• Good for systems with extensive user input
available
26
•26
•13
COTS
• Commercial Off-The-Shelf software
• Build-vs.-buy decision
• Advantages
– Available immediately
– Potentially lower cost
• Disadvantages
– Not as tailored to your requirements
• Remember: custom software rarely meets its ideal
(so compare that reality to COTS option)
27
•27
•28
•14
eXtreme Programming
29
•29
30
•30
•15
Choosing Your Lifecycle
• Varies by project
• Opt for “iterative” or “incremental”
• How well are requirements understood?
• What are the risks?
• Is there a fixed deadline?
• How experienced is the team or customer?
31
•31
PROCESS GROUPS
AND
KNOWLEDGE AREAS
. 32
•32
•16
PM Knowledge Areas & Process Groups
PM Process Initiating Process Planning Process Group Executing Process Group Monitoring & Controlling Closing
Groups / Group Process Group Process
Knowledge Area Group
Processes
Project Develop Project Charter Develop Project Management Plan Direct and Manage Project Monitor and Control Project Work Close Project
Management Develop Prelim Project Execution Integrated Change Control
Integration Scope Statement
Project Quality Quality Planning Perform Quality Assurance Perform Quality Control
Management
Project HR Human Resources Planning Acquire Project Team Manage Project Team
Management Develop Project Team
Project Procurement Plan Purchases and Acquisitions Request Seller Responses Contract Administration Contract Closure
Management Plan Contracting Select Sellers
•33
Knowledge Areas
34
•34
•17
Project Management Knowledge Areas
• An area of project management defined by its knowledge
requirements and described in terms of its associated process,
practices, inputs, outputs, tools and techniques
• Identified knowledge areas (the ‘things’)
1. Project Integration Management
2. Project Scope Management
3. Project Time Management
4. Project Cost Management
5. Project Quality Management
6. Project Human Resource Management
7. Project Communications Management
8. Project Risk Management
9. Project Procurement Management 35
•35
•36
•18
2. Project Scope Management
• defines and controls what is and is not included in
the project
• processes include
1. scope planning
2. scope definition
3. creation of a Work Breakdown Schedule
4. scope verification
5. scope control
•37
•38
•19
4. Project Cost Management
• planning, estimating, budgeting and controlling
costs to ensure the project can be completed within
the approved budget
• processes include
1. cost estimating
2. cost budgeting
3. cost control
•39
•40
•20
6. Project Human Resource Management
•41
•42
•21
8. Project Risk Management
• processes to increase the probability and impact of
positive events and decrease the probability and impact
of negative events
• updated throughout the project
• processes include
1. risk management planning
2. risk identification
3. qualitative risk analysis
4. quantitative risk analysis
5. risk response planning
6. risk monitoring and control
•43
•44
•22
Project Management Framework
•45
•46
•23
Process Groups
47
•47
48
•48
•24
PMI Process Groups
•49
Project Initiation
• Initiating a project includes recognizing and starting a new
project or project phase.
• Some organizations use a pre-initiation phase, while others
include items such as developing a business case as part of the
initiation.
• The main goal is to formally select and start off projects.
• Key outputs include:
– Assigning the project manager.
– Identifying key stakeholders.
– Completing a business case.
– Completing a project charter and getting signatures on it.
•50
•25
Project Planning
• The main purpose of project planning is to guide
execution.
• Every knowledge area includes planning information
• Key outputs included:
– A team contract.
– A scope statement.
– A work breakdown structure (WBS).
– A project schedule, in the form of a Gantt chart with all
dependencies and resources entered.
– A list of prioritized risks (part of a risk register).
•51
Project Executing
• Project execution usually takes the most time and
resources.
• Project managers must use their leadership skills to handle
the many challenges that occur during project execution.
• Many project sponsors and customers focus on deliverables
related to providing the products, services, or results
desired from the project.
• A milestone report can keep the focus on completing major
milestones.
•52
•26
Project Monitoring and Controlling
• Involves measuring progress toward project
objectives, monitoring deviation from the plan,
and taking corrective action to match progress
with the plan.
•53
Project Closing
• Involves gaining stakeholder and customer
acceptance of the final products and services.
• Even if projects are not completed, they should
be formally closed in order to reflect on what
can be learned to improve future projects.
• Outputs include project archives and lessons
learned, which are part of organizational process
assets.
• Most projects also include a final report and
presentation to the sponsor or senior
management.
•54
•27
Mapping the Process Groups to the
Knowledge Areas
• We can map the main activities of each PM process
group into the nine knowledge areas identified by
Project management body of knowledge
•55
•56
•28
Relationships Among Process Groups and Knowledge Areas
57
•57
•58
•29
Project Management Knowledge
Areas and Process Groups
with respect to
Software Projects
59
•59
•60
•30
PMI Phase Interactions
Design Phase
Initiating Planning
Processes Processes
Implementation Phase
Initiating Planning
Controlling Executing Processes Processes
Processes Processes
Controlling Executing
Closing Processes Processes
Processes
Closing
Processes
•61
Conclusion
62
•62
•31