Scrum, Creating Great Products & Critical Systems

Similar documents
Quest 2015 Webinar Series:

Risk Management. Kickoff Presentation

Managing a Project and Keeping Sane While Wrestling Elegantly With PMBOK, Scrum and CMMI (Together or Any Combination)

Comparing Scrum And CMMI

FIT2101 Software Engineering Process and Management

Introduction to Agile (Scrum)

Two Branches of Software Engineering

Introduction to Agile and Scrum

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

18-642: Software Development Processes

Software Development*

It is not just programming. Cartoon source:

Agile Testing - Joe Caravella 1

Agile Projects 7. Agile Project Management 21

SCRUM - LESSONS FROM THE TRENCHES

Requirements Architecture - Agility

approach to successful project

What is Continuous Integration. And how do I get there

TSP*-Agile Blend: The Gun Smoke Clears

Reducing Business Risk

Agile Software Development Techniques for Small Scale Research Projects. how to not go down the rabbit hole

The Use Case Technique: An Overview

Waterfall Vs. Agile PM

How to Prepare for and Implement a Project Using Scrum

An Overview of Software Process

Chapter 3 Agile Software Development. Part 1b

Chapter 4 Document Driven Approach for Agile Methodology

Ian Koenig Quality IS Projects, Inc. Philippines Chapter Project Management Institute June 8 th 2010

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Introduction to Software Engineering: Project Management ( Highlights )

Managing Projects of Chaotic and Unpredictable Behavior

Agile and CMMI : Disciplined Agile with Process Optimization

Software Process. Overview

Succeed with Agile at Scale

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Owning An Agile Project: PO Training Day 2

The Software Life Cycle

AHGILE A N D B O O K

AGILE LESSONS FROM THE NEW PMBOK. Presented by Eddie Merla, PMI-ACP, PMP

Thriving in an Agile Environment. Kathryn Poe Rocky Mountain Chapter Feb 16, 2012

Development Methodologies

Agile Certified Professional

[control] [data] [process] [strategy] [partners] [testing] [validation]

APRAJITA MATHUR. Compliance and Agility How it can be done!

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.

Processes and Life- Cycles. Kristian Sandahl

The Software Life Cycle

Microsoft Exam Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management Version: 9.0

Planning the Work How to Create a Manageable Enterprise GIS Project Plan

Watson Internet of Things. Agile Development Why requirements matter

Quality Management_100_Quality Checklist Procedure

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Software Process Improvement plan

Software Life Cycles and Configuration Management

Software Development

Quality 24 Process Improvement 26 Real processes. Product Quality. Quality Management. Quality Management. Quality Plan

SWE 211 Software Processes

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Presented by: and. Communicating. Agile. Project Status. Management. Wednesday, April 10, 13

CSE Tue 11/06. Nadir Weibel

Johanna Rothman Part II Design and Manage an Agile and Lean Project Chapter 5 Start Your Agile Project Right. Copyright 2017

CSE Tue 11/06. Nadir Weibel

A Continuous Delivery Journey SHOBHA SUBRAMONIAN APRIL 05, 2018

Ralph Volbert, Volker Schiller June 2017 FROM PTC TO JIRA. Introduction of Jira at Diebold Nixdorf

Using Modern Methodologies with Maintenance Software

No Bull Agile. Marc J. Balcer September 2017

Software Design COSC 4353/6353 D R. R A J S I N G H

Using Agile Software Development to Create an Operational Testing Tool

Agile-R. intecs Solutions. A new approach to combine Agile and EN for Railway software development. Agile-R. Trademark registered

Processes and Life- Cycles. Kristian Sandahl

AGILE Realities. Presenters: Chris Koo (Edward Jones) Blake Moyer (Edward Jones) Joan Romine (Boeing)

Child Welfare Services New System Project. Requirements Management Plan

SCRUM. A Case Study on Agile Processes in Curriculum Development at Red Hat. Jim Rigsbee. Fall Conference 2016

Can Your Proposal Process Be More Agile?

