When User Experience Met Agile: A Case Study



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

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

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Managing the Agile Process of Human-Centred Design and Software Development. Peter Forbrig & Michael Herczeg. Universität Rostock & Universität Lübeck

Managing a Project Using an Agile Approach and the PMBOK Guide

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

User Experience Design in Agile Development. Sean Van Tyne

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

Agile Projects 7. Agile Project Management 21

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

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

Moderator: Albert Jeffrey Moore, ASA, MAAA. Presenters: Albert Jeffrey Moore, ASA, MAAA Kelly J. Rabin, FSA, MAAA Steven L. Stockman, ASA, MAAA

Project Management in Software: Origin of Agile

Best Practices for Adopting Visualization Into Your Software Process. Mitch Bishop Johann Mendoza

Building Software in an Agile Manner

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

The traditional project management uses conventional methods in software project management process.

The Agile Drupalist. Methodologies & Techniques for Running Effective Drupal Projects. By Adrian AJ Jones (Canuckaholic)

Continuous User Experience Development

Are waterfall and agile project management techniques mutually exclusive? by Eve Mitchell, PwC. 22 MARCH

The Truth About Agile Software Development with Scrum, The Facts You Should Know

LEAN AGILE POCKET GUIDE

The Basics of Scrum An introduction to the framework

Whitepaper: How to Add Security Requirements into Different Development Processes. Copyright 2013 SD Elements. All rights reserved.

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

Manage projects effectively

Agile Software Development

Agile and lean methods for managing application development process

Introduction to Agile Scrum

Chapter 6. Iteration 0: Preparing for the First Iteration

Agile and lean methods for managing application development process

Akhil Kumar 1, Bindu Goel 2

Aalborg Universitet. Fast, Fastere, Agile UCD Pedersen, Tina Øvad; Larsen, Lars Bo. Publication date: 2014

Applying Lean on Agile Scrum Development Methodology

Continuous Software Engineering with Special Emphasis on Continuous Business-Process Modeling and Human-Centered Design

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

Capstone Agile Model (CAM)

Managing the Agile Process of Human-Centred Design and Software Development

Learning Agile - User Stories and Iteration

Mastering the Iteration: An Agile White Paper

Agile Development Calls for an Agile Suite Solution

Lean Software Development and Kanban

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

Agile Project Management By Mark C. Layton

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

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Agile Scrum Workshop

T14 "TIMELINES, ARTIFACTS AND OWNERS IN AGILE PROJECTS" Hubert Smits Rally Software Development BIO PRESENTATION 6/21/2007 1:30:00 PM

Agile vs. Waterfall. Why not both. Arnold Okkenburg PMP

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

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

Agile user-centred design

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

The Agile Manifesto is based on 12 principles:

Software Development Methodologies

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

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Managing Successful Software Development Projects Mike Thibado 12/28/05

Introduction to Agile and Scrum

serena.com An Introduction to Agile Software Development

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

Traditional SDLC Vs Scrum Methodology A Comparative Study

Agile Software Development

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

AGILE - QUICK GUIDE AGILE - PRIMER

Agile Development Overview

Course Title: Planning and Managing Agile Projects

Nova Software Quality Assurance Process

Getting Started with Agile Project Management Methods for Elearning

Adopting a Continuous Integration / Continuous Delivery Model to Improve Software Delivery

When is Agile the Best Project Management Method? Lana Tylka

ScrumMaster Certification Workshop: Preparatory Reading

IMPLEMENTING SCRUM. PART 1 of 5: KEYS TO SUCCESSFUL CHANGE

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

Agile methods. Objectives

Agile Software Development

How User Experience Fits in Agile

Extreme programming (XP) is an engineering methodology consisting of practices that ensure top-quality, focused code. XP begins with four values:

Agility in Project Management

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

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

Scrum. in five minutes

Taking the first step to agile digital services

SCRUM. A Tool from the Software World Can Improve Analytical Project Outcomes. By KyMBER WALTMUNSON

Governments information technology

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

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Agile Essentials for Project Managers Keys to Using Agile Effectively With Project Teams

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

THE BUSINESS VALUE OF AGILE DEVELOPMENT

Leveraging Agile and CMMI for better Business Benefits Presented at HYDSPIN Mid-year Conference Jun-2014

Understanding Agile Project Management

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

Transcription:

