Best Practices for Agile Adoption and Implementation

Total Page:16

File Type:pdf, Size:1020Kb

Best Practices for Agile Adoption and Implementation AGILE ASSESSMENT GUIDE Best Practices for Agile Adoption and Implementation From September 28, 2020 to September 27, GAO-20-590G 2021, GAO is seeking input and feedback on this Exposure Draft from all interested September 2020 parties. See page 3 for more information. Contents Preface 1 Introduction 4 Chapter 1 Background 7 Chapter 2 Agile Adoption Challenges in the Federal Government and Actions Taken in Response 14 Chapter 3 Agile Adoption Best Practices 26 Team Dynamics and Activities 30 Best practice: Team composition supports Agile methods 30 Best practice: Work is prioritized to maximize value for the customer 35 Best practice: Repeatable processes are in place 40 Program Operations 44 Best practice: Staff are appropriately trained in Agile methods 44 Best practice: Technical environment enables Agile development 46 Best practice: Program controls are compatible with Agile 49 Organization Environment 51 Best practice: Organization activities support Agile methods 52 Best practice: Organization culture supports Agile methods 55 Best practice: Organization acquisition policies and procedures support Agile methods 61 Best Practices Checklist: Adoption of Agile Methods 63 Chapter 4 Overview of Agile Execution and Controls 65 Chapter 5 Requirements Development and Management in Agile 75 Elicit and Prioritize Requirements 80 Refine and Discover Requirements 83 Ensure Requirements are Sufficiently Complete, Feasible, and Verifiable for the Current State of the Program 84 Balance Customer Needs and Constraints 86 Test and Validate the System as it is Being Developed 89 Manage and Refine Requirements 90 Page i GAO-20-590G GAO Agile Assessment Guide Maintain Traceability in Requirements Decomposition 91 Ensure Work is Contributing to the Completion of Requirements 92 Best Practices Checklist: Requirements Development 93 Chapter 6 Agile and the Federal Contracting Process 95 Tailor contract structure and inputs to align with Agile practices 98 Incorporate Agile metrics, tools, and lessons learned from retrospectives during the contract oversight process 104 Integrate the program office and the developers 110 Best Practices Checklist: Contracting for an Agile Program 115 Chapter 7 Agile and Program Monitoring and Control 116 Work breakdown structure in an Agile environment 117 Cost estimating best practices in an Agile environment 119 Agile measures and documenting the cost estimate 120 Considerations for developing a cost estimate for an Agile program 125 Scheduling best practices in an Agile environment 130 Agile measures and scheduling best practices 130 Considerations for scheduling an Agile program 133 Earned value management best practices in an Agile environment 137 Agile measures and Earned Value Management 139 Considerations for applying earned value management to an Agile program 144 Best Practices Checklist: Agile and Program Monitoring and Control 149 Chapter 8 Agile Metrics 150 Identify key metrics based on the program’s Agile framework 152 Ensure metrics align with organization-wide goals and objectives 155 Establish and validate metrics early and align with incentives 156 Establish management commitment 158 Commit to data-driven decision making 160 Communicate performance information frequently and efficiently 163 Best Practices Checklist: Agile Metrics 165 Appendix I Scope and Methodology 167 Page ii GAO-20-590G GAO Agile Assessment Guide Appendix II Key Terms 169 Appendix III Related Terms 180 Appendix IV Auditor’s Key Questions and Effects 181 Appendix V Common Agile Frameworks 218 Appendix VI Debunking Agile Myths 232 Appendix VII Background for Case Studies and Agile in Actions 236 Appendix VIII Specialists Who Helped Develop this Guide 244 Appendix IX GAO Contacts and Staff Acknowledgments 246 References 247 Tables Table 1: Description of Commonly-Used Agile Frameworks 11 Table 2: Iterative Software Challenges, as Reported by Federal Agencies 14 Table 3: Laws, Policy, Guidance, Reports, and Entities Established to Address Agile Challenges 20 Table 4: Recent GAO Reports Highlighting Agile Challenges 22 Table 5: Summary of Agile Adoption Best Practices 29 Table 6: Manual Coding Quality Assurance Methods 42 Page iii GAO-20-590G GAO Agile Assessment Guide Table 7: Summary of Agile Requirements Management Best Practices 80 Table 8: Summary of Agile and Contracting Best Practices 98 Table 9: Differences between Statement of Objectives and Statement of Work 100 Table 10: Examples of Agile Metrics by Metric Category 105 Table 11: 12-Step Cost Estimating Process and Agile Cadence Examples 121 Table 12: Characteristics of a Reliable Cost Estimate and Agile Measures 124 Table 13: Comparison of Consistent Sizing and Relative Sizing 126 Table 14: 10-Step Schedule Estimating Best Practices and Agile Cadence Examples 131 Table 15: GAO Earned Value Management Best Practices 138 Table 16: 13 Earned Value Management Activities and Agile Examples 139 Table 17: Summary of Agile Metrics Best Practices 151 Table 18: Terms Used In This Guide and Related Terms 180 Table 19: DevOps Principles 219 Table 20: Disciplined Agile Roles and Responsibilities 220 Table 21: Disciplined Agile Principles 221 Table 22: Dynamic Systems Development Method Principles 222 Table 23: eXtreme Programming Activities 223 Table 24: eXtreme Programming Values 224 Table 25: Lean Software Development Principles 226 Table 26: Scaled Agile Framework Roles and Responsibilities 228 Table 27: Scaled Agile Framework Principles 228 Table 28: Scrum Team Structure 230 Table 29: Scrum Principles 231 Table 30: Case Studies Drawn from GAO Reports Used In this Guide 236 Table 31: Agile in Action Drawn from GAO Interviews 243 Figures Figure 1: Comparison of Agile and Waterfall Methods for Developing Software 8 Figure 2: Overview of Agile Adoption Best Practices 28 Figure 3: Relationship between the Agile Team and Customers 32 Figure 4: Agile Planning Levels 67 Figure 5: Comparison of Traditional and Agile Development Program Management Constraints 70 Page iv GAO-20-590G GAO Agile Assessment Guide Figure 6: Overview of Requirements Management Best Practices 79 Figure 7: Backlog Decomposition for an Agile Program 88 Figure 8: Overview of Agile and Contracting Best Practices 97 Figure 9: Comparison of Waterfall and Agile Programs’ Review Cycles 109 Figure 10: Roles When Planning, Managing, and Executing an Agile Contract 111 Figure 11: Work Breakdown Structure in an Agile Program 118 Figure 12: Traditional and Agile Earned Value Management Tracking Methods 143 Figure 13: Comparison of Traditional and Agile EVM Products 145 Figure 14: Example of Measuring Earned Value for an Agile Feature 146 Figure 15: Overview of Agile Metrics Best Practices 151 Figure 16: Example of a Cumulative Flow Diagram 155 Figure 17: Timeline of Agile Development 218 Figure 18: Kanban Board 225 Abbreviations ALIS Automated Logistics Information System COR contracting officer’s representative CPIC Capital Planning and Investment Control DHS Department of Homeland Security DevOps Development and Operations DAD Disciplined Agile Delivery DOD Department of Defense DSDM Dynamic Systems Development Method EVM earned value management ELIS Electronic Immigration System program FAR Federal Acquisition Regulation FDD Feature Driven Development FEMA Federal Emergency Management Agency FITARA Federal Information Technology Acquisition Reform Act FOC full operational capability G2 Generation 2 (NNSA Program Management Information Systems) GSA General Services Administration GMM Grants Management Modernization Page v GAO-20-590G GAO Agile Assessment Guide Abbreviations Continued ICE U.S. Immigration and Customs Enforcement INVEST Independent, Negotiable, Valuable, Estimable, Small, Testable LeSS Large Scale Scrum MVP Minimum viable product MUOS Mobile User Objective System program MoSCoW Must have, should have, could have, won’t have (sometimes would have) NDAA National Defense Authorization Act NNSA National Nuclear Security Administration OMB Office of Management and Budget OTC Office of Transformation Coordination RFP request for proposal SAFe Scaled Agile Framework SEVIS Student and Exchange Visitor Information System program SOO Statement of Objectives SOW Statement of Work Space C2 Air Force Space Command and Control program TIM Technology Infrastructure Modernization TSA Transportation Security Administration USCIS U.S. Citizenship and Immigration Services USDS U.S. Digital Services WBS work breakdown structure XP eXtreme Programming This is a work of the U.S. government and is not subject to copyright protection in the United States. The published product may be reproduced and distributed in its entirety without further permission from GAO. However, because this work may contain copyrighted images or other material, permission from the copyright holder may be necessary if you wish to reproduce this material separately. Page vi GAO-20-590G GAO Agile Assessment Guide Letter 441 G St. N.W. Washington, DC 20548 The U.S. Government Accountability Office (GAO) is responsible for, Preface among other things, assisting Congress in its oversight of the executive branch, including assessing federal agencies’ management of information technology (IT) systems. In prior audits, GAO has reported that federal agencies faced challenges in developing, implementing, and maintaining their IT investments. All too frequently, agency IT programs have incurred cost overruns and schedule slippages while contributing little to mission- related outcomes. Accordingly, in February 2015, GAO added the government’s management of
Recommended publications
  • Devops and Testers White Paper
    White Paper DevOps and Testers DevOps is part of an overall approach that organizations use to deliver software frequently and with high quality. The most obvious outcome of successful DevOps implementations is the reduction in the time it takes for software changes to transition from an idea to production. What Does DevOps Mean If you are an experienced DevOps Automated tools and processes practitioner, we hope that you are used in system configuration, for Testers might still find the article useful. If the build process, testing, the Background you are not a tester, we hope that deployment to test, staging and The DevOps movement (for want you will at least see the tester’s production environments, post- of a better label) is progressing perspective. deployment monitoring, evaluation, rapidly. Like many other and operations. movements in the industry, the What Is DevOps? speed of adoption accelerates Is DevOps Just About faster than the definition of the Simplistically, DevOps is a label movement itself. DevOps is still to describe an ecosystem in Tools? not well defined and the nuances which development teams and At one level, the goal of DevOps of culture, the emergent capability systems operations teams work is to eliminate bottlenecks in of new technologies, and range of more closely together. In the the delivery pipeline through (mostly successful) case studies so-called delivery pipeline, from automation. But the automation means that the issues at hand are committing source code to putting of staged processes still still widely debated.1 code into production, developers requires governance. Most accommodate and automate some automated processes are not Depending on who you talk to, of operations activities.
    [Show full text]
  • Safe® 5.0 Glossary Scaled Agile Framework Terms and Definitions English
    SAFe® 5.0 Glossary Scaled Agile Framework Terms and Definitions English PROVIDED BY www.scaledagileframework.com | www.scaledagile.com © Scaled Agile, Inc. Welcome to the SAFe® Glossary Make the Most of Your Learning Access the SAFe Community Platform Mange your member profile, access videos and training resources, join Communities of Practice, and more. Prepare Yourself Access your learning plan featuring your digital workbook, study materials, and certification practice test Become a Certified SAFe Professional Get certified to validate your knowledge, expand your professional capabilities, and open the door to new career opportunities. Access SAFe Content and Tools Access professional development resources and your trainer enablement plan to teach SAFe instructor-led courses. Collaborate in real time with your team and others Choose from ready-made templates to easily set up events like PI Planning and retrospectives—all with SAFe Collaborate. Showcase SAFe Credentials Display your digital badge to promote your SAFe capabilities and proficiencies throughout your career. community.scaledagile.com Guide to acronyms and abbreviations APD Agile Product Delivery OKR Objective and Key Results ART Agile Release Train OpEx Operating Expenses BO Business Owner PDCA Plan, Do, Check, Adjust BV Business Value PI Program Increment BVIR Big Visual Information Radiator PM Product Management CapEx Capital Expenses PO/PM Product Owner/Product Manager CD Continuous Deployment PO Product Owner CE Continuous Exploration ROAM Resolved, Owned, Accepted,
    [Show full text]
  • Improving Software Development Through Combination of Scrum and Kanban
    Recent Advances in Computer Engineering, Communications and Information Technology Improving Software Development through Combination of Scrum and Kanban VILJAN MAHNIC Faculty of Computer and Information Science University of Ljubljana Trzaska 25, SI-1000 Ljubljana SLOVENIA [email protected] Abstract: - Applying Kanban principles to software development is becoming an important issue in the area of software engineering. The number of Scrumban users, a method that combines Scrum and Kanban practices, almost doubled in the last year. While Scrum is well-known and widespread method, scientific literature about Kanban adoption is scarce and many questions regarding Kanban use in practice (e.g., the structure of Kanban board, setting appropriate work in progress limits, combining Kanban and other agile methods, etc.) are still open. The aim of this paper is to upgrade previous research of different Kanban boards by proposing structure of a generic Kanban board and ground rules for its use, which could serve as a guiding reference for teams planning to introduce Scrumban as their development process. Additionally, an example of using such a board in practice is provided. The paper starts from the premise that appropriate combination of Scrum and Kanban advantages makes the most from both. Therefore, the proposed solution combines the most important Scrum practices (release and Sprint planning, regular delivery of increments, frequent feedback) with basic Kanban principles (visualization of workflow, limiting work in progress, change management). Key-Words: - Scrum, Kanban, agile methods, software development, software process management, quality improvement 1 Introduction According to the last State of Agile Development Numerous agile methods [1] have appeared in the Survey [9], the most widespread agile method is last fifteen years that – in contrast to traditional Scrum [10, 11].
    [Show full text]
  • IBM Developer for Z/OS Enterprise Edition
    Solution Brief IBM Developer for z/OS Enterprise Edition A comprehensive, robust toolset for developing z/OS applications using DevOps software delivery practices Companies must be agile to respond to market demands. The digital transformation is a continuous process, embracing hybrid cloud and the Application Program Interface (API) economy. To capitalize on opportunities, businesses must modernize existing applications and build new cloud native applications without disrupting services. This transformation is led by software delivery teams employing DevOps practices that include continuous integration and continuous delivery to a shared pipeline. For z/OS Developers, this transformation starts with modern tools that empower them to deliver more, faster, with better quality and agility. IBM Developer for z/OS Enterprise Edition is a modern, robust solution that offers the program analysis, edit, user build, debug, and test capabilities z/OS developers need, plus easy integration with the shared pipeline. The challenge IBM z/OS application development and software delivery teams have unique challenges with applications, tools, and skills. Adoption of agile practices Application modernization “DevOps and agile • Mainframe applications • Applications require development on the platform require frequent updates access to digital services have jumped from the early adopter stage in 2016 to • Development teams must with controlled APIs becoming common among adopt DevOps practices to • The journey to cloud mainframe businesses”1 improve their
    [Show full text]
  • Case Study BMC12
    With guidance from Rally, BMC made a variety of changes to the organization to ensure success of their agile process. How BMC is Scaling Agile Development www.rallydev.com www.rallydev.com www.rallydev.com www.rallydev.com www.rallydev.com www.rallydev.com A Rally Customer Experience Report Something Ventured, Something Gained Designating an Agile Evangelist Scaling Agile Practices Across a Large Organization Creating a Highly Responsive Development Organization Requirements Runway, continued Despite a myriad of challenges and lessons learned, BMC This position was responsible for coordinating the training and rollout process; helping to resolve issues and facilitate Becky Strauss describes the concept like this: feels the end result is well worth the effort. The most The final measure any development process is in how it delivers value to customers. The move to Agile enables BMC to telling measure of their success is that the organization can communications. She also acted as ScrumMaster for the In BMC’s first year of agile development, they rolled out As you enter the Houston headquarters of “The benefits of Agile are multi-dimensional. create products in a way that is much more responsive to changing customer needs. Israel Gat summarizes it like this: not imagine going back to their old way of developing software. “scrum of scrums” as the need to coordinate multiple, agile processes and tools to over 300 people. Along the “The idea of a requirements runway is to plan ahead just enough to keep the project BMC Software and proceed across a peaceful, But the most important change is that it way, they learned some key lessons about successfully moving as fast as possible, without investing too much time and effort elaborating zen-like courtyard, you notice something that Agile is at BMC to stay.
    [Show full text]
  • Agile Software Development and Im- Plementation of Scrumban
    Joachim Grotenfelt Agile Software Development and Im- plementation of Scrumban Metropolia University of Applied Sciences Bachelor of Engineering Mobile Solutions Bachelor’s Thesis 30 May 2021 Abstrakt Författare Joachim Grotenfelt Titel Agile software utveckling och Implementation av Scrumban Antal Sidor 31 sidor Datum 30.05.2021 Grad Igenjör YH Utbildningsprogram Mobile Solutions Huvudämne Informations- och kommunikationsteknologi Instruktörer Mikael Lindblad, Projektledare Peter Hjort, Lektor Målet med avhandlingen var att studera agila metoder, hur de används i mjukvaruföretag och hur de påverkar arbetet i ett programvaruutvecklingsteam. Ett annat mål med avhandlingen var att studera bakgrunden till den agila metoden, hur den togs i bruk och hur den påverkar kundnöjdhet. I denna avhandling förklaras några existerande agila metoder, verktygen för hur agila metoder används, samt hur de påverkar programvaruutvecklingsteamet. Avhandlingen fokuserar sig på två agila metoder, Scrum och Kanban, eftersom de ofta används i olika företag. Ett av syftena med denna avhandling var att skapa förståelse för hur Scrumban metoden tas i bruk. Detta projekt granskar fördelarna med att ha ett mjukvaruutvecklingsteam som arbetar med agila processer. Projektet lyckades bra och en arbetsmiljö som använder agila metoder skapades. Fördelen blev att utvecklarteamet kunde göra förändringar när sådana behövdes. Nyckelord Agile, Scrum, Kanban, Scrumban Abstract Joachim Grotenfelt Author Basics of Agile Software Development and Implementation of Title Scrumban Number of Pages 31 pages Date 30.05.2021 Degree Bachelor of Engineering Degree Program Mobile Solutions Professional Major Information- and Communications Technology Instructors Mikael Lindblad, Project Manager Peter Hjort, Senior Lecturer The goal of the thesis is to study the Agile methods and how they affect the work of a soft- ware development team.
    [Show full text]
  • Agile Playbook V2.1—What’S New?
    AGILE P L AY B O OK TABLE OF CONTENTS INTRODUCTION ..........................................................................................................4 Who should use this playbook? ................................................................................6 How should you use this playbook? .........................................................................6 Agile Playbook v2.1—What’s new? ...........................................................................6 How and where can you contribute to this playbook?.............................................7 MEET YOUR GUIDES ...................................................................................................8 AN AGILE DELIVERY MODEL ....................................................................................10 GETTING STARTED.....................................................................................................12 THE PLAYS ...................................................................................................................14 Delivery ......................................................................................................................15 Play: Start with Scrum ...........................................................................................15 Play: Seeing success but need more fexibility? Move on to Scrumban ............17 Play: If you are ready to kick of the training wheels, try Kanban .......................18 Value ......................................................................................................................19
    [Show full text]
  • Managing Defects in an Agile Environment
    Managing Defects in an Agile environment Auteur Ron Eringa Managing Defects in an Agile environment Introduction Injecting passion, Agility Teams often struggle with answering the following and quality into your question: “How to manage our Defects in an organisation. Agile environment?”. They start using Scrum as a framework for developing their software and while implementing, they experience trouble on how to deal with the Defects they find/cause along the way. Scrum is a framework that does not explicitly tell you how to handle Defects. The strait forward answer is to treat your Defects as Product Backlog Items that should be added to the Product Backlog. When the priority is set high enough by the Product Owner, they will be picked up by the Development Team in the next Sprint. The application of this is a little bit more difficult and hence should be explained in more detail. RON ERINGA 1. What is a defect? AGILE COACH Wikipedia: “A software bug (or defect) is an error, flaw, After being graduated from the Fontys failure, or fault in a computer program or system that University in Eindhoven, I worked as a Software produces an incorrect or unexpected result, or causes Engineer/Designer for ten years. Although I it to behave in unintended ways. Most bugs arise have always enjoyed technics, helping people from mistakes and errors made by people in either a and organizations are my passion. Especially program’s source code or its design, or in frameworks to deliver better quality together. When people and operating systems used by such programs, and focus towards a common goal, interaction is a few are caused by compilers producing incorrect increasing and energy is released.
    [Show full text]
  • Designing Software Architecture to Support Continuous Delivery and Devops: a Systematic Literature Review
    Designing Software Architecture to Support Continuous Delivery and DevOps: A Systematic Literature Review Robin Bolscher and Maya Daneva University of Twente, Drienerlolaan 5, Enschede, The Netherlands [email protected], [email protected] Keywords: Software Architecture, Continuous Delivery, Continuous Integration, DevOps, Deployability, Systematic Literature Review, Micro-services. Abstract: This paper presents a systematic literature review of software architecture approaches that support the implementation of Continuous Delivery (CD) and DevOps. Its goal is to provide an understanding of the state- of-the-art on the topic, which is informative for both researchers and practitioners. We found 17 characteristics of a software architecture that are beneficial for CD and DevOps adoption and identified ten potential software architecture obstacles in adopting CD and DevOps in the case of an existing software system. Moreover, our review indicated that micro-services are a dominant architectural style in this context. Our literature review has some implications: for researchers, it provides a map of the recent research efforts on software architecture in the CD and DevOps domain. For practitioners, it describes a set of software architecture principles that possibly can guide the process of creating or adapting software systems to fit in the CD and DevOps context. 1 INTRODUCTION designing new software architectures tailored for CD and DevOps practices. The practice of releasing software early and often has For clarity, before elaborating on the subject of been increasingly more adopted by software this SLR, we present the definitions of the concepts organizations (Fox et al., 2014) in order to stay that we will address: Software architecture of a competitive in the software market.
    [Show full text]
  • LEVERAGING USER STORIES in AGILE TRANSFORMATION a Value-Driven Approach to Documenting Requirements for Agile Teams
    LEVERAGING USER STORIES IN AGILE TRANSFORMATION A Value-Driven Approach to Documenting Requirements for Agile Teams Meagan Foster Data & Analytics Intern, IQVIA, Inc. Summer 2020 INTERNSHIP PROJECTS + Connected Devices Project . Requirements development and management for module titles and user interface access . Document an end-to-end diagram for Connected Devices + Clinical Data Repository Tabular Project . Requirements development and management to enable CDR support for password protected SAS and excel-based files + Process Improvement Project . Best practices in creating user stories . “1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” Agile Manifesto PRESENTATION OVERVIEW + Agile Philosophy on Customer Value + Documenting Customer Value with User Stories + Reinforcing Customer Value with Quality Attributes + Navigating Customer Value with the Inspect-Adapt Approach PRESENTATION OVERVIEW + Agile Philosophy on Customer Value + Documenting Customer Value with User Stories + Reinforcing Customer Value with Quality Attributes + Navigating Customer Value with the Inspect-Adapt Approach AGILE TRANSFORMATION • Capterra states that 71% of companies are implementing Agile. • VersionOne reveals that Agile adoption has helped out 98% of companies. • Harvard Business Review declares that 60% of companies experience revenue growth and profits increase after using an Agile approach. • Standish Group Chaos Study reports that Agile success rate is 42%, as compared to Waterfall success rate of 26%. This means Agile is 1.5x more successful than Waterfall model. AGILE IS WAY OF THINKING. • Not everything needs to be figured out Fixed right away. Quality • Get feedback early and often. Estimate • Anticipate and quickly adapt to change. • Focus on bringing value to customers. THE PRODUCT BACKLOG (SCRUM) Implementable items to build features Features planned for delivery Vision, strategy, and ideas for new features and tools FIGURE 1.
    [Show full text]
  • Devops Point of View an Enterprise Architecture Perspective
    DevOps Point of View An Enterprise Architecture perspective Amsterdam, 2020 Management summary “It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.”1 Setting the scene Goal of this Point of View In the current world of IT and the development of This point of view aims to create awareness around the IT-related products or services, companies from transformation towards the DevOps way of working, to enterprise level to smaller sizes are starting to help gain understanding what DevOps is, why you need it use the DevOps processes and methods as a part and what is needed to implement DevOps. of their day-to-day organization process. The goal is to reduce the time involved in all the An Enterprise Architecture perspective software development phases, to achieve greater Even though it is DevOps from an Enterprise Architecture application stability and faster development service line perspective, this material has been gathered cycles. from our experiences with customers, combined with However not only on the technical side of the knowledge from subject matter experts and theory from organization is DevOps changing the playing within and outside Deloitte. field, also an organizational change that involves merging development and operations teams is Targeted audience required with an hint of cultural changes. And last but not least the skillset of all people It is specifically for the people within Deloitte that want to involved is changing. use this as an accelerator for conversations and proposals & to get in contact with the people who have performed these type of projects.
    [Show full text]
  • User Stories.Book
    User Stories Applied for Agile Software Development Mike Cohn Boston • San Francisco • New York • Toronto • Montreal London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Chapter 2 Writing Stories In this chapter we turn our attention to writing the stories. To create good sto- ries we focus on six attributes. A good story is: • Independent • Negotiable • Valuable to users or customers •Estimatable •Small •Testable Bill Wake, author of Extreme Programming Explored and Refactoring Workbook, has suggested the acronym INVEST for these six attributes (Wake 2003a). Independent As much as possible, care should be taken to avoid introducing dependencies between stories. Dependencies between stories lead to prioritization and plan- ning problems. For example, suppose the customer has selected as high priority a story that is dependent on a story that is low priority. Dependencies between stories can also make estimation much harder than it needs to be. For example, suppose we are working on the BigMoneyJobs website and need to write stories for how companies can pay for the job openings they post to our site. We could write these stories: 1. A company can pay for a job posting with a Visa card. 2. A company can pay for a job posting with a MasterCard. 17 18 WRITING STORIES 3. A company can pay for a job posting with an American Express card. Suppose the developers estimate that it will take three days to support the first credit card type (regardless of which it is) and then one day each for the second and third.
    [Show full text]