Agile Software Development



Similar documents
Agile Software Development

Agile and lean methods for managing application development process

4/4/2013. Copyright 2013, Robert Ward

Lean Software Development and Kanban

Kanban For Software Engineering

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

Introduction to extreme Programming (XP)

Software Engineering I (02161)

Agile and lean methods for managing application development process

Agile Software Development

BCS Foundation Certificate in Agile Syllabus

Scrum vs. Kanban vs. Scrumban

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

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

Agile Software Development

Improving Software Development through Combination of Scrum and Kanban

Kanban vs Scrum Making the most of both

Agile Software Development

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

Exception Handling. development.

Scrum and Agile methods The real world

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Kanban vs Scrum Making the most of both

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Software Engineering

Object-Oriented Design

WE ARE FOCUSED ON HELPING OUR CLIENTS WORK SMARTER AND MORE EFFICIENTLY SO THAT TOGETHER, WE CAN EMPOWER PEOPLE TO DELIVER GREAT RESULTS.

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

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

XP 2015 Presenter-Nirnaya Tripathi Date

SECC Agile Foundation Certificate Examination Handbook

Kanban in a nutshell. Chapter Origins and Principles

The Agile Manifesto is based on 12 principles:

Software Composition Technologies Helping People Gain Control of Software Development

An Introduction to Agile Engineering Practices

Agile Testing and Extreme Programming

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

Agile Software Development. Stefan Balbo / Patrick Dolemieux

ACP Exam Prep Plus Desk Reference including the Project Management Agile Body of Knowledge TM (PMABOK TM )

Leading ITSM from Scrum to Kanban

Agile Project. Management FOR DUMME&* by Mark C. Layton WILEY. John Wiley & Sons, Inc.

Evolving Agile Testing

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

Agile Software Development

Agile So)ware Development

Planning of Project Work (IS PM 6. Lecture, 2011 Spring)

Practical Experience: Adopt Agile Methodology Combined With Kanban For Virtual Reality Development

MTAT Software Engineering

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

Mature Agile with a twist of CMMI

Agile Development with C#

Strategy. Agility. Delivery.

Combining Task Board and issue tracking software in agile development

Kanban what is it and why should I care?

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

As the use of agile approaches

Agile to the Bone. Introduction to Agile by Pietari Kettunen

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

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

AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT

Agile methods. Objectives

UVA IT3350 Syllabus Page 1

agenda AGILE AT SCALE

Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Kanban A Lean approach to Agile software development

Mastering the Iteration: An Agile White Paper

Presented by Only Agile. Agile Project Management

Thoughts on Agile. These types of project are known as closed or semi-closed projects: the objective is clear 2.

Agile Scrum Workshop

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

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

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

An Example Checklist for ScrumMasters

Getting Started with Agile Project Management Methods for Elearning

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

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

FREE ONLINE EDITION. If you like the book, please support the authors and InfoQ by. purchasing the printed book:

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

Kanban. Marek Majchrzak, Andrzej Bednarz Wrocław,

Two years of applying Kanban at SAP: a report from the trenches

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

Scrum and Kanban 101

Agile Software Development

Scaling Agile with the Lessons of Lean Product Development Flow Copyright 2012 Net Objectives, Inc. All Rights Reserved

Human Aspects of Software Engineering: The Case of Extreme Programming

Introduction to User Story Mapping. July 2015 COPYRIGHT 2015 AGILITY SOFTWARE 1

Agile Training and Certification Options. David Hicks

Rapid Software Development

Lecture 21 March 7, 2013

Software Engineering Process Economy & Quality

Role of the Business Analyst in an Agile Project

CMMI and KANBAN is it possible?

Agile Methods. Introduction to. AAddison-Wesley. Sondra Ashmore, Ph.D. Kristin Runyan. Capetown Sydney Tokyo Singapore Mexico City

Value, Flow, Quality BCS PRACTITIONER CERTIFICATE IN AGILE SYLLABUS

Agile Contracts: Building Trust. Ewan Milne

Agile Project Management

How to Manage an Agile/Kanban Software Project Using EVM

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Lean from the Trenches Managing Large-Scale Projects with Kanban

Transcription:

Agile Software Development Lecturer: Raman Ramsin Lecture 17 Practices: Design and Kanban 1

Design Practices: CRC Cards CRC Class, Responsibilities, and Collaborators Potential classes are written on CRC Cards. Each Card has three compartments: Class: The name of the class. Responsibilities: A list of the responsibilities of the class (the functions it performs and even the information it is responsible to keep and provide). Collaborators: A list of other classes with which this class collaborates in order to fulfill the responsibilities. 2

