An Introduction to Agile Performance Management



Similar documents
Course Title: Planning and Managing Agile Projects

Introduction to Agile and Scrum

The Agile Manifesto is based on 12 principles:

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

Introduction to Agile

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

The Basics of Scrum An introduction to the framework

Agile Scrum Workshop

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

Scrum and Kanban 101

The style is: a statement or question followed by four options. In each case only one option is correct.

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

There are 3 main activities during each Scrum sprint: A planning meeting where: the Product Owner prioritizes user stories in the product backlog

How To Plan An Agile Project

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

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

Agile Scrum Foundation Training

Sometimes: 16 % Often: 13 % Always: 7 %

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

Scrum Is Not Just for Software

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

AGILE & SCRUM. Revised 9/29/2015

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

The Team... 1 The Backlog... 2 The Release... 4 The Sprint... 5 Quick Summary Stakeholders. Business Owner. Product Owner.

Iteration Planning. also called Iteration Kickoff

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Scrum Guide. By Ken Schwaber, May, 2009

Scrum In 10 Slides. Inspect & Adapt

Course Title: Managing the Agile Product Development Life Cycle

Scrum vs. Kanban vs. Scrumban

LEAN AGILE POCKET GUIDE

Agile Beyond The Team 1

Getting Agile with Scrum

Integrating PRINCE2 and Scrum for successful new product development

IMQS TECHNOLOGY AGILE METHODOLOGY

A Glossary of Scrum / Agile Terms

How can I be agile and still satisfy the auditors?

Agile Team Roles Product Owner & ScrumMaster. Brian Adkins Rick Smith

Agile Software Development

Issues in Internet Design and Development

The Agile Project Manager

MTAT Software Engineering

Mastering the Iteration: An Agile White Paper

1. Sprint Planning. Agile Ceremonies Demystified. A four part series written by Angela Boardman, CSM, CSP ATG (4284)

Introduction to Scrum

Taking the first step to agile digital services

Introduction to Agile Scrum

SECC Agile Foundation Certificate Examination Handbook

Agile Projects 7. Agile Project Management 21

Agile Software Development. Stefan Balbo / Patrick Dolemieux

Mike Cohn - background

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

Applying Agile Project Management to a Customized Moodle Implementation

Agile Metrics - What You Need to, Want to, and Can Measure. June 9, 2014

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

ScrumMaster or Armchair Psychologist Scrum Fundamentals Webinar Q&A March 9, 2016

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

Agile Development Overview

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

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

Agile Information Management Development

EXIN Agile Scrum Foundation

AGILE - QUICK GUIDE AGILE - PRIMER

Would you like to have a process that unlocks ability to learn and produce faster?

Agile Scrum Foundation Training

ScrumMaster Certification Workshop: Preparatory Reading

CSPO Learning Objectives Preamble. Scrum Basics

Agile Software Development

Agile Project Management with Scrum

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

Selling Agile at Your Company

Preparation Guide. EXIN Agile Scrum Foundation

Scrum. The Essence. Tobias Mayer, Sonntag, 19. Februar 12

Vision created by the team. Initial Business Case created. Cross functional resource meeting held. Agile alignment meeting

Waterfall vs. Agile Project Management

Product Development: From Conception to Execution. Slide 1

Scrum Guidelines. v W W W. S C R U M D E S K. C O M

Scrum in a Large Project Theory and Practice

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

Agile Methods for Analysis

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

Agile Processes and Distributed Projects: Dream or Nightmare?

Testing in Scrum Projects

Governments information technology

Agile Scrum and PMBOK Compatible or Contrary?

Agile & PMI Project Management Mapping MAVERIC S POINT OF VIEW Vol. 7

Agile and lean methods for managing application development process

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

Imad Alsadeq, Qatar, May 2013 OPM3, MSP, PMP, PMOC, PMI-RMP, MCP

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

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Overview of Scrum. Scrum Flow for one Sprint SCRUMstudy.com. All Rights Reserved. Daily Standup. Release Planning Schedule. Create.

SCRUM 1. Upon what type of process control is Scrum based? a. Empirical b. Hybrid c. Defined d. Complex

A Viable Systems Engineering Approach. Presented by: Dick Carlson

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

Transcription:

! 1 An Introduction to Agile Performance Management by Jeffrey B. Rothman, Ph.D. An Introduction to Agile This is a high level introduction to Agile -- a well known productivity framework for software developers and engineers. Non-developers often hear software engineers talk about Agile, but aren t certain what it is. To solve that and help strengthen collaboration between business teams and software engineering teams, here is a quick non-technical synopsis of Agile s essential elements. Understanding Agile will (1) help business managers better work with software engineers and increase the performance of cross-functional teams and (2) the principles and techniques informing Agile can be applied to general performance management and predictable goal achievement. Why Agile? One of the frustrations for non-engineers (and engineers too) is a lack of predictability (features and schedule) for software releases and less than rigorous performance management. It can seem like an engineering team keeps promising a feature release in a couple weeks, but it takes months to release an incomplete version of the feature that doesn t fully meet customer requirements. Agile provides a software development framework for a more predictable process that meets customer requirements. In this guide, I discuss the specific Agile methodology Scrum, but it shares many attributes with other Agile methodologies, such as Extreme Programming and Kanban. The core concepts for Agile are timeboxing, planning, and commitment. The audience for this article is software engineers and product managers who are new to Agile, as well as business executives and other non-engineers who want to better understand the software development process.

! 2 Commitments The commitment is the set of stories for which the teams has taken on the responsibility of delivering. Timeboxing Timeboxing puts time limits on the small and large events within the Agile lifecycle. Planning The fixed time for taking stories from the backlog, investigating them, and evaluating their complexity. You then decide which stories to accept into the sprint. Timeboxing An essential concept in Agile Scrum development is timeboxing. Timeboxing puts time limits on the small and large events within the Agile lifecycle. The iteration period for software development activities is called a Sprint. It is fixed (from one to four weeks, but most typically two weeks). During a sprint (1) planning occurs, during which specific features are accepted into the sprint which the team commits to, (3) feature development occurs, (4) the features are presented in a demonstration; and (if all goes well) accepted for release. Once the sprint begins, the set of features to work on is fixed (exceptions discussed below). Additional feature requests received by the software engineering team during the middle of a sprint are only considered for a following sprint. Event Name Frequency/Duration Description Sprint 1-4 weeks, typically 2 Development period Planning Meeting Demo once per sprint, 4-8 hours (at beginning) once per sprint, 30-60 minutes (at end) Team assesses story points for each story, turns stories into tasks; sets stories for the sprint A demonstration of the new features to the product owner and others invited to attend

! 3 Retrospective Stand-up once per sprint, 1-2 hours (at end) daily, 15 minutes (typically first thing in the morning) Analyze what went wrong, what went right, steps to eliminate waste for the next sprint Surface potential issues and conflicts; spins off meetings for resolving conflicts for the relevant team members The table above shows the various development, life-cycle events. Each activity has a fixed duration set by the team. Occasionally there are tasks with unknown complexity and durations. In those cases, a fixed time is set aside for researching these tasks. Then in the next sprint, the task can approached with a better understanding of its complexity and duration. Planning: Story points and velocity Each feature is described by the product owner (typically a product manager) in a series of stories. A story takes the form of: As a user, I need a feature that does X, in order that I can do Y. A story is not meant as a full specification, and should be very simple. It s the engineering team s duty to ask questions and get feedback during development so the feature meets users needs.

! 4 Each story is assigned a relative measure of complexity called story points. Each team will measure complexity differently, but within a team, the complexity measured by a story point should be consistent over time. The team determines how many stories they will be able to complete during a sprint, based on their analysis and previous history. The number of story points a team can complete in a sprint is the velocity. The velocity increases over time in a well performing team, as the members gain product domain knowledge and gel as a team. Once the team has decided which stories to implement (and committed to the stories) for a sprint, that is the entire scope of that the team will work on in that sprint. Any features or significant requirement changes are pushed off to a future sprint. In an emergency, the sprint can be blown up and rebuilt with new stories. But, this is rare. Swapping is more likely. An existing, but unstarted story is replaced by the story representing the new urgent requirement (with equal or fewer story points). Commitment means that a software development team holds itself responsible for delivering on what is promised. Since the team decided what to commit to implement during a sprint, and did not have commitments and schedules imposed on it, the team is more engaged and is much more likely to deliver. Team pressure and self-imposed goals are far more effective than external pressure for delivering a high quality product on schedule. By determining the story points consumed by each feature for a significant portion of the product feature backlog (release planning), it s possible to determine a product release schedule with considerable accuracy. Release planning provides a reasonable determination of (a) the features that will be available by a given date or (b) the date by which a set of features will be available. Of course, the dates will change if the resources (team members) change over time.