When User Experience Met Agile: A Case Study Michael Budwig User Experience Manager PayPal 2211 North 1 st Street, San Jose, California 95131 USA mbudwig@paypal.com Soojin Jeong Manager, User Interface Design PayPal 2211 North 1 st Street, San Jose, California 95131 USA sojeong@paypal.com Kuldeep Kelkar Manager, User Research PayPal 2211 North 1 st Street, San Jose, California 95131 USA kkelkar@paypal.com Copyright is held by the author/owner(s). CHI 2009, April 4 April 9, 2009, Boston, MA, USA ACM 978-1-60558-247-4/08/04. Abstract In mid-2007, one part of the technology organization at our company decided to develop a very large project using scrum, an agile programming methodology. The decision to go with scrum was made from a software development perspective and how the user experience (UX) teams doing the design work would fit into that methodology was not clear. As a result, the UX teams faced many challenges and we have had to evolve our approach to how UX teams work with development scrum teams. This case study details our UX teams experiences working with scrum for the past 18 months, describing the challenges and issues that we faced, and the solutions that we implemented to resolve those issues. We recommend best practices for UX teams working in scrum, particularly in a fast-paced and large corporate environment. We hope that others can avoid the common pitfalls that we faced in our initial adjustment to agile and scrum. Keywords Agile, Agile tips, Agile-UCD, Design, Process, Research, Scrum, Technical Writing, UCD, UX, Usability, User Experience

2 ACM Classification Keywords H5.m. Information interfaces and presentation (HCI) H.5.2. User Interfaces (D.2.2, H.1.2, I.3.6) K.6.3 Software Management Software process Introduction The software development community talks a lot about agile programming methodologies, but most of the discussion is geared towards software developers [1]. However, much less has been said about how to integrate user experience methods and practices within an agile development environment, and many researchers, designers and UX practitioners have found it difficult to rapidly adapt UX tools & practices to agile processes [2]. Some authors have recommended approaches for integrating UX teams within agile and have provided some how-to guides that have worked for them within their own business settings [3,4,6,7]. Each organization is different and there is always something to learn from each other s experiences. In this paper we present our experiences, specific examples and recommendations for best practices for integrating UX teams within agile development processes. Our business situation Our company has annual revenue of two billion dollars with millions of customers in many countries. The organization is split into multiple business units (BU). The authors are part of a User Experience & Design (UED) organization that supports all of these business units. Our UED organization has a staff of over 100 designers, writers, and researchers, and is responsible for providing a world class user experience to our customers. In mid-2007, one of the business units (BU) and its associated software development organization decided to adopt scrum, an agile programming methodology. The rest of the company remained in the traditional waterfall development process. Scrum is an iterative programming methodology that has time-boxed development cycles called sprints (or iterations). Scrum focuses on cross-functional teams (scrum teams) that may include, for example, development and quality assurance (QA). The scrum team is responsible for estimating the work, deciding what can be done during a particular sprint, and executing against that. The team has a scrum master, whose job is to remove obstacles and coordinate the work [5]. The work is defined as user stories, which are written by the product owner (PO), who is responsible for defining requiring and prioritizing the stories. The scrum literature generally does not address specific user experience roles, such as user interface designers, content writers, prototypers, user researchers, and technical writers. Initially, we assigned eight user experience team members to these new scrum projects. This was the UX team s first real experience using an agile methodology.

3 Based on learning from this experience in 2007, the team made several changes for the first half of 2008. While these changes helped in some areas, significant difficulties remained. As a result, we made another round of changes during the second half of 2008 In this case study we will talk about our experiences during these 3 phases: Phase 1: Agile in theory, Second half of 2007 Phase 2: Hybrid, First half of 2008 Phase 3: UX Scrum Team, Second half of 2008 Phase 1: Agile in theory, Second half of 2007 The primary business goal of the first scrum project was to rationalize products on two different platforms into a single product on a unified platform. The UX team got involved in the project with the assumption that there would be minor front-end design work. Two UX teams were working on two initiatives in parallel for this business unit. The UX team members were members of the development scrum teams. Several of the scrum teams were located in the US office with the UX teams; the others were located in India. Because of resource limitations, UX team members were usually members of more than one scrum team. One team had done a significant amount of work up front, including user research, user flows and wireframes, and they were able to work relatively easily and complete their deliverables on time. The other team did not have a chance to do work up front and started at the same time as the development scrum teams. As a result, the UX team was constantly fighting an uphill battle to provide designs to the development scrum teams, who needed the designs to continue their work. This meant long hours and often wasted effort for the UX teams as they tried to keep up and as everyone realized that the assumption of minor front-end design work was not a good one. Despite the difficulties, the UX team did benefit from the agile process in several ways: Close collaboration with the broader crossfunctional team. Issues were found earlier and addressed faster. However, the overall feedback from the team was still quite negative for the following reasons: Doing the design and the development of that design during the same sprint did not work well. Frequent changes that were not communicated clearly caused a lot of confusion. Requirements were not well documented, which led to confusion about UX deliverables. Coordination with off-shore teams was difficult. The most important learning from the first agile phase was that the UX work needs to be done at least one or two sprints ahead of the development scrum team.

