Agile to the Bone. Introduction to Agile by Pietari Kettunen



Similar documents
Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

D25-2. Agile and Scrum Introduction

Introduction to Agile Software Development. EECS 690 Agile Software Development

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

Agile QA s Revolutionary Impact on Project Management

History of Agile Methods

Scrum and Agile methods The real world

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

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

Software Engineering Process Economy & Quality

Scrum for Managers, Zurich March 2010

PMP vs. Scrum Master

Agile Project Management

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL

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

Agile in Financial Services A Framework in Focus

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Introduction to Agile and Scrum

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

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

INF5120 Modellbasert Systemutvikling

SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

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

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

Agile Software Development in the Large

Secrets of a Scrum Master: Agile Practices for the Service Desk

What is Scrum? Scrum Roles. A lean approach to software development. A simple framework. A time-tested process

Agile Execution for and Beyond IT

How To Model In An Agile World

Agile Software Development. Stefan Balbo / Patrick Dolemieux

Scrum. SE Presentation. Anurag Dodeja Spring 2010

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

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

What is meant by the term, Lean Software Development? November 2014

Agile and lean methods for managing application development process

Capstone Agile Model (CAM)

Agile and lean methods for managing application development process

Getting Agile with Scrum. Mike Cohn - background

Agile Software Development

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

Incorporating Agile Methods in Large-Scale Systems

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

Scrum methodology report

Agile project management is a style of project management that focuses

Kanban vs Scrum Making the most of both

Agile Project Management

Introduction to Agile Scrum

Introduction to Agile Software Development Process. Software Development Life Cycles

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

1. CMMI and Scrum TWO BRANCHES OF SOFTWARE DEVELOPMENT

Program & Portfolio! Management using! Kanban! Copyright 2013 Davisbase Consulting. Limited Display License Provided to ASPE

CSSE 372 Software Project Management: More Agile Project Management

ScrumMaster Certification Workshop: Preparatory Reading

The Agile Manifesto is based on 12 principles:

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

CSSE 372 Software Project Management: Managing Agile Projects

Introduction to Agile Methods

MTAT Software Engineering

An Introduction to Scrum

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

STATE OF MICHIGAN SUITE

Scrum and Kanban 101

SECC Agile Foundation Certificate Examination Handbook

Global Business Services, GBS. Scrum and Kanban. Processer & IT nord seminar 5v3. Gitte Klitgaard Hansen, IBM

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

Agile Development Overview

Course Title: Managing the Agile Product Development Life Cycle

The Basics of Scrum An introduction to the framework

Measuring the Impact of Scrum on Product Development at Adobe Systems

Kanban vs Scrum Making the most of both

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

LEAN AGILE POCKET GUIDE

Agile with XP and Scrum

Agile Software Development and Service Science

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

Business Analysts in an Agile World. Christian Antoine

Introduction to Agile

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

Software processes that are:

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game. July Developed and sustained by Ken Schwaber and Jeff Sutherland

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

Laboratório de Desenvolvimento de Software

Course Title: Planning and Managing Agile Projects

How to manage agile development? Rose Pruyne Jack Reed

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

Agile user-centred design

No one has to change. Survival is optional. - W. Edwards Deming - Continue your Beyond Budgeting Journey with help from Agile, Lean and Scrum

"Bezpieczny Projekt"

AGILE PRODUCTIVITY METRICS

CSPO Learning Objectives Preamble. Scrum Basics

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

AGILE & SCRUM. Revised 9/29/2015

Software Requirements and Specification

Agile Scrum Workshop

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

5 Levels of Agile Planning: From Enterprise Product Vision to Team Stand-up

Certified ScrumMaster (CSM) Content Outline and Learning Objectives January 2012

agenda AGILE AT SCALE

Transcription:

Agile to the Bone Introduction to Agile by Pietari Kettunen

Agenda Problem with traditional software engineering Why Agile is the solution? Roots of Agile Values of Agile Common implementations Scrum Kanban Common pitfalls

Me Born in Finland M.Sc. on Software Engineering from Tampere University of Technology ~10 years of experience Employed by Swisscom Strategy & Innovation Contact: Twitter: @Pietrotull kettunen@gmail.com Blog: www.pietrotull.com

Traditional S.E. Modelled after construction engineering Architect Software Architecture Build tools

Nou Mestalla

Shame of Scotland

The Problem Only thing that is constant is change - Heraclitus

Construction vs Software low design cost & high build cost vs high design cost & minimal build cost

The Solution: Agile Adaptation Embrace change

The Essence of Agile Agile methods are adaptive rather than predictive - Martin Fowler

Roots of Agile Movement MIT Hacker Culture Organizational Patterns by James O. Coplien Toyota Manufacturing System The New Product Development Game -1986

Agile Manifesto February 2001 Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas

Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

12 Principles of Agile customer satisfaction embrace change frequent delivery collaboration motivated individuals face to face working software sustainable development technical excellence simplicity self-organizing team retrospection

Communication

Holy Trinity of Software Lean Agile Sofware Craftmanship Lean Software Development Agile Software Craftsmanship

Lean Three enemies of effectiviness Muda waste Mura inconsistencies Muri disturbances in the flow

Lean applied to software Eliminate Waste Build Quality In Create Knowledge Defer Commitment Deliver Fast Respect People Optimize the Whole by Mary Poppendieck

Software Craftmanship Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnerships

