PPT - Center for Software Engineering

Download Report

Transcript PPT - Center for Software Engineering

University of Southern California
Center for Systems and Software Engineering
Process Models
CS510
Supannika Koolmanojwong
University of Southern California
Center for Systems and Software Engineering
Outline
•
•
•
•
•
•
•
What is a Process Model?
Spiral Family of Models (1988 – 2011)
Incremental Commitment Spiral Model
V-Model
RUP/OpenUp
Lean, Scrum, XP, Kanban
Concurrent Engineering
(C) 2012 USC-CSSE
2
University of Southern California
Center for Systems and Software Engineering
Software Development Process
• Or Software Development Life Cycle
• The actual set of activities performed within
an organization
• Popular Models:
–
–
–
–
Waterfall model
Spiral model
Iterative and Incremental model
Agile model
(C) 2012 USC-CSSE
3
University of Southern California
Center for Systems and Software Engineering
Waterfall Model
Spiral Model
Iterative and Incremental
Model
(C) 2012 USC-CSSE
Agile Model
4
University of Southern California
Center for Systems and Software Engineering
Outline
•
•
•
•
•
•
•
What is a Process Model?
Spiral Family of Models (1988 – 2011)
Incremental Commitment Spiral Model
V-Model
RUP/OpenUp
Lean, Scrum, XP, Kanban
Concurrent Engineering
(C) 2012 USC-CSSE
5
University of Southern California
Center for Systems and Software Engineering
Spiral Family of Models
Spiral Model
1988
WinWin Spiral
1994
Anchor Point Milestones
Spiral/RUP compatibility
1996
MBASE
1999
Spiral, MBASE
variants and invariants
2001
LeanMBASE
2005
Where do OC&A’s come from?
Where are phases and milestones ?
How to avoid model clashes?
What is really required and optional ?
How to make the process more lean and agile?
• How can spiral be mapped onto system
acquisition phases and milestones?
• How can hardware, software and human
factors be integrated?
Incremental Commitment Model
Incremental Commitment Spiral Model
(C) 2012 USC-CSSE
2007
2010
6
University of Southern California
Center for Systems and Software Engineering
Spiral Model (1988)
Waterfall model
-Focus on front load elaboration
Spiral model
-Risk-driven
-Complete a round by review
-Round 0- Feasibility Study
-Round 1- Concepts of Operations
-Round 2- Top level Reqm Spec
http://csse.usc.edu/csse/TECHRPTS/1988/usccse88-500/usccse88-500.pdf
(C) 2012 USC-CSSE
7
University of Southern California
Center for Systems and Software Engineering
WinWin Spiral Model (1994)
Use the Theory W (win-win) approach to converge on a system's next level
objectives, constraints and alternatives.
http://csse.usc.edu/csse/TECHRPTS/1995/usccse95-509/usccse95-509.pdf
(C) 2012 USC-CSSE
8
University of Southern California
Center for Systems and Software Engineering
Anchor Point Milestones (1996)
•Lack of intermediate milestones
– Anchor Points:
LCO, LCA, IOC
– Concurrent-engineering spirals between anchor points
http://csse.usc.edu/csse/TECHRPTS/1995/usccse95-507/usccse95-507.pdf
(C) 2012 USC-CSSE
9
University of Southern California
Center for Systems and Software Engineering
Spiral/RUP compatibility
(C) 2012 USC-CSSE
10
University of Southern California
Center for Systems and Software Engineering
Model-Based (System) Architecting and Software Engineering
(MBASE)
(C) 2012 USC-CSSE
11
University of Southern California
Center for Systems and Software Engineering
The Incremental Commitment Model
6 Key Principles:
Commitment and
accountability
Incremental growth of
system definition and
stakeholder commitment
Concurrent engineering and
Iterative development
cycles
Success-critical stakeholder
satisficing
Risk-based activity levels
and milestones
(C) 2012 USC-CSSE
12
University of Southern California
Center for Systems and Software Engineering
ICSM: The Incremental Commitment Spiral Model
Cumulative Level of Understanding, Product and Process
Detail (Risk-Driven)
Concurrent
Engineering of
Products and
Processes
OPERATION2
DEVELOPMENT3
FOUNDATIONS4
OPERATION1
DEVELOPMENT2
FOUNDATIONS3
DEVELOPMENT1
FOUNDATIONS2
FOUNDATIONS
RISK-BASED
STAKEHOLDER
COMMITMENT
REVIEW
POINTS:
VALUATION
EXPLORATION
6
5
4
3
2
1
Opportunities to
proceed, skip
phases
backtrack, or
terminate
Risk-Based Decisions
Evidence-Based Review Content
- A first-class deliverable
- Independent expert review
- Shortfalls are uncertainties and risks
Acceptable
Negligible
Risk
Too High,
Unaddressable
High, but
Addressable
(C) 2012 USC-CSSE
1
Exploration Commitment Review
2
Valuation Commitment Review
3
Foundations Commitment Review
4
Development Commitment Review
5
Operations1 and Development2
Commitment Review
6
Operations2 and Development3
Commitment Review
13
University of Southern California
Center for Systems and Software Engineering
Spiral Family of Models
Spiral Model
1988
WinWin Spiral
1994
Anchor Point Milestones
Spiral/RUP compatibility
1996
MBASE
1999
Spiral, MBASE
variants and invariants
2001
LeanMBASE
2005
Where do OC&A’s come from?
Where are phases and milestones ?
How to avoid model clashes?
What is really required and optional ?
How to make the process more lean and agile?
• How can spiral be mapped onto system
acquisition phases and milestones?
• How can hardware, software and human
factors be integrated?
Incremental Commitment Model
Incremental Commitment Spiral Model
(C) 2012 USC-CSSE
2007
2010
14
University of Southern California
Center for Systems and Software Engineering
Outline
•
•
•
•
•
•
•
What is a Process Model?
Spiral Family of Models (1988 – 2011)
Incremental Commitment Spiral Model
V-Model
RUP/OpenUp
Lean, Scrum, XP, Kanban
Concurrent Engineering
(C) 2012 USC-CSSE
15
University of Southern California
Center for Systems and Software Engineering
V-Model
- Extension of Waterfall model, but V up to pair development with testing
- Widely used in systems engineering
- Does not explicitly shown the concurrent engineering
- Challenges in supporting evolutionary development
(C) 2012 USC-CSSE
16
University of Southern California
Center for Systems and Software Engineering
Dual-Vee Model
-Show concurrent development
-Supports system of systems
Forsberg, Kevin; Harold Mooz, Howard Cotterman (2005), Visualizing Project Management, Third Edition, New York, NY:
J. Wiley & Sons, Inc.
(C) 2012 USC-CSSE
17
University of Southern California
Center for Systems and Software Engineering
V with multiple deliveries
(C) 2012 USC-CSSE
18
University of Southern California
Center for Systems and Software Engineering
Outline
•
•
•
•
•
•
•
What is a Process Model?
Spiral Family of Models (1988 – 2011)
Incremental Commitment Spiral Model
V-Model
RUP/OpenUp
Lean, Scrum, XP, Kanban
Concurrent Engineering
(C) 2012 USC-CSSE
19
University of Southern California
Center for Systems and Software Engineering
Rational Unified Process (RUP)
Discipline
Six Best Practices
• Develop iteratively
• Manage requirements
• Use components
• Model visually
• Verify quality
• Control changes
http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process
(C) 2012 USC-CSSE
20
University of Southern California
Center for Systems and Software Engineering
OpenUP
• OpenUP is a lean Unified Process that
applies iterative and incremental
approaches within a structured lifecycle
http://epf.eclipse.org/wikis/openup/
(C) 2012 USC-CSSE
21
University of Southern California
Center for Systems and Software Engineering
Outline
•
•
•
•
•
•
•
What is a Process Model?
Spiral Family of Models (1988 – 2011)
Incremental Commitment Spiral Model
V-Model
RUP/OpenUp
Lean, Scrum, XP, Kanban
Concurrent Engineering
(C) 2012 USC-CSSE
22
University of Southern California
Center for Systems and Software Engineering
Lean Principles
• From Toyota Production System
• 7 Lean principles
– Eliminate waste – anything that does not add value
– Amplify learning – continuous update about the project
– Decide as late as possible – delay decisions, gather more information
– Deliver as fast as possible – daily deliveries, daily standup meeting
– Empower the team – get good people, listen, communicate
– Build integrity in – build good products
– See the whole - “Think big, act small, fail fast; learn rapidly”
(C) 2012 USC-CSSE
23
University of Southern California
Center for Systems and Software Engineering
Eliminate waste
•
•
•
•
Waste = anything that does not create
value for a customer
Step 1: learning to see waste
Step 2: uncover the biggest sources of
waste and eliminate them
Step 3: uncover the biggest remaining
sources of waste and eliminate them
(C) 2012 USC-CSSE
24
University of Southern California
Center for Systems and Software Engineering
The seven wastes of Software Development
1. Partially Done Work – tend to become obsolete; no idea it will
eventually work; waste resources; should do risk-reduction and
waste-reduction
2. Extra Processes – paperwork necessary?, try to use table, template
3. Extra Features – waste time and resources
4. Task Switching – put people in multiple projects
5. Waiting – causes delay; decide as late as possible
6. Motion – even walking down the hall waste time; sit in the same
room
7. Defects – detect defect as soon ASAP
8. Management activities – instead of tracking status, make sure work
flows properly; reduce tracking time
(C) 2012 USC-CSSE
25
University of Southern California
Center for Systems and Software Engineering
Scrum
• Compared to Rugby game, where all partners tackle the
problem, passing the ball back and forth
• Three main roles: Scrum master, Product owner, Team
• Self-organizing, co-location teams
(C) 2012 USC-CSSE
26
University of Southern California
Center for Systems and Software Engineering
http://www.codeproject.com/KB/architecture/scrum.aspx
(C) 2012 USC-CSSE
27
University of Southern California
Center for Systems and Software Engineering
Introduction to scrum
• Scrum Framework
• http://www.youtube.com/watch?v=_BWbaZ
s1M_8&feature=related
• Explaining Scrum
• http://www.youtube.com/watch?v=WxiuE1ujCM&feature=related
(C) 2012 USC-CSSE
28
University of Southern California
Center for Systems and Software Engineering
Scrum
Scrum vs ICSM
Definition
ICSM
Product Backlog List
Prioritized list of requirements; may be or may
be not developed;
Requirements, Capabilities
Sprint
Two to four weeks
Iteration
Product Increment
Result of each iteration
Iteration assessment report
Scrum Master
A management representative
Facilitator; Success Critical
Stakeholder
Daily Scrum
Short daily team meeting
Team meeting
Product owner
Prioritize backlog; decide the order in which
things are built
Success Critical Stakeholder
Scrum team
Stakeholders
Success Critical Stakeholder
Sprint Backlog
List of tasks to perform during each Sprint
Iteration plan
Sprint Review Meeting
End of sprint meeting; to review product
increment
ARB
Impediment
Things that block the project progress
Risks, defects, concerns, issues,
problems
Sprint Retrospective
Look backward- what went well …
Iteration assessment
Planning Poker
Estimation
Cost, schedule estimation
Prioritization
Definition of Done
Successful condition of an item
Exit Criteria
(C) 2012 USC-CSSE
29
University of Southern California
Center for Systems and Software Engineering
XP-Extreme Programming
•
•
•
•
Frequent release
Shorter timebox
Frequent communication
Expecting requirements
changes
Drawbacks
• Unstable requirements
• No documents
• Lack of overall design
(C) 2012 USC-CSSE
30
University of Southern California
Center for Systems and Software Engineering
XP Practice
XP principles
Description
The Planning Game
User stories describe the desired features of the software system. Evaluate
/estimate on how long and how important for each story
Small Releases
User stories are prioritized and allocated to small releases
Organizing System
Metaphor
Metaphor for system selected to guide implementation and naming conventions.
Simple Design
Only implement that which is required at current point in time.
Continuous Testing
Software tests are planned and written as part of the design process. Unit Test.
Acceptance testing is specified by the customer.
Refactoring
Restructure the code or the underlying data model for the software system as the
software system evolves
Pair Programming
All code is written by two developers, one entering the code and one reviewing
Collective Ownership of All code is “owned” by all developers working on the software system. Eliminate the
Code
need to “coordinate” changes with other developers.
Continuous Integration
All code changes are entered into the code base on a daily basis and tested daily in
the integrated environment.
40-Hour Work Week
All developers work 40 hour week with few exceptions.
On-site Customer
Continuous access to a CRACK customer representative to ensure timely response
Coding Standards
Every developer follows the same coding standards
(C) 2012 USC-CSSE
31
University of Southern California
Center for Systems and Software Engineering
XP
• Three types of wastes from Toyota Production
system
– Muda – non-value added tasks
• E.g. No gold plating
• Avoid Muda by using high planning and coordination
– Muri – uneveness or variability
• Avoid Muri by using skilledcraftmanship, one story at
a time
– Mura – overburdening or failure load
• E.g. Fixing bugs, responds to helpdesk, fix
requirements
• Avoid Mura by using tests and tight definition of done
Ref: David Anderson, XP 2010 , Trondheim, Norway
(C) 2012 USC-CSSE
32
University of Southern California
Center for Systems and Software Engineering
To reduce waste in XP
• Techniques to reduce waste in XP
– Agile Workcell
– Elimination of planning
– Reducing Red
• This introduces Kanban (further elimination
of waste)
(C) 2012 USC-CSSE
33
University of Southern California
Center for Systems and Software Engineering
Kanban
•
•
•
•
Focus on “managing flow”
Limit Work-In-Progress: complete a feature before starting a new one
Iteration and estimate are optional
Could be used on top of other processes
http://www.crisp.se/kanban
(C) 2012 USC-CSSE
34
University of Southern California
Center for Systems and Software Engineering
Kanban concepts
• Visualize workflow
– More than work, but interaction and
coordination
• Limit Work-in-progress
• Measure and Manage Flow
– Use metrics such as velocity,
burndown, churn
• Make Process Policies explicit
Traffic at 100 percent capacity
does not move
– Clear on who is doing what and when
• Use Models to evaluate
improvement opportunities
Ref: David Anderson, XP 2010 , Trondheim, Norway
http://moduscooperandi.com/personalkanban/why-limit-work-in-progress/
(C) 2012 USC-CSSE
35
University of Southern California
Center for Systems and Software Engineering
Visualize Workflow & Limit WIP
At a morning standup meeting……
1.Observe workflow
•What is happening?
•Where is the bottleneck?
2.Check performance
•Velocity, backlog
3.Identify improvement
opportunities
David Anderson, XP 2010 , Trondheim, Norway
(C) 2012 USC-CSSE
36
University of Southern California
Center for Systems and Software Engineering
• Probably no instant feedback from Success Critical Stakeholders
• What can be improved here ?
– Bottleneck, Variability, Waste
• Craftmanship & Leadership to improve the process and use performance as
evidence to support
David Anderson, XP 2010 , Trondheim, Norway
(C) 2012 USC-CSSE
37
University of Southern California
Center for Systems and Software Engineering
How to start assigning tasks?
(C) 2012 USC-CSSE
38
University of Southern California
Center for Systems and Software Engineering
(C) 2012 USC-CSSE
39
University of Southern California
Center for Systems and Software Engineering
Limit Work-In-Progress
If urgent, drop the green task, because it has the lowest cost of delay
(C) 2012 USC-CSSE
40
University of Southern California
Center for Systems and Software Engineering
Example of Kanban Board
(C) 2012 USC-CSSE
41
University of Southern California
Center for Systems and Software Engineering
Comparing ICM with Lean and Agile
ICM Principles [a]a
Commitment and
accountability of system
sponsors
Related Lean Principles
 See the whole: balanced objectives,
