University of Southern California Center for Systems and Software Engineering Process Models CS510 Supannika Koolmanojwong
Feb 25, 2016
University of Southern California
Center for Systems and Software Engineering
Process ModelsCS510
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
(C) 2012 USC-CSSE 4
Waterfall Model
Spiral Model
Iterative and Incremental Model Agile Model
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 Model
WinWin Spiral
Anchor Point Milestones Spiral/RUP compatibility
MBASE
Spiral, MBASE variants and invariants
LeanMBASE
Incremental Commitment Model
Incremental Commitment Spiral Model
(C) 2012 USC-CSSE 6
Spiral Family of Models1988
1994
1996
1999
2001
2005
2007
2010
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?
University of Southern California
Center for Systems and Software Engineering Spiral Model (1988)
(C) 2012 USC-CSSE 7
http://csse.usc.edu/csse/TECHRPTS/1988/usccse88-500/usccse88-500.pdf
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
University of Southern California
Center for Systems and Software Engineering
WinWin Spiral Model (1994)
(C) 2012 USC-CSSE 8
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
University of Southern California
Center for Systems and Software Engineering
Anchor Point Milestones (1996)
(C) 2012 USC-CSSE 9
http://csse.usc.edu/csse/TECHRPTS/1995/usccse95-507/usccse95-507.pdf
• Lack of intermediate milestones
–Anchor Points: LCO, LCA, IOC
–Concurrent-engineering spirals between anchor points
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
12
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
6 Key Principles:
(C) 2012 USC-CSSE
University of Southern California
Center for Systems and Software Engineering
ICSM: The Incremental Commitment Spiral Model
(C) 2012 USC-CSSE 13
1
2
3
4
5
6
RISK-BASEDSTAKEHOLDER COMMITMENT REVIEW POINTS:
Opportunities to proceed, skip phases backtrack, or terminate
Exploration Commitment Review
Valuation Commitment Review
Foundations Commitment Review
Development Commitment Review
Operations1 and Development2Commitment Review
Operations2 and Development3Commitment Review
Cumulative Level of Understanding, Product and Process Detail (Risk-Driven)
Concurrent Engineering of Products and Processes
2345
EXPLORATION
VALUATION
FOUNDATIONS
DEVELOPMENT1FOUNDATIONS2
OPERATION2DEVELOPMENT3
FOUNDATIONS4
16
Evidence-Based Review Content- A first-class deliverable- Independent expert review- Shortfalls are uncertainties and risks
OPERATION1DEVELOPMENT2
FOUNDATIONS3
Risk
Risk-Based Decisions
Acceptable
Negligible
High, butAddressable
Too High, Unaddressable
University of Southern California
Center for Systems and Software Engineering
Spiral Model
WinWin Spiral
Anchor Point Milestones Spiral/RUP compatibility
MBASE
Spiral, MBASE variants and invariants
LeanMBASE
Incremental Commitment Model
Incremental Commitment Spiral Model
(C) 2012 USC-CSSE 14
Spiral Family of Models1988
1994
1996
1999
2001
2005
2007
2010
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?
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
(C) 2012 USC-CSSE 16
- 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
University of Southern California
Center for Systems and Software Engineering
Dual-Vee Model
(C) 2012 USC-CSSE 17
Forsberg, Kevin; Harold Mooz, Howard Cotterman (2005), Visualizing Project Management, Third Edition, New York, NY: J. Wiley & Sons, Inc.
- Show concurrent development- Supports system of systems
University of Southern California
Center for Systems and Software Engineering
(C) 2012 USC-CSSE 18
V with multiple deliveries
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)
(C) 2012 USC-CSSE 20
Six Best Practices• Develop iteratively • Manage requirements • Use components • Model visually • Verify quality • Control changes
Discipline
http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process
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
(C) 2012 USC-CSSE 21
http://epf.eclipse.org/wikis/openup/
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
24(C) 2012 USC-CSSE
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, template3. Extra Features – waste time and resources4. Task Switching – put people in multiple projects5. Waiting – causes delay; decide as late as possible6. Motion – even walking down the hall waste time; sit in the same
room7. Defects – detect defect as soon ASAP8. Management activities – instead of tracking status, make sure work
flows properly; reduce tracking time
25(C) 2012 USC-CSSE
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
(C) 2012 USC-CSSE 27
http://www.codeproject.com/KB/architecture/scrum.aspx
University of Southern California
Center for Systems and Software Engineering
Introduction to scrum
• Scrum Framework• http://www.youtube.com/watch?v=_
BWbaZs1M_8&feature=related
• Explaining Scrum• http://www.youtube.com/watch?v=WxiuE-
1ujCM&feature=related
(C) 2012 USC-CSSE 28
University of Southern California
Center for Systems and Software Engineering Scrum vs ICSMScrum 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 estimationPrioritization
Definition of Done Successful condition of an item Exit Criteria
29(C) 2012 USC-CSSE
University of Southern California
Center for Systems and Software Engineering
• Frequent release• Shorter timebox• Frequent communication• Expecting requirements
changesDrawbacks• Unstable requirements• No documents• Lack of overall design
(C) 2012 USC-CSSE 30
XP-Extreme Programming
University of Southern California
Center for Systems and Software Engineering XP principles
(C) 2012 USC-CSSE 31
XP Practice DescriptionThe 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 releasesOrganizing 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 Code
All code is “owned” by all developers working on the software system. Eliminate the 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
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
(C) 2012 USC-CSSE 32
Ref: David Anderson, XP 2010 , Trondheim, Norway
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
(C) 2012 USC-CSSE 34
http://www.crisp.se/kanban
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– Clear on who is doing what and when
• Use Models to evaluate improvement opportunities
(C) 2012 USC-CSSE 35
Traffic at 100 percent capacity does not move
Ref: David Anderson, XP 2010 , Trondheim, Norwayhttp://moduscooperandi.com/personalkanban/why-limit-work-in-progress/
University of Southern California
Center for Systems and Software Engineering
Visualize Workflow & Limit WIP
(C) 2012 USC-CSSE 36
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
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
(C) 2012 USC-CSSE 37David Anderson, XP 2010 , Trondheim, Norway
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
(C) 2012 USC-CSSE 40
Limit Work-In-Progress
If urgent, drop the green task, because it has the lowest cost of delay
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 AgileICM Principles [a]a Related Lean Principles Related Agile Principles
Commitment and accountability of system sponsors
See the whole: balanced objectives, contract incentives, measuring the right thing(s)
Empower the team
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-to-face conversation.
Success-critical stakeholder satisficing
Deliver as fast as possible Satisfy the customer through early and continuous delivery of valuable software.
Iterative development cycles and incremental growth of system definition and stakeholder commitment
Amplify learning Build integrity in Decide as late as possible to support
concurrent development while keeping options open
Welcome changing requirements, even late in development.
Deliver working software frequently Working software is the primary measure of progress Agile processes promote sustainable development.
Concurrent engineering Empower the team Decide as late as possible to support
concurrent development while keeping options open
Continuous attention to technical excellence and good design enhances agility.
The best architectures, requirements, and designs emerge from self-organizing teams.
Risk-based activity levels and milestones
Eliminate waste Amplify learning Build integrity in
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.
(C) 2012 USC-CSSE 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 CDC Tasks
(C) 2012 USC-CSSE 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