Upgrade your project with Far and Wide

Management by Consensus

Agile Transformation Key Considerations for success

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

CSC301. Scrum, detailed view of an agile process. CSC301, Winter 2016

Flexible, Fast Development. How EBSCO develops software

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

Building High Assurance Systems with SAFe 4.0

Making Processes Really Simple and Effective Using Lessons Learned from Surgical Checklists

improving It s what we do. TM

Agile Software Development:

Ulf Eriksson

COMMITMENT. Software Quality for Non-Software Professionals

Scrum Team Roles and Functions

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Why SCRUM I O A N N I S K O S T A R A S A G I L E C R E T E


Using Lessons Learned from Medical Checklists to Simplify CMMI Processes

PMBoK 6 th Edition new & revised elements

Agile Software Development

The Changing Roles of BAs and QAs in a SCRUM world

Using codebeamer to Achieve

Our Software Delivery Methodology What to Expect in the Development Process

Agile Program Development. Agile Manifesto 9/3/2013. What is Agile Development? 12 Principles of Agile Development 1 of 4

Transcription:

Scrum, Creating Great Products & Critical Systems What to Worry About, What s Missing, How to Fix it Neil Potter The Process Group neil@processgroup.com processgroup.com Version 1.2 1

Agenda Scrum / Agile Overview What to Use From The Agile Manifesto All of it / some of it? Definition of Scrum Scrum Risks to Look Out For and What to do About Them Mistaking speed for progress 1-liner requirements (the devil is in the details) Missing architecture / design Missing final system test / validation Missing configuration management Missing risk management Missing process assurance (known as ScrumBut) Version 1.2 2

Definition of Agile and Scrum Agile Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Wikipedia. Scrum Scrum is an agile process for software development. Scrum consists of predefined milestones and events that scope, estimate, plan and status the project. Version 1.2 3

Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Reference: http://www.agilemanifesto.org, 2001 Version 1.2 4

What to Use? We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Both, based on goals and challenges That is, while there is value in the items on the right, we value the items on the left more. Reference: http://www.agilemanifesto.org, 2001 Version 1.2 5

Definition of Scrum Team defined tasks Potentially Deliver Potentially Deliver 1 day 1 day Product Backlog Release Planning Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Analysis 2-4 week Sprint 2-4 week Sprint Version 1.2 6

Scrum Positives Positives Work is chunked in 2-4 week increments (Sprints). Scope changes are managed using the Backlog, iteration planning and the rule No changes during a sprint. Small (1-4 week) iterations create team momentum and early feedback on progress and technical solutions. Scrum process can be learned and used in less than 2 days. Daily Standup meetings and Burndown charts provide quick and easy project status. Engineering practices (often used in Agile) can reduce risk: Automated unit tests. Pair programming (2 developers working together). Test driven development (write a test first). Continuous integration (e.g., daily builds to find problems). Version 1.2 7

Scrum Risks to Look Out For and What to do About Them Version 1.2 8

Does 100% Scrum do What You Need? Plan for software aspects of certification Software development plan Software verification plan Software configuration management plan Software quality assurance plan System requirements Software requirements standards Software design standards Software code standards Software design description Source code / Executable object code Review of all requirements, design and code Testing of executable object code Code coverage analysis Unit testing Integration testing Black-box and acceptance testing Software quality assurance records Software conformity review Traceability Independent testing If your team is full-scrum know what is missing Version 1.2 9

Mistaking Speed For Progress Version 1.2 10

Speed vs. Progress With no: Design: Architecture + design notes Peer-reviews to find defects Checks for interface for errors System test Analysis of verification results: e.g., defect density, pass/ escape rate, cause Great product? Implement yourself into a corner? Version 1.2 11

1-Liner Requirements (The Devil is in The Details) Version 1.2 12

Requirements / Backlog Priority User Story Estimate (Points) As an account owner, I want to withdraw cash As an account owner, I want to deposit cash As an account owner, I want to deposit check(s) As an account owner, I want to deposit foreign check(s) Typical format: As a <user>, desired action 1-liners can be ambiguous and lead the developer to guess Copyright 2004-2014 The Process Group. All rights reserved. www.processgroup.com Version 1.2 13