4 Phase 2: Hybrid, First half of 2008 Based on what we learned in the first phase, we proposed the revised model for the next phase: UX team members are not part of the development scrum teams. The UX teams work one or two sprints ahead of the development scrum teams. UX and development scrum teams are co-located to reduce the coordination effort of working with remote teams. UX teams work closely with the BU to define requirements before UX work starts. Our UX teams comprises of specialized professionals in various disciplines, including UI design, visual design, user research, content, editing and technical writing. In an agile environment, collaboration between the multidisciplinary UX team and the development scrum teams, BU, and project management organization was quite challenging because of the fast pace of the project. The UX team, in collaboration with all of the cross-functional areas, came up with a process to define the level of the involvement, timing and responsibilities of each person involved in the scrum project (see figure 1). In this model, a project is started by the Business Owner, who provides high-level use cases for the project. Among UX team members, the UI Designer and User Research actively work with the Business Owner to provide inputs from the user s perspective. The UI Designer then delivers user flow diagrams and high-level wireframes that support the use cases. In this pre-sprint phase, a user researcher supports the Business Owner and UI Designer with needs analysis. This is done by consolidating & synthesizing existing research data and/or rapidly conducting additional research to provide input to user stories. After the use cases, user flow diagrams and wireframes are reviewed and approved by the cross-functional team, the UX team begins developing design specifications that will be implemented in the development team s first sprint. Once the design specifications are reviewed and approved by the crossfunctional team, the UX team moves onto the next set of requirements. During a typical sprint, the UX team works on the design specifications for the next sprint and supports the implementation of the current sprint. Tasks that are not easy to iterate, such as localization and technical writing, are done at the end of the project rather than at the end of each sprint. Usability testing and internal design reviews may happen in any sprint or at the end of the project, depending on whether the focus of the testing or review is on a specific design element being worked on in a specific sprint or on the overall design being worked on over multiple sprints. Inputs coming out of the testing and reviews are then incorporated into the designs and thus the implementations. With this approach, the UX team had a reasonable time for design explorations and reviews and was able to maintain a better work-life-balance. Also, churn was reduced during development sprints because product requirements and designs were more solid before communicating them to the development scrum teams.

figure 1. Workflow, roles and responsibilities of UX and crossfunctional team in the hybrid agile environment 5

6 However, there were still critical issues that needed to be resolved. Because the UX team was working before the development scrum teams were engaged, the UX teams frequently could not get necessary inputs from the development team members. Requirements and roadmaps from the BU were unclear or not well defined, and the UX team spent an inordinate amount of time gathering requirements. As new requirements and other issues arose (such as bug fixes), the UX team had to handle them as well as deliver their primary projects on time to keep the development schedule on track. This was a stressful situation and created a negative work-life balance for the UX team members. The fast-paced and quickly changing agile environment did not provide adequate time to look at the big picture. The most important learning from the hybrid approach was that there needs to be a point person that monitors and communicates UX team capacity to the crossfunctional team, and acts as a gatekeeper for all requirements coming through UX. Phase 3: UX Scrum Team, Second half of 2008 Based on our experiences in the previous phases, we refined the things that were working well and attempted to fix the things that were broken. Schedule UX teams to run one to two sprints ahead of the development teams, as before. Incorporate quarterly design vision sprints into the normal sprint cycle. Organize UX team into a separate scrum team with its own product owner. Seeing the Big Picture We incorporated design vision sprints into the normal sprint cycle each quarter to allow the UX team to look at the broader scope of what is coming up in the next three to six months. This gives the team a chance to look holistically at the coming 3-6 months and to propose holistic design solutions to meet those needs The inputs to the design vision sprint are the high-level business use cases coming from the product marketing team. During the sprint, the UX teams analyze the use cases and any existing, related user research, looks at overall user experience issues (such as where multiple use cases may affect the same page or page flow), and creates high-level flow maps and possibly wireframes. Being in an agile environment, these initial designs and flows are subject to change, but they provide a clear direction and vision for the designs being created in the individual sprints. Reviewing these high-level designs with the broader cross-functional team raises overall design and implementation issues that otherwise would have come up only later in the process. Taking this time to look holistically is not just beneficial to the UX teams. It provides a major benefit to the product owners and development teams as well, giving them additional planning time. In particular, design vision sprints provide time to plan cross-business unit dependencies in large organizations where the entire development organization is not in scrum.

