Agile and lean methods for managing application development process

Similar documents
Agile and lean methods for managing application development process

Lean Software Development and Kanban

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

Kanban For Software Engineering

Introduction to Agile and Scrum

The Agile Manifesto is based on 12 principles:

Kanban. A Toyota s manufacturing system for Software Development CERN EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH. Eloy Reguero Fuentes

MTAT Software Engineering

LEAN AGILE POCKET GUIDE

Agile Projects 7. Agile Project Management 21

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

Software Engineering I (02161)

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

Agile support with Kanban some tips and tricks By Tomas Björkholm

Kanban vs Scrum Making the most of both

agenda AGILE AT SCALE

SECC Agile Foundation Certificate Examination Handbook

Scrum vs. Kanban vs. Scrumban

Lean and Agile Development With Scrum (Part 2) Lucio Davide Spano

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Lean Metrics How to measure and improve the flow of work. Chris Hefley, CEO of LeanKit. November 5 th, 2014

Lean vs. Agile similarities and differences Created by Stephen Barkar -

Agile Requirements Definition and Management (RDM) How Agile requirements help drive better results

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

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

Agile Development Overview

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

Role of the Business Analyst in an Agile Project

Lean and Kanban at Scale Extending Kanban across the portfolio, program and team levels. Al Shalloway, Net Objectives. September 4 th, 2014

Agile Project Management: Best Practices and Methodologies

Getting Started with Agile Project Management Methods for Elearning

Kanban A Lean approach to Agile software development

Introduction to Agile Software Development Process. Software Development Life Cycles

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

The only person who likes change is a baby with a wet diaper. Mark Twain. Charan CA Atreya

When agile is not enough

Kanban. Marek Majchrzak, Andrzej Bednarz Wrocław,

Agile Project Management

WHY KANBAN? Troy Tuttle. blog.troytuttle.com. twitter.com/troytuttle. linkedin.com/in/troytuttle. Project Lead Consultant, AdventureTech

Agile Beyond The Team 1

D25-2. Agile and Scrum Introduction

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

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

Kanban vs Scrum Making the most of both

Gothenburg 2015 Jan Marek com CA Technologies Introducing Agile development methodologies to Session S601 mainframe development teams

BCS Foundation Certificate in Agile

Software Development Life Cycle (SDLC)

Introduction to Software Kanban

When is Agile the Best Project Management Method? Lana Tylka

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

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

Applying Lean on Agile Scrum Development Methodology

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software Development Methodologies

Scrum and Kanban 101

How To Plan An Agile Project

Development Testing for Agile Environments

Agile project management: A magic bullet?

CSE 435 Software Engineering. Sept 16, 2015

From Agile by Design. Full book available for purchase here.

Software Development Process

Getting Started with Kanban Paul Klipp

AGILE & SCRUM. Revised 9/29/2015

AGILE - QUICK GUIDE AGILE - PRIMER

How to manage agile development? Rose Pruyne Jack Reed

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

Agile Software Development. Stefan Balbo / Patrick Dolemieux

SOFTWARE PROCESS MODELS

Agile Requirements And Testing For Continuous Software Delivery

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

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

Applying Agile Project Management to a Customized Moodle Implementation

An Introduction to Kanban for Scrum Users. Stephen Forte Chief Strategy Officer,

Why Agile Works: Economics, Psychology, and #PrDC16

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Kanban kick- start. By Tomas Björkholm at Crisp, April 2011

Alternative Development Methodologies

Improving Software Development through Combination of Scrum and Kanban

Using a Lean and Kanban Approach in Agile Development. Jeff Patton AgileProductDesign.com jpatton@acm.org

Agile Training Portfolio

J-Curve effect, 38, JIT. See Just-in-Time Inventory Just Enough Design Initially (JEDI), 6, 283

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

Building Software in an Agile Manner

The Lego Lean Game. Danilo Sato, Francisco Trindade XP 2009 Sardinia - Italy. 25 th May 2009

Agile Project Management and Agile Practices Training; with a Scrum Project that you will do.

Introduction to Agile Scrum

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

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Scaling Agile Is Hard, Here s How You Do It!

A Capability Maturity Model (CMM)

Creating a High Maturity Agile Implementation

Kanban what is it and why should I care?

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

Lean Software Development

Transcription:

Agile and lean methods for managing application development process Hannu Markkanen 24.01.2013 1

Application development lifecycle model To support the planning and management of activities required in the production of e.g. goods, software, or information systems, various lifecycle models have been developed A lifecycle model establish the order in which a project designs, prototypes, implements, tests, etc., i.e. performs its activities. Waterfall Code-and-Fix Prototyping 2

Waterfall model Strenghts The waterfall model performs well for projects in which you have a stable product definition Do such projects exist? Weaknesses The waterfall model is inflexible. Is it possible to specify the requirements at the beginning of the project? Is it possible to design and implement all parts of the application at the same pace? 3