CRC Cards: Design Process Steps: 1. Two or more team members write down on index cards the names of the most important classes involved in the feature. 2. The cards are fleshed out with lists of the responsibilities of each class and the names of collaborators. 3. Each design idea is validated by playing out a plausible scenario of the computation, each developer taking on the role of one or more classes. For instance, the dialogue may go as follows (through which classes are anthropomorphized): 1. "Hello, Authentication Controller! I am a Web Request and I would like the contents of this resource." 2. "Very well, let me have your Credentials so I can give them, together with the name of your requested operation, to our Access Control List; I will then redirect you to a View component depending on the result." 3

Design Practices: Rules of Simplicity A set of criteria, in priority order, proposed by Kent Beck to judge whether some source code is "simple enough": 1. The code is verified by automated tests, and all such tests pass. 2. The code contains no duplication. 3. The code expresses separately each distinct idea or responsibility. 4. The code is composed of the minimum number of components (classes, methods, lines) compatible with the first three criteria. 4

Design Practices: Simple Design A team adopting the "simple design" practice bases its software design strategy on the following principles: Design is an ongoing activity, which includes refactoring and heuristics such as YAGNI ("You Aren't Gonna Need It"). Design quality is evaluated based on the rules of code simplicity. All design elements such as "design patterns", etc. are seen as having costs as well as benefits, and design costs must be justified. Design decisions should be deferred until the "last responsible moment", so as to collect as much information as possible on the benefits of the chosen option before incurring its costs. Expected benefits: Mitigates the common risk of overdesign ("gold plating"). Keeps the software easy to change. 5

Design Practices: Quick Design Session In "simple design", developers handle local design decisions moment-tomoment, but for design choices that may have far-reaching consequences: Two or more developers meet for a quick design session at the whiteboard, possibly using design aids such as CRC cards. Important guidelines for an effective design session: Considering several credible alternatives, ideally three or more, so that the final choice is based on considerations such as simplicity or conceptual integrity. Assessing each alternative on the basis of a concrete, specific scenario. Benefits: For instance, envisioning how the acceptance test associated with a given user story would unfold under each possible design. The design activity is spread out throughout the effort's duration. Quick design sessions address the need for more strategic decisions, while refactoring takes care of local design issues. 6

Lean Practices: Kanban In the Kanban Method: The use of iterations, roles, and effort estimates is deemphasized. Lead Time (cycle time) is used instead of velocity: Lead Time is the average time elapsed between the definition of a user story and that story being used by actual users under normal conditions. The task board is replaced with a Kanban board ; unlike a task board, the kanban board is not "reset" at the beginning of each iteration. In the Kanban board, which is the most important element of Kanban: Columns represent the different processing states of a "unit of value", which is generally (but not necessarily) equated with a user story. Each column typically has a limit on the WIP (Work In Process/Progress). If a given state, for instance "in manual testing", has a WIP limit of 2, then the team may not start testing a third user story. If a state is blocking the flow, the priority is to clear current work-in-process; team members will swarm to help clear the blockage. 7

Kanban: Process 1. Visualize the workflow: 1. Split the work into pieces, write each item on a card and put on the wall. 2. Use named columns to illustrate where each item is in the workflow. 2. Limit WIP assign explicit limits to how many items may be in progress at each workflow state. 3. Measure the lead time, and optimize the process to make lead time as small and predictable as possible. 8 [Kniberg et al. 2009]

Kanban: Pitfalls and Benefits Pitfalls It is not advisable that the Kanban board should serve as a pretext to reintroduce a "waterfall"-like, linear sequence of activities. Teams should be wary of Kanban boards not accompanied by WIP limits. Benefits In some contexts, measuring lead time rather than velocity, and dispensing with iterations, may be the more appropriate choice. for instance, when there is little concern with achieving a specific release date, or when the team's work is by nature continuous and ongoing, such as enhancement or maintenance. 9

Kanban Board: Typical Example 10

Kanban Process Enactment: Example (1) 11 [Kniberg et al. 2009]

Kanban Process Enactment: Example (2) 12 [Kniberg et al. 2009]

Kanban Process Enactment: Example (3) 13 [Kniberg et al. 2009]

Kanban Process Enactment: Example (4) 14 [Kniberg et al. 2009]

Kanban Process Enactment: Example (5) 15 [Kniberg et al. 2009]

Kanban Process Enactment: Example (6) 16 [Kniberg et al. 2009]

References Agile Alliance, Guide to Agile Practices, Published online at: http://guide.agilealliance.org/, 2013 (last visited on: 28 December 2014). Cohn, M., Succeeding with Agile: Software Development Using Scrum, Addison-Wesley, 2010. Kniberg, H., Skarin, M., Kanban and Scrum: Making the Most of Both, InfoQ, 2009. Rubin, K.S., Essential Scrum: A Practical Guide to the Most Popular Agile Process, Addison-Wesley, 2012. 17