contract incentives, measuring the
right thing(s)
 Empower the team



Success-critical stakeholder
satisficing
Iterative development cycles
and incremental growth of
system definition and
stakeholder commitment
Concurrent engineering
Risk-based activity levels and
milestones
 Deliver as fast as possible

 Amplify learning
 Build integrity in
 Decide as late as possible to support
concurrent development while
keeping options open
 Empower the team
 Decide as late as possible to support
concurrent development while
keeping options open
 Eliminate waste
 Amplify learning
 Build integrity in









(C) 2012 USC-CSSE
Related Agile Principles
Business people and developers must work together daily
throughout the project.
Provide the developers with environment and support they
need
The most efficient and effective method of conveying
information to and within a development team is face-toface conversation.
Satisfy the customer through early and continuous delivery
of valuable software.
Welcome changing requirements, even late
in development.
Deliver working software frequently
Working software is the primary measure of progress
Agile processes promote sustainable development.
Continuous attention to technical excellence and good
design enhances agility.
The best architectures, requirements, and designs emerge
from self-organizing teams.
Team reflects periodically on how to become more
effective, then tunes and adjusts its behavior accordingly
Simplicity--the art of maximizing the amount of work not
done--is essential.
Agile processes promote sustainable development.
42
University of Southern California
Center for Systems and Software Engineering
Outline
•
•
•
•
•
•
•
What is a Process Model?
Spiral Family of Models (1988 – 2011)
Incremental Commitment Spiral Model
V-Model
RUP/OpenUp
Lean, Scrum, XP, Kanban
Concurrent Engineering
(C) 2012 USC-CSSE
43
University of Southern California
Center for Systems and Software Engineering
Concurrent Engineering
• TeamX – JPL
• Concept Design Center – Aerospace Corp.
(C) 2012 USC-CSSE
44
University of Southern California
Center for Systems and Software Engineering
(C) 2012 USC-CSSE
CDC Tasks
45
University of Southern California
Center for Systems and Software Engineering
(C) 2012 USC-CSSE
46
University of Southern California
Center for Systems and Software Engineering
(C) 2012 USC-CSSE
47
University of Southern California
Center for Systems and Software Engineering
(C) 2012 USC-CSSE
48
University of Southern California
Center for Systems and Software Engineering
(C) 2012 USC-CSSE
49