Scrum and Agile methods The real world



Similar documents
Introduction to Agile Software Development. EECS 690 Agile Software Development

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

History of Agile Methods

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

Agile QA s Revolutionary Impact on Project Management

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

D25-2. Agile and Scrum Introduction

Agile Project Management

Scrum for Managers, Zurich March 2010

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

Agility? What for? And how? > Warm-up Session Agile Tour Vienna 2014

PMP vs. Scrum Master

Agile in Financial Services A Framework in Focus

Agile to the Bone. Introduction to Agile by Pietari Kettunen

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

Agile Project Management Jim Highsmith. Chapter 1. The Agile Revolution

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

WHITEPAPER GET MORE WORK DONE: A MANAGER S GUIDE TO MIXING AGILE AND WATERFALL

INF5120 Modellbasert Systemutvikling

How To Model In An Agile World

Agile & the Declaration of Interdependence: A new approach to Process Improvement

Risk Management. What is risk? Boehm s Top 10 Risks [P2] Welcome to Lecture 3 Risk management & Agile PM

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL

Agile Execution for and Beyond IT

Agile project management is a style of project management that focuses

Agile Estimating: My DPS Dissertation

AGILE PRODUCTIVITY METRICS

Agile Software Development in the Large

Agile Processes. -- Heinrich Heine

the team level and is characterized by self organizing, cross functional teams doing iterative development in what are called Sprints.

TecEd White Paper User-Centered Design and the Agile Software Development Process: 7 Tips for Success

STATE OF MICHIGAN SUITE

Measuring the Impact of Scrum on Product Development at Adobe Systems

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

The Agile Manifesto August 2001

Best Practices Fusion: Lean Six Sigma and ITIL. By Gary A. Gack

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

Agile Software Development

Software processes that are:

CSSE 372 Software Project Management: More Agile Project Management

State of Michigan (SOM) SUITE Agile Process Guide. Version 1.0. July Department of Technology, Management & Budget

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

Capstone Agile Model (CAM)

Agile user-centred design

How To Plan A Project

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS

PMI Agile Certified Practitioner (PMI ACP) Boot Camp Course AG05; 4 Days, Instructor-led

PROJECT RISK MANAGEMENT MODEL BASED ON PRINCE2 AND SCRUM FRAMEWORKS

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Software Engineering I (02161)

A Conceptual Model for Agile Practices Adoption

2. AGILE ADOPTION CASE STUDIES

On the Agile Development of Virtual Reality Systems

Introduction to Agile Software Development Process. Software Development Life Cycles

Agile Software Development Approaches and Their History. Volkan Günal

Agile, Rails, and the Cloud. Why your customer should care about Agile, Rails and the Cloud

Agile with XP and Scrum

Introduction to Agile Scrum

Agile for Product Owners

Introduction to Agile Methods

Agile Methodologies XP and Scrum

Manifesto for Agile Software Development

CSSE 372 Software Project Management: Managing Agile Projects

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

1. CMMI and Scrum TWO BRANCHES OF SOFTWARE DEVELOPMENT

TESTING IN AGILE SOFTWARE DEVELOPMENT

Software Process. Successful Software Production between Extreme Programming and Rational Unified Process Short Version

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

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

Agile Development Overview

What Agile of Agile Principles

SECC Agile Foundation Certificate Examination Handbook

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Agile Methodologies. Venkat Subramaniam.

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

Agile. 2nd IBM Limited Edition. By Amy Silberbauer and Bernie Coyne

The Agile Manifesto is based on 12 principles:

Laboratório de Desenvolvimento de Software

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

How to manage agile development? Rose Pruyne Jack Reed

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

AGILE PHILOSOPHY APPLIED TO PROJECT MANAGEMENT

Course "Softwareprozesse" Agile Methods: Crystal, Scrum, Lean SD, Kanban,

Persona driven agile development

Agile Testing and Extreme Programming

Agile Software Development. Stefan Balbo / Patrick Dolemieux

Lean QA: The Agile Way. Chris Lawson, Quality Manager

Neglecting Agile Principles and Practices: A Case Study

RISK MANAGMENT ON AN AGILE PROJECT

An Example Checklist for ScrumMasters

Agile Development with C#

Agile and Secure: Can We Be Both?

Transcription:

Scrum and Agile methods The real world Claus Nyhus Christensen cnc@atira.dk Atira

About me Master in CS from AAU 2001 2001-2004: Worked at Trifork as a kernel developer of a Java EE server 2004-2007: Worked at Trifork as a Scrum master consultant 2007 - : Head of department, project manager and Scrum Master at Atira

What is Agile? A methodology? Scrum, XP, Crystal Clear, Lean, Kanban Just a buzzword? 85 120 173 books on Amazon is tagged with Agile Agile and Iterative development, User Stories Applied, Agile Software Development with Scrum Refactoring in Visual Basic, Python Cookbook, Beginning POJOs, Extreme programming Refactored

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 Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler That is, while there is value in the items on the right, we value the items on the left more. James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas

From Contracts to backlogs Written specifications/contracts do not work You cannot write everything your system should do down You cannot communicate your intent precisely No room for improvement during the development But we need something

User stories Describes functionality that will be valuable to either a user or purchaser of a system User stories are composed of three aspects

Written description Short heading, typically one or two lines Often written on an index card Used throughout the project for Planning Reminder

Conversations Used to uncover the details of the story Takes place throughout the project, e.g., When estimating the story When implementing the story Notes from these conversations can be added to the index card

Acceptance tests Specify and describe details about the story as tests, e.g., some of the details uncovered during the conversations Use the tests to determine when a user story is complete, i.e., acceptance tests Write the tests on the back of the index card

Why is this good? Emphasis on verbal rather than written communication Comprehensible for all Encourage deferring details until you have a better understanding of your needs Good size for planning

Example

So how do we write them? Start by looking at user roles for the system Identify and select user roles User roles will help you focus when you are writing user stories

Method for identifying and selecting user roles Brainstorm an initial set of user roles Organize these roles Consolidate the roles Refine the roles

Brainstorm Job Seeker Job Poster Layoff Victim Recruiter Geograp hic Searcher Resume Reader First Timer College Grad Monitor

Organize Job Seeker Job Poster Layoff Victim Recruiter Geograp hic Searcher Resume Reader First Timer College Grad Monitor

Consolidate Job Seeker Layoff Victim Geograp hic Searcher First Timer Recruiter Internal Recruiter External Recruiter

Back to writing user stories Trawling for requirements Metaphor for our work with identifying and writing user stories Different techniques/methods can be applied

Story-Writing Workshop One or more meetings including developers, users, product customers etc. Write as many user stories as you can Do not prioritize or estimate the stories at the workshop Conduct at least one story-writing workshop before the project/release starts

Method Select one of the user roles for the system Draw a box on the whiteboard; this is the roles main screen Ask: What can the role do here? For each answer, draw a line to a new box and label that box

Example Post Resume Post Jobs Home page Employer entrance Review Applicants Search Jobs Job Results Job Details

Ask yourself questions like What will the user most likely want to do next? What mistakes could the user make here? What could confuse the user at this point? What additional information could the user need?

Resulting user stories A Job Seeker can post her resume An Employer can post jobs An Employer can review submitted resumes A Job Seeker can search for jobs A Job Seeker can view results of jobs that match a search

Helpful guideline Use the user roles in formulating the user story Helps you focus on the user roles Gives more precise definition of the user story As a <role> I can <functionality> in order to <goal>

Product backlog Your collection of user stories is you product backlog after You estimate them Your customer has prioritized them

Estimating So, when will you be done? We create estimates for user stories Estimates are used in planning Releases Iterations

Estimating Before you start to estimate, realize Estimates are done by the team Estimates are owned by the team How much knowledge do you have about the matter you are estimating Estimates are estimates!

Making this practical Easy (and fun) method for estimating Combine multiple estimation techniques: Expert opinion, analogy, disaggregation Helps you ensure that your estimates are Thoroughly discussed A team effort - not just individual opinion

You need The product owner/customer The entire development team A stack of user stories to estimate Small pieces of paper or a set of planning poker cards

Let the game begin As a <role> I can <functionality> in order to <goal>

Discussion As a <role> I can <functionality> in order to <goal>

Second round As a <role> I can <functionality> in order to <goal>

The decision As a <role> I can <functionality> in order to <goal>

Why this works Brings together expert opinions Ensures a lively discussion Estimators are asked to justify their estimates No free ride Estimators cannot just say: I agree with him Average individual estimates

So what if... The customer does not want to play along? You already have a written contract/specification? Do it anyway! It helps structure your work internally How can you make a bid for a project specified in a 50 page contract without doing it?

Iterations Gives rhythm to the development Start on a tuesday Keep the same lenght thoughout the project Remember! Analysis, design, development, test, integration, release

The rhythm of an iteration Day 1: Iteration meeting Day 1 or 2: Iteration review and planning Day 3-12: We work :) Day 14: Feature freeze, release Day 15: Next iteration meeting

The iteration meeting Two main activities Demo of the system Developers demo Customers comment Pick user stories for the next iteration Discussion of the user stories takes place here

Working with tails User story 1 User story 2 User story 3 User story 4 User store 5 User story 6 Iterations

Work in an iteration Start by breaking user stories into tasks Include only work that adds value to this project Be specific until it s a habit Meeting counts How about bugs?

How to store tasks Post-it notes on a whiteboard is great Tasks can easily be updated Progress can easily be monitored Use areas on the whiteboard for todo, in progress and done Alternatively a big table on the whiteboard Try to avoid using a computer system :)

The whiteboard

Tracking progress Use a burndown chart Shows amount of work remaining at the start of each day Be careful how you read the chart!

Iteration burndown chart

Tracking the whole project Calculate the velocity at the end of each iteration Only count stories that are done! Well written, well factored, checked in, complies with coding standards and passes all tests Change release plan as velocity changes How much can be in the release? Release date?