7 UX PRODUCT OWNER (UX PO) To address the issues identified in phase 2, the UX team was formed into its own scrum team with its own product owner who maintained a separate product backlog for the UX teams (see figure 2). The UX PO worked in close collaboration with the program PO, the business unit, and the program manager to coordinate UX deliverables and roadmaps with the development scrum teams. The UX PO then writes UX stories for the UX team based on that collaboration. The idea of a UX PO was somewhat controversial with the development organization who felt that the collaboration of the UX Product Owner (UX PO) and the overall program Product Owner (PO) would be additional overhead, and also felt that they owned the product backlog and that the UX teams should not have a separate one. However, this collaboration has resulted in more complete and accurate UX stories and allowed the UX teams to focus on their work instead of spending time chasing down requirements. The collaboration of the UX PO and the program PO also ensured that the UX deliverables were considered in all stories. In the past, the PO did not fully anticipate or include UX deliverables in their stories. The UX PO is the central point of contact for all crossfunctional areas, including the development teams and the business unit. Having a dedicated person working with these teams provided a solid place at the table in planning and scheduling discussions, ensuring that UX concerns are always raised and quickly addressed. It also provided the cross-functional teams with a single point of contact for any questions or concerns they had with the UX deliverables. UX TEAM CAPACITY Using this new model, the UX scrum teams were able to estimate and decide on how much work they could commit to in a given sprint. In a recent sprint for example, the UX PO presented the team with 5 design stories. After some initial research, the team decided that they could commit to only 4 of those in the current sprint. The UX PO then worked with the other crossfunctional areas to coordinate the overall program roadmap, based on the UX team s commitments. The UX scrum teams have a planned capacity for: Creating designs based on stories in the current UX product backlog. Supporting development teams who are implementing previously completed designs. Supporting user research and prototyping for future development. This planned capacity allowed the teams to handle unexpected new tasks, such as bug fixes, scope changes, and new requests in a more balanced way. As these unexpected tasks arose, the team modified their deliverables in coordination with the UX PO. Tracking UX team capacity separately from that of development scrum teams also allowed the UX organization to better handle situations where one UX team was supporting multiple development scrum teams.

8 figure 2: Collaboration between the UX Product Owner, overall Product Owner, Business Unit, and Program Manager

9 CROSS-FUNCTIONAL COLLABORATION The UX teams work in very close collaboration with the development scrum teams. UX team members attend the development team daily stand-ups once or twice a week on an as needed basis. We have also set up standing cross-functional meetings once or twice per week that are attended by all of the cross-functional leads. The close collaboration has kept information flowing between everyone involved in the project, increased the visibility of the UX teams within the overall organization, and raised potential issues much earlier in the design process. Recommendations & Conclusion To summarize, the changes that we made for more effective UX support for scrum and agile product development are: Schedule UX teams to work one or two sprints ahead of the development teams Incorporate quarterly design vision sprints into the normal sprint cycle Organize the UX team into a separate scrum team, with its own product backlog and product owner The main benefits that we seen from the changes that we have made are: Working one to two sprints ahead of the development scrum teams has resulted in less churn and an improved work-life balance for the UX team members. Having a quarterly design vision sprint has resulted in more cohesive and better quality designs. A UX product owner provides a primary point of contact to cross-functional teams and helps coordinate UX teams and deliverables. A separate UX product backlog helps the UX team assign resources to projects and track team capacity. A single UX team can support multiple development teams with less churn and better coordination. Acknowledgements We would like to thank all those in our company involved in the agile process for their collaboration. It was a great learning experience for everyone involved and the team built great relationships while achieving excellent business results. References [1] Agile Alliance: Articles about Agile Development process. http://www.agilealliance.org/articles [2] Agile-Usability Yahoo Group http://tech.groups.yahoo.com/group/agile-usability/ [3] Miller, L (2005) Case Study of Customer Input For a Successful Product. Proceedings of Agile 2005. Denver: Agile Alliance [4] Patton, J. (2008) Twelve emerging best practices for adding UX work to Agile development. http://agileproductdesign.com/blog/emerging_best_agil e_ux_practice.html [5] Schwaber, K (2004) Agile Project Management with Scrum. Book: Microsoft Press ISBN 9780735619937 [6] Sy, D (2005). Strategy & tactics for Agile design: a design case study. Proceedings of UPA 2005. Montreal: Usability Professionals Association [7] Sy, D (2007). Adapting Usability Investigation for Agile User-centered Design. Journal of Usability Studies 2007. Vol 2, Issue 3, 112-132.