Agile Software Development



Similar documents
Introduction to Agile Software Development

Introduction to Agile Software Development. EECS 690 Agile Software Development

How to manage agile development? Rose Pruyne Jack Reed

Agile Development Overview

Scrum for Managers, Zurich March 2010

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Agile in Financial Services A Framework in Focus

Introduction to Agile Software Development Process. Software Development Life Cycles

History of Agile Methods

Laboratório de Desenvolvimento de Software

Agile Software Development. Stefan Balbo / Patrick Dolemieux

Agile Project Management Mapping the PMBOK Guide to Agile Practices. Michele Sliger

PMP vs. Scrum Master

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Agile Project Management

Introduction to Agile and Scrum

Agile QA s Revolutionary Impact on Project Management

Agile Software Development compliant to Safety Standards?

Introduction to Agile Scrum

D25-2. Agile and Scrum Introduction

Scrum. SE Presentation. Anurag Dodeja Spring 2010

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Introduction to Agile

Software processes that are:

Introduction to Agile Methods

Agile Project Management: Adapting project behaviors to the software development environment

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

Agile Software Development and Service Science

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

Agile Testing and Extreme Programming

SECC Agile Foundation Certificate Examination Handbook

Distributed Agile Development. Bapiraju Nandury Product Development Manager Bangalore Development Centre

Agile Project Management

CSPO Learning Objectives Preamble. Scrum Basics

RISK MANAGMENT ON AN AGILE PROJECT

Software Life Cycles and Configuration Management

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Agile to the Bone. Introduction to Agile by Pietari Kettunen

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Agile and Secure: Can We Be Both?

Lean Agile Scrum Business Value Development and Delivery using Agility. Brenden McGlinchey Software Done Right, Inc.

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Agile Project Management

Scrum and Agile methods The real world

"Bezpieczny Projekt"

Chapter 6. Iteration 0: Preparing for the First Iteration

Testing in an Agile Environment

Agile Software Development and Service Science

Digital Transformation of the Enterprise for SMAC: Can Scrum help?

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

Extreme Programming, an agile software development process

Comparing Agile Software Processes Based on the Software Development Project Requirements

AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Scrum: A disciplined approach to product quality and project success.

Agile with XP and Scrum

Issues in Internet Design and Development

The Co-Evolution of Agile and Continuous Integration. Jeffrey Fredrick Technical Evangelist

Applying Lean on Agile Scrum Development Methodology

How To Plan A Project

Agile Projects 7. Agile Project Management 21

WHAT MAKES AGILE DEVELOPMENT DIFFERENT?: A CASE STUDY OF

Agile Blending. Rachel Davies

AGILE & SCRUM. Revised 9/29/2015

CSSE 372 Software Project Management: More Agile Project Management

Software Development Methodologies

The Agile Manifesto is based on 12 principles:

Agile Systems Engineering: What is it and What Have We Learned?

Agile Software Development in the Large

Agile Software Development Methodologies and Its Quality Assurance

LEAN AGILE POCKET GUIDE

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Software Engineering

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Agile Methodologies XP and Scrum

Software Requirements and Specification

Capstone Agile Model (CAM)

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Chapter 1 - Introduction

USCIS/SPAS: Product Backlog Items and User Stories 4/16/2015. Dr. Patrick McConnell

The Agile Project Manager

Success Factors of Agile Software Development

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson

Five Things Every Software Executive Should Know About Scrum

Extreme Programming, an agile software development process

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson

Using Perforce to Facilitate Agility

Vragen. Software development model. Software development model. Software development model

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Medical Device Agile Systems Development Workshop

Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012

SCEA 2010 EST06. Estimating Issues Associated with Agile. Bob Hunt. Galorath Incorporated

Transcription:

Agile Software Development Application in the Medical Device Industry Kelly Weyrauch Medtronic, Inc. (29 April 2008)

Introduction Purpose Provide an introduction to Agile Software Development as it applies to the Medical Device Software world Desired Result of the Meeting Understand the basics of Agile What it is Why you should use it How you can use it Determine whether you want to learn more 29 April 2008 Agile Software Development - 2

Introduction Agenda What is Agile? Why is it a good fit for Medical Device Software development? Principles / Values Benefits Practices Worries / Myths / Pitfalls / Strengths 29 April 2008 Agile Software Development - 3

What Is Agile? Agile Methods provide a framework for collaborative teams to reliably deliver software using a highly iterative approach that provides frequent feedback for continuous improvement of the process and product. Key concepts include: Constant inspection and adaptation Focus on customer value Data driven; schedule data, product value Increased focus & synchronization Emphasis on collaboration, teamwork and learning Analogous to Lean Manufacturing Change tolerant; more business opportunities Open, highly visible, inclusive 29 April 2008 Agile Software Development - 4

Agile History Many variants (Extreme Programming (XP), Scrum, Crystal, DSDM, Lean SW, ) Values summarized by the Agile Manifesto Roots in the IT and/or Consultant world Dramatic rise in popularity Publications, conference attendance, maturity of applications, breadth of businesses Crossed the Chasm 29 April 2008 Agile Software Development - 5

What Is Agile? Agile Framework Values/Principles Why is it the way it is, why do we do what we do Things we believe to be true about our world Benefits Why is this a good thing What am I trying to be good at / better at Practices How to do it Techniques for cooking, not just a bunch of recipes 29 April 2008 Agile Software Development - 6

Agile Values The 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. Manifesto for Agile Software Development, www.agilemanifesto.org 29 April 2008 Agile Software Development - 7

Agile Values The 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. Manifesto for Agile Software Development, www.agilemanifesto.org 29 April 2008 Agile Software Development - 8

Agile Values The 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. Manifesto for Agile Software Development, www.agilemanifesto.org 29 April 2008 Agile Software Development - 9