Why Agile Works Cynefin framework Nature of exploration do - evaluate - adjust

Yin & Yang of Agile Technical Practises Process Management

Technical practices Pair programming Test driven development Continuous integration Continuous deployment Behaviour driven development / specification by example

Process Methodologies Scrum Kanban XP

Process Methods Just In Time decisions Pull -mechanism Visualization Transparency Splitting work into smaller pieces Limiting work in process

Scrum

Scrum

Pioneering Scrum Scrum (early 90 s) Jeff Sutherland (Easel Corp) Ken Schwaber (Advanced Development Methods) Jeff & Ken collaborated to present Scrum methodology at OOPSLA 95

Scrum Agile process for producing business value Iterative Produce value does NOT prescribe technical practises

Scrum in action

Scrum Roles Product owner Scrum master Team

Product Owner Decides priorities / order Vision of the product

ScrumMaster Takes care of the process Enables the team to do their work Owns the impediment list

Team Makes the magic happen Crossfunctional includes all the skills to finish the product Self-organizing

Scrum Ceremonies 1. 2. 3. 4. Sprint planning Daily scrum meeting Spring review Spring retrospective

1. Sprint planning Who Team, ScrumMaster & Product Owner Agenda Discuss top priority backlog items Team selects which to do Why Know what will be worked on Understand it enough to do it

2. The daily scrum Parameters: Daily max 15 minutes standing Not a problem solving meeting Whole world is invited only team, ScrumMaster, Product Owner can talk

2. The daily scrum Questions 1. What did you do? 2. What will you do? 3. Is there anything stopping you? (impediment)

3. Sprint review Inspect and adapt the product Team presents what was accomplished Typically involves a demo Informal

4. Retrospective Inspect and adapt the process Everyone can participate

Scrum Artifacts Product backlog Sprint goal Sprint backlog Burndown chart Impediment List

Product backlog List of desired work Ordered / prioritized by the product owner Reorganized at the start of each sprint

Sprint goal High level summary of where the focus is for given sprint For the high level boss

Sprint backlog Evolves Team maintains can add tasks can remove tasks re-estimate The team owns the sprint backlog Best guess what the team needs to do Progress visible in the task board

Burndown chart

Scaling Scrum Several Scrum teams Scrum of scrums coordination over several Scrum teams

Kanban

Kanban Kan ban = signal card Originally by Taichi Ono (Toyota) Software Kanban by David Anderson Evolutionary approach

Kanban method 1. Start with what you have 2. Agree to pursue incremental, evolutionary change 3. Respect current process, roles & titles 4. Leadership at all levels

Kanban 6 practises 1. 2. 3. 4. 5. 6. Visualize workflow Limit work in progress Manage flow Explicit policies Implement feedback loops Improve collaboratively, evolve with experiments

1. Visualize workflow Analyze work states Define work item types Make problems visible

2. Limit work in progress Prevent multitasking / context switching Less work in progress = less waste

3. Manage flow Sustainable pace

4. Explicit policies No secrets Gew clear rules

5. Improve collaboratively " To be termed scientific, a method of inquiry must be based on gathering empirical and measurable evidence subject to specific principles of reasoning -Isaac Newton Collaboration with all stakeholders avoid local optimizations

Cadence Everything has it's own rhythm

Estimation

Scrum vs Kanban Scrum Kanban WIP per sprint Sprint content set Task size Crossfunctional teams Timeboxed Velocity Fair amount of rules WIP per stage No untouchable tasklist Task size unlimited Allows specialist teams No time limits Lead time Very few rules

Tool for the job?

Agile Documentation Documentation is a poor substitute for conversation UI mockups Only code is up to date

Code example 1 public List<int[]> getthem() { List<int[]> list1 = new ArrayList<int[]>(); for(int[] x : thelist) { if (x[0] == 4) { list1.add(x); } } return list1; }

Code example 2 public List<int[]> getflaggedcells() { List<int[]> flaggedcells = new ArrayList<int[]>(); for(int[] cell : gameboard) { if(cell[status_value] == FLAGGED) { flaggedcells.add(cell) } } return flaggedcells; }

Do the right thing

Do the right thing

User Stories Communication problem Way to describe functionality Collaborative effort

User Story example As a <user> I want to <action> E-Bank example As an account holder, I want to withdraw cash from ATM Add context So that I can get money when the bank is closed

Scenario Given The the account balance is 100CHF and the card is valid When The account holder requests 20CHF Then The ATM should dispense 20CHF and the account balance should be 80CHF and the card should be returned

Minimum Viable Product pareto principle (80/20) Just In Time

Full of features (2007) Nokia N95 competitor 3G yes no Camera 5mp 2mp Memory card microsd up to 32GB no MMS yes no 3rd party apps yes no Video out yes no VoIP yes no Video calls yes no Instant Messaging yes no Bluetooth yes no

N95 vs iphone

Some other stuff

Holy Physical Task Board Promotes team interaction Visibility

Kaizen Continuous Improvement

Slack

Feedback feedback is information every mistake is a change to learn I didn t fail, I found 10 000 ways that didn t work - Thomas Edison

Testing Only fully tested software is the one not yet implemented. Verify functionality

Common Pitfalls Estimation Illusion of Importance Find and Replace Detailed plans

The Black Art of Estimation predicting is very difficult, especially if it involves the future - Niels Bohr