Process Models

49
University of Southern California Center for Systems and Software Engineering Process Models CS510 Supannika Koolmanojwong

description

Process Models. CS510 Supannika Koolmanojwong. 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. Software Development Process. - PowerPoint PPT Presentation

Transcript of Process Models

Page 1: Process Models

University of Southern California

Center for Systems and Software Engineering

Process ModelsCS510

Supannika Koolmanojwong

Page 2: Process Models

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

Page 3: Process Models

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

Page 4: Process Models

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

Page 5: Process Models

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

Page 6: Process Models

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?

Page 7: Process Models

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

Page 8: Process Models

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

Page 9: Process Models

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

Page 10: Process Models

University of Southern California

Center for Systems and Software Engineering

Spiral/RUP compatibility

(C) 2012 USC-CSSE 10

Page 11: Process Models

University of Southern California

Center for Systems and Software Engineering

Model-Based (System) Architecting and Software Engineering (MBASE)

(C) 2012 USC-CSSE 11

Page 12: Process Models

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

Page 13: Process Models

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

Page 14: Process Models

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?

Page 15: Process Models

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

Page 16: Process Models

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

Page 17: Process Models

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

Page 18: Process Models

University of Southern California

Center for Systems and Software Engineering

(C) 2012 USC-CSSE 18

V with multiple deliveries

Page 19: Process Models

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

Page 20: Process Models

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

Page 21: Process Models

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/

Page 22: Process Models

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

Page 23: Process Models

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

Page 24: Process Models

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

Page 25: Process Models

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

Page 26: Process Models

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

Page 27: Process Models

University of Southern California

Center for Systems and Software Engineering

(C) 2012 USC-CSSE 27

http://www.codeproject.com/KB/architecture/scrum.aspx

Page 28: Process Models

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

Page 29: Process Models

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

Page 30: Process Models

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

Page 31: Process Models

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

Page 32: Process Models

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

Page 33: Process Models

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

Page 34: Process Models

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

Page 35: Process Models

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/

Page 36: Process Models

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

Page 37: Process Models

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

Page 38: Process Models

University of Southern California

Center for Systems and Software Engineering

How to start assigning tasks?

(C) 2012 USC-CSSE 38

Page 39: Process Models

University of Southern California

Center for Systems and Software Engineering

(C) 2012 USC-CSSE 39

Page 40: Process Models

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

Page 41: Process Models

University of Southern California

Center for Systems and Software Engineering

Example of Kanban Board

(C) 2012 USC-CSSE 41

Page 42: Process Models

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

Page 43: Process Models

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

Page 44: Process Models

University of Southern California

Center for Systems and Software Engineering

Concurrent Engineering

• TeamX – JPL• Concept Design Center – Aerospace Corp.

(C) 2012 USC-CSSE 44

Page 45: Process Models

University of Southern California

Center for Systems and Software Engineering CDC Tasks

(C) 2012 USC-CSSE 45

Page 46: Process Models

University of Southern California

Center for Systems and Software Engineering

(C) 2012 USC-CSSE 46

Page 47: Process Models

University of Southern California

Center for Systems and Software Engineering

(C) 2012 USC-CSSE 47

Page 48: Process Models

University of Southern California

Center for Systems and Software Engineering

(C) 2012 USC-CSSE 48

Page 49: Process Models

University of Southern California

Center for Systems and Software Engineering

(C) 2012 USC-CSSE 49