Code-and-Fix Strenghts No planning and design overhead, time is spend on pure coding Requires no process management experience. Weaknesses Useful only for tiny applications. In case of real life projects, dangerous! 4

Prototyping Develop a prototype, show it to your customer, and refine it based on the feedback Strenghts Flexibility (with changing requirements) Reduced time and cost Weaknesses Can distract developers from properly analyzing the complete project Can easily result in the code-and-fix development. Good for applications with lots of user interaction Most Agile Methods rely heavily upon prototyping techniques. 5

Overview of lean and agile software development

Lean software development Lean software development is an adaptation of Lean manufacturing principles and practices Based on the Toyota Production System The core lean principles: Eliminate waste Extra features (unnecessary functionality) Partially done work Task switching Delays (waiting for work) Bureaucracy Defects Focus on learning and improvement Build quality in the process Decide as late as possible Deliver as fast as possible (customer value) Empower the team 7

Two Axioms of Lean Software Engineering (David Joyce) 1. It is possible to divide the work into small (value adding) increments, that can be independently scheduled 2. It is possible to develop any increment in a continuous flow, from requirement to deployment 8

Dividing the work to small increments 9

Dividing the work to small increments Time on the job Client Time of getting the first batch Time of whole production 10

Agile software development A group of software development methodologies based on iterative and incremental development Requirements and solutions evolve through collaboration between self-organized cross-functional teams Agile Manifesto - values: 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Responding to change over following a detailed plan Popular Agile methods Scrum Extreme Programming (XP) 11

Scrum overview Short, time-boxed iterations 12

Agile practices User stories Regular meetings Planning meeting Daily Stand-up meeting Retrospective meeting Continuous integration Refactoring of code (*) (*) Restructuring existing code without changing its external behavior in order to improve its maintainability and extensibility (more readable, less complex, better architecture) 13

Kanban

Background of Kanban Kanban is a Japanese word that literally means signal card In a manufacturing environment, this card is used as a signal to tell an upstream stage in a process to produce more Kanban is a pull system New work is pulled into a stage in the system when there is capacity to handle it, rather than being pushed based on demand The workers at each stage in the process are not allowed to do work unless they are signaled from a downstream stage A pull system cannot be overloaded if the capacity of each step has been set appropriately The first kanban system for software engineering was implemented at Microsoft beginning in 2004 15

Kanban as an Adaptive System to achieve Lean The Kanban Method is an adaptive system for catalyzing Lean behaviour (complex, adaptive, emergent behavior) Kanban core concepts Visualize workflow Limit Work-in-Process Help work to flow Kanban is not a software development methodology Does not provide methods for any particular development task, like design or testing Kanban teams adopt practices e.g. from agile methods (such as daily stand-up meetings) 16

Implementing Kanban

Kanban workflow There is a queue of work, which goes through a number of stages until its done When work is completed in a stage, it is pulled downstream for the next stage 18

Kanban board WIP limit Vertical columns for stages (phases) in the workflow, i.e. activities through which the work progresses Input queue ( Backlog ) Done stage ( RTS ) Work items on cards that are moved from column to column Work-In-Process (WIP) limits The max number of work items that can be in a stage at any moment Typically, the work-in-process limits are drawn on the board at the top of each column (or across a span of columns) Pull is signaled if the number of cards in a column is less than the indicated limit Why WIP is important? To deliver new value (e.g. feature) quickly, limit the amount of work done at one time Context switching costs 20% productivity 19

Typical Work Item Types (for Kanban cards) Incoming work E.g. User Story, Use Case, functional requirement, feature, The incoming work type might be hierarchical, such as Epic, a collection of user stories. Bug (issue) Change Request Maintenance Refactoring Improvement Suggestion Blocking Issue Support task 20

Setting the WIP limits WIP limits for work tasks should be set as an average number of items per person, developer pair, or small, collaborative team Typically, the limit should be in the range of one to three items per person, pair, or team Do not waste time in trying to determine the perfect WIP limit; simply pick a number based on best guess, and make progress Adjust the WIP limit empirically if necessary There is no magic formula for your choice. You can select a number and then observe whether it is working well. If not, adjust it up or down 21

Kanban card conventions Use text or color to communicate the type of work Write other necessary information on the card, e.g. work description tasks assigned team member due date tracking number with digital Kanban board attachments possible 22

Web based Kanban boards Product offer has grown rapidly in last years In your project, use the free Trello tool: http://trello.com 23

Writing user stories

Writing a user story Template: As a <some role>, I want <something>, [so that <some value>] Describe who wants, what wants [and what for] in one sentence. Do not define any details of the implementation in the user story. Examples: As an end user I want to be able to upload my picture to my profile page, so that people can easily identify me As a knight I want to be able to ride a horse, so that I can move faster (game character) 25

Writing a user story Example of breaking down a story into smaller stories: Example of breaking down a story into tasks: Henrik Kniberg: Scrum and XP from the Trenches 26