Sample Use Case for an ATM 1 Automated Teller Machine [Elicitation question] Name: Withdraw Cash [What does the user want to do?] Actor: Account Owner [Who?] Description: The user withdraws a specific amount of cash from a specified account. Trigger: Account Owner selects Withdrawal action [What initiates it?] Preconditions: [What state is the user / system before the event?] 1. The Account Owner is logged in to the ATM. 2. The Account Owner has at least 1 account with a positive balance. 3. The ATM contains cash. Postconditions: [What state is the user / system after the event?] 1. The requested amount of cash has been dispensed. 2. The account balance is reduced by the amount withdrawn plus any fees. 3. The ATM cash balance is reduced by the amount withdrawn. Priority: High Version 1.2 14

Sample Use Case for an ATM - 2 Normal flow: [What is the ideal flow?] Actor Actions 1. Select Withdrawal action. 3. Select desired account. 5. Enter desired amount. 7. Remove cash from dispenser. System Responses 2. Display user s accounts. 4. Ask user to enter amount. 6. If amount is okay, dispense cash and debit account. Alternative Flow: [Any alternatives?] Step 4: display list of common amounts, let user select one Exceptions: [Conditions the system needs to deal with?] Step 6: amount is not a multiple of $20.00 Step 6: amount exceeds $400 Step 6: amount exceeds account balance Step 6: amount exceeds cash available in ATM Version 1.2 15

Missing Architecture / Design Missing Final System Test / Validation Version 1.2 16

Design Why design? Identify potential sticky areas that need to be investigated. Find errors earlier. Clarify and communicate concepts and definitions to others. Design example: Architecture, interfaces, data definitions, constraints» e.g., design for testing, expansion, security, portability and technology.» Textual design notes (in backlog or code header), modeling languages, event tables, flow/timing diagrams, pseudo code. You might consider: - Sprint N: 80% design, 20% coding/test. - Sprint N+1: 60% design, 40% coding/test. - Sprint N+2: 40% design, 60% coding/test. processgroup.com/monthlytidbits.html#tidbit10 Version 1.2 17

Final System Test / Validation Sprint processgroup.com/monthlytidbits.html#tidbit12 Version 1.2 18

Missing Configuration Management Version 1.2 19

What Version of _ Are You Working On? What outputs do you want to: Not lose Share (the same version) Know the history of Find easily with confidence Consider: Versioning / labeling (baseline) Tracking changes after a baseline Making sure everyone has version X Tools: SVN, GIT, Windchill, SharePoint.. Product Backlog Release Planning Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Version 1.2 20

Missing Risk Management Version 1.2 21

Where to Add Risk Management Agile perspective High-risk features are worked on in earlier sprints. Revision: Add risk management to: Release Planning Sprint Planning Daily Standups Product Backlog Release Planning Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Version 1.2 22

Risk Management Action items will likely be more numerous and detailed Status of action items Risk Item (Potential Future Problem) Consequence Lkli. Imp. Pri. Action- Likelihood Action-Impact Who When Status New operating system might not be stable Unable to ship 10 10 100 Test OS more Identify 2nd OS Joe System communication problems with XYZ Feature x unavailable 8 9 72 Develop sys interface doc Add replan milestone Kim We may not have the requirements right Requirements may change late in the cycle Database S/W might be late Database expert might leave Delay next project + no usage of demo 9 6 54 Prototype of UI Use Case style requirements New defects 7 7 49 Prototype top 10 requirements Revenue delay Schedule delay 4 8 32 Check with supplier 2 10 20 Make sure Jim is happy Total 327 Incremental release Limit distribution Limit distribution Help supplier Earmark Fred Lois Joe Pete Jane Keep track of the top 20% or top 2-3 risks Version 1.2 23

Missing Process Assurance (Known as ScrumBut) Version 1.2 24