Agile Values The 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. Manifesto for Agile Software Development, www.agilemanifesto.org 29 April 2008 Agile Software Development - 10

Agile Values The 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. Manifesto for Agile Software Development, www.agilemanifesto.org 29 April 2008 Agile Software Development - 11

Agile Values/Principles: General Simplicity Deliver Customer Value Embrace Change Inspect and Adapt Eliminate Waste Maximize Transparency Iterate Incrementally Cultivate Collaboration 29 April 2008 Agile Software Development - 12

Agile Values/Principles: Specific to our world Validation Tight connection to the customer Regular validation points Safety / Risk Management Embedded into every iteration, not separate Verification Test Driven Design (aka Test First ) Process Process ownership - Engineers allowed to think Value-added process Time spent in the right place 29 April 2008 Agile Software Development - 13

Agile Benefits: Our List Quality Productivity Predictability Find bugs sooner Improve feedback Faster response to change Better & faster testing Encourage small-team atmosphere Increase visibility of project levers Improve learning Engage team Empower team Increase collaboration What s on YOUR list? 29 April 2008 Agile Software Development - 14

Agile Practices Team Structure Definition (Requirements, Testing) Planning Rapid Iteration Verification Validation Simple Design 29 April 2008 Agile Software Development - 15

Agile Practices: Team Structure Team Ownership (of the Product and the Process) Shared ownership, guided by roles Multiple verification points to address independence Collaboration (Pair Programming, Co-Location, Collective Ownership (of code)) Team Reflections Roles Project Manager Role Coach Role Customer Role Tracker Role Tester Role Developer Role 29 April 2008 Agile Software Development - 16

Agile Practices: Definition (Requirements, Testing) Product Backlog Features Stories Sub-Stories Customer-facing Tests as Requirement Acceptance Tests Functional Tests Design-level testing 29 April 2008 Agile Software Development - 17

Agile Practices: Planning If you can t plan well, then plan often Layers of Planning Mike Cohn. 2006. Agile Estimating and Planning. Prentice Hall As driven by: Delivering customer value Reducing risk Portfolio Product Release Iteration / Sprint Day 29 April 2008 Agile Software Development - 18

Agile Practices: Planning - Rapid Iteration Releasable software Able to ship at any time Minimize/eliminate Design Debt Sprint Cycle Short-sprints of delivering customer value Burndowns Mechanism to plan, track, re-plan 29 April 2008 Agile Software Development - 19

Agile Practices: Verification Test-Driven Development: We re done when the tests say we re done Determine how the SW will be verified Unit tests, Module tests, Integration Tests, System Tests, Analysis Write tests first, automate them, write code The Tests are the Requirements Collaboration (Pair Programming, Switching Pairs, Third Party Review) Continuous Integration Build at least once a day Run all tests constantly Don t break the build 29 April 2008 Agile Software Development - 20

Agile Framework: Practices Validation Customer Role On-Site Customer, tightly coupled to the team Acceptance Tests We re done when the customer says we re done Demo 29 April 2008 Agile Software Development - 21

Agile Framework: Practices Simple Design YAGNI Refactoring Patterns Shared Code Ownership Coding Standards 29 April 2008 Agile Software Development - 22

Worries, Fears, Bad Rumors 29 April 2008 Agile Software Development - 24

Worries, Fears, Bad Rumors Agile says you don t need documentation Produce what you need Be sure you need it Make it relevant to those producing it, not just to those consuming it 29 April 2008 Agile Software Development - 25

Worries, Fears, Bad Rumors Agile says you don t need a plan Agile planning is: You re done when you re done Utter nonsense If you can t plan well, then plan often Plans change embrace that as a good thing Increases predictability Defer decision-making to The Last Responsible Moment 29 April 2008 Agile Software Development - 26

Worries, Fears, Bad Rumors Agile is undisciplined Emphasizes the discipline of the team that owns its processes/practices De-emphasizes the discipline of an imposed process "Simple, clear purpose and principles give rise to complex, intelligent behavior. Complex rules and regulations give rise to simple, stupid behavior. - Dee Hock, VISA Founder 29 April 2008 Agile Software Development - 27

Worries, Fears, Bad Rumors How much will FDA get into the practices? Depends on how deep they want to go. Depends on Auditor Expectations. Suitability of XP/Agile may depend more on Culture and Expectations than Regulation. If Auditors expect to see artifacts that look like Waterfall, will require training to map those expectations into the Agile world. 29 April 2008 Agile Software Development - 28

Closing Is Agile suitable to the safety-critical world? If you do it well, then yes. If you do it badly, then no. Some elements of Agile bring high value to the safety-critical world Works very well in the context of a robust Quality System 29 April 2008 Agile Software Development - 29

What s Next Questions, comments, worries? What else do you want to know? Desired Result of the Meeting Understand the basics of Agile What it is Why you should use it How you can use it Determine whether you want to learn more 29 April 2008 Agile Software Development - 30

References Mike Cohn, Agile Estimating and Planning, Prentice Hall, 2006 Ken Schwaber and Mike Beedle, Agile Software Development with Scrum, Prentice Hall, 2001 Mary Poppendieck and Tom Poppendieck, Lean Software Development, An Agile Toolkit, Addison-Wesley, 2003 Alistair Cockburn, Agile Software Development, Addison-Wesley, 2002 Robert C. Martin, Agile Software Development, Principles, Patterns, and Practices, Prentice Hall, 2002 www.agilealliance.com Home of the Agile Alliance www.controlchaos.com Home of Scrum www.scrumalliance.org Another Scrum site www.xprogramming.com Ron Jeffries Extreme Programming website www.extremeprogramming.org Another Extreme Programming website Agile Conference www.agile2008.org 29 April 2008 Agile Software Development - 31