! 5 The Agile Team Scrum Master The scrum master (SM) helps facilitate meetings, keeps those meetings moving along smoothly, and handles any external difficulties that team members encounter, for example, negotiating with IT to get additional resources, etc. Product Owner The product owner (PO) is responsible for (a) creating a story backlog for the software engineering team to complete, (b) keeping stories prioritized, and (c) sufficiently defining stories for comprehension and use. The product owner also serves as a proxy for the feature end user/consumer. Development Team The team members consist of the developers and quality engineers working together to develop the features. Because some of the story details are not fully specified, it s the team s responsibility to interview the stakeholders (PO, external and internal customers, managers, etc.) to draw out the requirements. There are only a handful of formal roles for Agile (Scrum): the product owner, the scrum master, and the development team members. The product owner (PO) is responsible for (a) creating a story backlog for the software engineering team to complete, (b) keeping stories prioritized, and (c) sufficiently defining stories for comprehension and use. The product owner also serves as a proxy for the feature end user/consumer. Of course actual customers or other people can participate in refining features and answering questions, but in an informal manner. The scrum master (SM) helps facilitate meetings, keeps those meetings moving along smoothly, and handles any external difficulties that team members encounter, for example, negotiating with IT to get additional resources, etc. The SM is typically a software developer that devotes 50% of his time to SM duties. While the SM could be a manager, it s preferred that she not be one. The team members consist of the developers and quality engineers working together to develop the features. Because some of story details are not fully specified, it s the

! 6 team s responsibility to interview the stakeholders (PO, external and internal customers, managers, etc.) to draw out the requirements. Team members also get feedback from the PO and others continuously during the software development process. Prerequisites for Agile Success Agile is a great development framework with superb predictive capability, but it needs a commitment from the organization to make it work. Through trial and error, here are the necessary factors that must be in place for it to be successful: 1. The team must not be interrupt driven, and must be given sufficient uninterrupted time during the day to execute on its commitments. 2. The Product Owner (PO) must have a properly groomed backlog, sufficient knowledge about what she is asking the team to develop, and generally accessible to the team during the day for feedback. A PO should ideally be dedicated to one Agile team; worst case should be handling two teams. Having more than 2 teams will lead to poor outcomes. 3. The members of the development team need to be team players. Cowboy coders will inhibit team performance in an Agile environment, and should be assigned to other, non-agile projects. 4. Optimally, all the team members are in near proximity, i.e., the same office area - that s my strong recommendation. My experience has been that having team members in other locations really interferes with achieving high level performance and team cohesion; but other people have reported success with distributed teams. 5. The nature of each of the rituals needs to be understood and held with inviolable rules. Holding the meeting without understanding the purpose or benefiting from the outcome is a form of waste. a. Stand-ups aren t for resolving problems, but for surfacing them. It s not meant to be just a status report. Spin off other meetings for the concerned parties around issues. b. Retrospectives are for improving the development process, not for laying blame for failures. They are used for reducing waste by doing more of what is working, and

! 7 removing unsuccessful steps from the process. There are always improvements to be made! c. Demos are held by the team solely for the benefit of the PO. Other attendees come only with the invitation of the team. It is absolutely not a dog and pony show for the business executive team. There should be minimal prep time for the demo, and it consists solely of showing off the new features, with minimal (or no) slides. 6. Information radiators, such as publicly visible charts of progress (such as burn-down charts) are a great tool for explaining and demonstrating to other teams the status of the sprint and instills confidence that the Agile process provides predictive value. 7. In systems with massive technical debt (e.g., poorly written code, insufficient automated tests), Agile often breaks down. There is too much uncertainty when one small change can ripple throughout the whole system. There s not an easy solution, though often research spikes (timeboxed research effort) can be used to reduce uncertainty. 8. The developers need to get feedback from the PO (or the appropriate stakeholder) whenever there are questions about specs. There shouldn t be unpleasant surprises at demo time - the PO should have seen everything already. In the worst case, the PO might not accept some of the stories as complete, and that can cause a mess to pull the offending code out of a release. Summary & General Principles This Agile planning process is far more reliable in determining a schedule than any other mechanism that I ve seen during my professional experience. It s also important for marketers, sales and other teams to understand Agile so they can both synchronize their activities with the development process as well as incorporate Agile concepts into their own processes. For example, one of the big engines of Agile is getting buy-in by allowing the team to decide the how of a project (but generally not the what ). By allowing the team to creatively work to discuss problems and provide their own solutions, they will be much more engaged with projects. Timeboxing is also a valuable tool for keeping meetings and projects on track. A semi-weekly retrospective can help

! 8 any team to eliminate time wasting activities and focus on improving their performance through teamwork. Agile can be a great framework for improving the performance management of any team.