ScrumBut I do Scrum, but I don t do: User stories Automated testing Sprints Burndown charts Retrospectives What does your team do? Are they Agile or Agile-declared? Version 1.2 25

Adding Gates and Governance Establish gates at the end of each, or several, sprints: Negotiate upfront what will be available at the gates (some design, some code, some tests). Work with process QA staff early so that there is agreement as to what will be audited and when. Product Backlog Release Planning Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Analysis Design Code Test Sprint Review Sprint Retrospective Review Backlog Sprint Planning Version 1.2 26

Summary Scrum was initially designed for small co-located teams: It does not automatically contain everything you want. Not all Agile/Scrum teams actually do Agile/Scrum: Ask them what they do! Scrum teams might see little value in documentation : Use documentation to address communication and memory challenges. Capture information in current tools or team workflow tools (e.g., RallyDev, Jira). Don t be scared to add practices (and not break Scrum): Add practices to sprints to increase quality & reduce risk:» e.g., Requirements, architecture, design WHILE creating working code. Version 1.2 27

Q&A Version 1.2 28

Additional Material Version 1.2 29

Example Risk Mitigation Actions -1 Potential Problem Using Scrum Ambiguous 1-line user stories. Little/no design. Design flaws. Architecture difficult to modify. No system-level testing in sprints leading to system defects. Bring Your Own Requirements Analysis Design System testing Example Elicit requirements. Use Cases. Peer review requirements. Architecture diagram. Larger % of design activity in initial sprints: Sprint 1: 80% design, 20% code. Sprint N: 5% design, 95% code. Add system testing as a % of later sprints. Add a test/cleanup sprint. Version 1.2 30

Example Risk Mitigation Actions -2 Potential Problem No version control of documents or code leading to loss or incorrect versions being used. Scrum But: We do Scrum, but we don t have a backlog, Product Owner, sprint backlog or do daily standup meetings. Surprises (technical, personnel, supplier) that could have been foreseen and mitigated. Scaling for large teams, or many small teams that are dependent upon each other. Bring Your Own Configuration management Process Assurance Risk Management Program management Example Naming conventions. CM tool / storage definition. Access / edit controls. Independent member of one Scrum team audits the practices of another Scrum team. Monthly management review of Scrum activities and progress. Add a risk assessment to the Sprint planning meeting. Track risks in daily standup meeting. Add system engineering / program management. Version 1.2 31

Scrum - Under the Hood processgroup.com/monthlytidbits.html#tidbit12 Version 1.2 32

Hybrid or Separate All teams adopt some Agile / Scrum practices: Increments of 2-4 weeks (for whatever the work is). Potentially deliverable components early on. Burndown charts (based on points and effort). Continuous integration. Pair programming. Daily standup meetings. Alternative - keep traditional & Scrum alive: Define an architecture that compartmentalizes Scrum and non-scrum approaches» Scrum for high-risk, unknown sections.» Existing approach for everything else.» The two approaches meet at the system testing phase [Mike Cohn - Succeeding with Agile] Version 1.2 33

Incremental Life Cycle Hybrid option: Simplify existing deliverables from Waterfall. Planning Move to an incremental life cycle (a balance between Scrum and Waterfall). Requirements ò Defined points to manage change ò Prototype ò Architecture Sprint 1 Sprint 2 Sprint 3 ò ò Requirements Design Code Test Integrate? Release? ò ò ò Requirements Design Code Test Integrate Release? Requirements Design Code Test Integrate Release Version 1.2 34 ò

References Implementing Scrum (Agile) and CMMI Together. Process Group Post newsletter, March 2009. http://www.processgroup.com/pgpostmar09.pdf Adding Practices to Scrum to Achieve Your Goals (and comparison with CMMI Level 3). http://www.processgroup.com/pgpostapr2013.pdf Balancing Agility and Discipline: A Guide for the Perplexed, Boehm and Turner, Addison-Wesley, 2003. Agile Methods And Safety-critical Software, Peter Gardner, Silver Atena (YouTube). Version 1.2 35