570 likes | 825 Views
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. Code-and-fix. Free-form working environments H obby project
E N D
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 (C) 2012 USC-CSSE
Code-and-fix • Free-form working environments • Hobby project • Cowboy programming • Lack of structure • Uncertain design requirements • Incompleteness • Code monkey – simple, repetitive code • Indie development – mostly video game (C) 2012 USC-CSSE
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
Waterfall Model Spiral Model Agile Model Iterative and Incremental Model (C) 2012 USC-CSSE
Biggest Waterfall Software Project Failure • Throughout the 1980s and into the 1990s, most DoD projects followed the Waterfall approach • 75 percent of the projects failed or were never used. • HealthCare.gov ?? • FBI Virtual Case File ?? $170 Million http://www.infoq.com/resource/articles/scaling-software-agility/en/resources/ch02.pdf (C) 2012 USC-CSSE
Biggest Agile Software Development Failure • UK Universal Credit (UC) digital project, £2bn , • 2010 and going on • UK is trying to promote Agile software development • Claimed to be the biggest agile software development project • To replace six of the main tax and benefits system in UK (tax credit, housing benefits, ..) (C) 2012 USC-CSSE http://www.computerweekly.com/news/2240187478/Why-agile-development-failed-for-Universal-Credit
Biggest Agile Software Development Failure • Facts • Started with Agile • 24 contractors including HP, IBM, Capgemini, ThoughtWorks, …. • after two project directors departed (fired?, one dead), the third one changed to waterfall (2013) • 1500 people, massive number of suppliers • Claims • Problems from Waterfall-like contract • Command and Control culture • Contractors learn agile on the fly; never done agile before • disguise traditional processes as agile (C) 2012 USC-CSSE http://www.computerweekly.com/news/2240187478/Why-agile-development-failed-for-Universal-Credit
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
Spiral Family of Models 1988 Where do OC&A’s come from? 1994 Where are phases and milestones ? 1996 1999 How to avoid model clashes? What is really required and optional ? 2001 How to make the process more lean and agile? 2005 • How can spiral be mapped onto system acquisition phases and milestones? • How can hardware, software and human factors be integrated? 2007 2010 (C) 2012 USC-CSSE
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
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
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
Spiral/RUP compatibility (C) 2012 USC-CSSE
Model-Based (System) Architecting and Software Engineering (MBASE) (C) 2012 USC-CSSE
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
ICSM: The Incremental Commitment Spiral Model (C) 2012 USC-CSSE
Spiral Family of Models 1988 Where do OC&A’s come from? 1994 Where are phases and milestones ? 1996 1999 How to avoid model clashes? What is really required and optional ? 2001 How to make the process more lean and agile? 2005 • How can spiral be mapped onto system acquisition phases and milestones? • How can hardware, software and human factors be integrated? 2007 2010 (C) 2012 USC-CSSE
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
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
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
V with multiple deliveries (C) 2012 USC-CSSE
The death of V-model ??? (software development) • Does not accommodate the change • Inefficient testing technique (write test as soon as the architecture is done) • Definitely not in System Engineering • May be just not popular in Software Engineering http://www.harmonicss.co.uk/index.php/tutorials/software-engineering/56?task=view (C) 2012 USC-CSSE
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
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
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
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
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
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
The seven wastes of Software Development • Partially Done Work – tend to become obsolete; no idea it will eventually work; waste resources; should do risk-reduction and waste-reduction • Extra Processes – paperwork necessary?, try to use table, template • Extra Features – waste time and resources • Task Switching – put people in multiple projects • Waiting – causes delay; decide as late as possible • Motion – even walking down the hall waste time; sit in the same room • Defects – detect defect as soon ASAP • Management activities – instead of tracking status, make sure work flows properly; reduce tracking time (C) 2012 USC-CSSE
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
http://www.codeproject.com/KB/architecture/scrum.aspx (C) 2012 USC-CSSE
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
Scrum vs ICSM (C) 2012 USC-CSSE
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
XP principles (C) 2012 USC-CSSE
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
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
Scrum vs XP http://tommynorman.blogspot.com/2009_01_01_archive.html (C) 2012 USC-CSSE
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
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 Traffic at 100 percent capacity does not move Ref: David Anderson, XP 2010 , Trondheim, Norway http://moduscooperandi.com/personalkanban/why-limit-work-in-progress/ (C) 2012 USC-CSSE
Visualize Workflow & Limit WIP At a morning standup meeting…… • Observe workflow • What is happening? • Where is the bottleneck? • Check performance • Velocity, backlog • Identify improvement opportunities David Anderson, XP 2010 , Trondheim, Norway (C) 2012 USC-CSSE
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
How to start assigning tasks? (C) 2012 USC-CSSE
Limit Work-In-Progress If urgent, drop the green task, because it has the lowest cost of delay (C) 2012 USC-CSSE
Example of Kanban Board (C) 2012 USC-CSSE
Kanban applied to Scrum • http://www.youtube.com/watch?v=0EIMxyFw9T8 (C) 2012 USC-CSSE
Comparing ICSM with Lean and Agile (C) 2012 USC-CSSE
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