Agile Software Development Methods: Review and Analysis

Total Page:16

File Type:pdf, Size:1020Kb

Agile Software Development Methods: Review and Analysis Agile Software Development Methods: Review and Analysis Authors: Pekka Abrahamsson, Outi Salo, Jussi Ronkainen and Juhani Warsta This is the author's version of the work. The definite version was published in: Abrahamsson, P., Salo, O., Ronkainen, J. & Warsta, J. (2002) Agile software development methods: Review and analysis, VTT publication 478, Espoo, Finland, 107p. Copyright holder’s version can be downloaded from http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf. This is the author's version of the work. The definite version was published in: Abrahamsson, P., Salo, O., Ronkainen, J. & Warsta, J. (2002) Agile software development methods: Review and analysis, VTT publication 478, Espoo, Finland, 107p. Copyright holder’s version can be downloaded from http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf. This is the author's version of the work. The definite version was published in: Abrahamsson, P., Salo, O., Ronkainen, J. & Warsta, J. (2002) Agile software development methods: Review and analysis, VTT publication 478, Espoo, Finland, 107p. Copyright holder’s version can be downloaded from http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf. Keywords: Software development, software project management, agile process, light-weight process, extreme programming, feature driven development, dynamic systems development method, scrum, pragmatic programming, agile modeling, open source software development, rational unified process, adaptive software development, crystal family of methodologies 3 This is the author's version of the work. The definite version was published in: Abrahamsson, P., Salo, O., Ronkainen, J. & Warsta, J. (2002) Agile software development methods: Review and analysis, VTT publication 478, Espoo, Finland, 107p. Copyright holder’s version can be downloaded from http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf. Contents 1. Introduction..................................................................................................... 9 2. Agile overview, definitions and characterizations........................................ 11 2.1. Background.......................................................................................... 11 2.2. Overview and definitions .................................................................... 13 2.3. Characterization................................................................................... 16 2.4. Summary.............................................................................................. 19 3. Existing agile methods.................................................................................. 20 3.1. Extreme Programming......................................................................... 20 3.1.1. Process .................................................................................... 21 3.1.2. Roles and responsibilities........................................................ 23 3.1.3. Practices .................................................................................. 24 3.1.4. Adoption and experiences....................................................... 27 3.1.5. Scope of use ............................................................................ 28 3.1.6. Current research ...................................................................... 29 3.2. Scrum................................................................................................... 29 3.2.1. Process .................................................................................... 30 3.2.2. Roles and responsibilities........................................................ 32 3.2.3. Practices .................................................................................. 33 3.2.4. Adoption and experiences....................................................... 36 3.2.5. Scope of use ............................................................................ 37 3.2.6. Current research ...................................................................... 37 3.3. Crystal family of methodologies ......................................................... 38 3.3.1. Process .................................................................................... 40 3.3.2. Roles and responsibilities........................................................ 44 3.3.3. Practices .................................................................................. 45 3.3.4. Adoption and experiences....................................................... 47 3.3.5. Scope of use ............................................................................ 48 3.3.6. Current research ...................................................................... 48 3.4. Feature Driven Development............................................................... 49 3.4.1. Process .................................................................................... 49 3.4.2. Roles and responsibilities........................................................ 52 3.4.3. Practices .................................................................................. 55 4 This is the author's version of the work. The definite version was published in: Abrahamsson, P., Salo, O., Ronkainen, J. & Warsta, J. (2002) Agile software development methods: Review and analysis, VTT publication 478, Espoo, Finland, 107p. Copyright holder’s version can be downloaded from http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf. 3.4.4. Adoption and experiences....................................................... 56 3.4.5. Scope of use ............................................................................ 56 3.4.6. Current research ...................................................................... 57 3.5. The Rational Unified Process.............................................................. 57 3.5.1. Process .................................................................................... 57 3.5.2. Roles and responsibilities........................................................ 60 3.5.3. Practices .................................................................................. 61 3.5.4. Adoption and experiences....................................................... 62 3.5.5. Scope of use ............................................................................ 63 3.5.6. Current research ...................................................................... 63 3.6. Dynamic Systems Development Method ............................................ 63 3.6.1. Process .................................................................................... 64 3.6.2. Roles and responsibilities........................................................ 67 3.6.3. Practices .................................................................................. 68 3.6.4. Adoption and experiences....................................................... 70 3.6.5. Scope of use ............................................................................ 71 3.6.6. Current research ...................................................................... 72 3.7. Adaptive Software Development......................................................... 72 3.7.1. Process .................................................................................... 72 3.7.2. Roles and responsibilities........................................................ 76 3.7.3. Practices .................................................................................. 76 3.7.4. Adoption and experiences....................................................... 76 3.7.5. Current research ...................................................................... 77 3.8. Open Source Software development ................................................... 78 3.8.1. Process .................................................................................... 79 3.8.2. Roles and responsibilities........................................................ 80 3.8.3. Practices .................................................................................. 82 3.8.4. Adoption and experiences....................................................... 83 3.8.5. Scope of use ............................................................................ 84 3.8.6. Current research ...................................................................... 84 3.9. Other Agile Methods ........................................................................... 86 3.9.1. Agile Modeling ....................................................................... 86 3.9.2. Pragmatic Programming.......................................................... 88 4. Comparison of agile methods ....................................................................... 91 4.1. Introduction ......................................................................................... 91 4.2. General features................................................................................... 92 5 This is the author's version of the work. The definite version was published in: Abrahamsson, P., Salo, O., Ronkainen, J. & Warsta, J. (2002) Agile software development methods: Review and analysis, VTT publication 478, Espoo, Finland, 107p. Copyright holder’s version can be downloaded from http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf. 4.3. Adoption.............................................................................................. 97 5. Conclusions................................................................................................. 105 References........................................................................................................
Recommended publications
  • The Timeboxing Process Model for Iterative Software Development
    The Timeboxing Process Model for Iterative Software Development Pankaj Jalote Department of Computer Science and Engineering Indian Institute of Technology Kanpur – 208016; India Aveejeet Palit, Priya Kurien Infosys Technologies Limited Electronics City Bangalore – 561 229; India Contact: [email protected] ABSTRACT In today’s business where speed is of essence, an iterative development approach that allows the functionality to be delivered in parts has become a necessity and an effective way to manage risks. In an iterative process, the development of a software system is done in increments, each increment forming of an iteration and resulting in a working system. A common iterative approach is to decide what should be developed in an iteration and then plan the iteration accordingly. A somewhat different iterative is approach is to time box different iterations. In this approach, the length of an iteration is fixed and what should be developed in an iteration is adjusted to fit the time box. Generally, the time boxed iterations are executed in sequence, with some overlap where feasible. In this paper we propose the timeboxing process model that takes the concept of time boxed iterations further by adding pipelining concepts to it for permitting overlapped execution of different iterations. In the timeboxing process model, each time boxed iteration is divided into equal length stages, each stage having a defined function and resulting in a clear work product that is handed over to the next stage. With this division into stages, pipelining concepts are employed to have multiple time boxes executing concurrently, leading to a reduction in the delivery time for product releases.
    [Show full text]
  • Agile and Devops Overview for Business
    NELKINDA SOFTWARE CRAFT Ƅ TRAINING Agile and DevOps Overview for Business Duration: 2 Days Available Languages: English Audience Everyone who is steering or involved in software delivery: Business, Management, Operations, Development, for example: CxOs, managers, directors, team leads, systems administrators, development managers, business analysts, requirements engineers, architects, product owners, scrum masters, IT operations sta', IT stakeholders, developers, testers Goals Agile and DevOps are the big drivers of organizational transformation today. What do they mean? Where do they come from? What are their goals? How can they help my organization and my team? How can I use and implement them? And are there any side-e'ects or challenges to consider? Learn the answers to these questions in a holistic perspective from the CxO level to the code about what Agile and DevOps mean for organizations of all sizes. Contents • Business Case for Improving the Software Development Life Cycle ◦ Evolution of the Software Development Life Cycle (SDLC) ◦ Business Drivers of the SDLC Evolution ◦ Principles of Agile, DevOps, Extreme Programming (XP), and Software Craft ◦ Goals and Objectives of Agile, DevOps (Development Operations), XP, and Software Craft ◦ The Pipeline for Value Delivery • Essential Principles ◦ Manifesto for Agile Software Development ("Agile Manifesto") ◦ The Values and Principles of XP ◦ Manifesto of Software Craft ◦ The Two Values of Software ◦ The Deming (PDCA, plan-do-check-act) Cycle ◦ The XP Feedback Loops ◦ Parkinson's Law and Timeboxing ◦ Conway's Law, Organizational Structure and Cross-functional responsibility ◦ KPIs (Key Performance Indicators) and Drivers: Story-Point Velocity, Cycle Time, WIP (Work In Progress) limit ◦ Heisenberg's Uncertainty Principle of Agile Estimation 1/3 https://nelkinda.com/training/DevOps-Driven-Agile © Copyright 2015-2020 Nelkinda Software Craft Private Limited.
    [Show full text]
  • Multi Objective Analysis for Timeboxing Models of Software Development
    MULTI OBJECTIVE ANALYSIS FOR TIMEBOXING MODELS OF SOFTWARE DEVELOPMENT Vassilis C. Gerogiannis and Pandelis G. Ipsilandis Department of Project Management, Technological Education Institute of Larissa, Larissa, Greece Keywords: Software Project Management, Iterative Development, Timeboxing, Project Scheduling, Linear Programming, Multi-Objective Optimization. Abstract: In iterative/incremental software development, software deliverables are built in iterations - each iteration providing parts of the required software functionality. To better manage and monitor resources, plan and deliverables, iterations are usually performed during specific time periods, so called “time boxes”. Each time box is further divided into a sequence of stages and a dedicated development team is assigned to each stage. Iterations can be performed in parallel to reduce the project completion time by exploiting a “pipelining” concept, that is, when a team completes the tasks of a stage, it hands over the intermediate deliverables to the team executing the next stage and then starts executing the same stage in the next iteration. In this paper, we address the problem of optimizing the schedule of a software project that follows an iterative, timeboxing process model. A multi objective linear programming technique is introduced to consider multiple parameters, such as the project duration, the work discontinuities of development teams in successive iterations and the release (delivery) time of software deliverables. The proposed model can be used to generate alternative project plans based on the relative importance of these parameters. 1 INTRODUCTION team of experts is usually assigned to each stage, i.e., a team for a stage performs only the activities In iterative and incremental development, software for that stage.
    [Show full text]
  • TASKCHECKLIST W
    060-97_dennis3e_03.qxd 10/7/05 11:39 AM Page 60 PLANNING ✔ Identify Project ✔ Develop Systems Request ✔ Analyze Technical Feasibility ✔ Analyze Economic Feasibility ✔ Analyze Organizational Feasibility ✔ Perform Project Selection Review Estimate Project Time Identify Project Tasks Create Work Breakdown Structure Create PERT Charts Create Gantt Charts Manage Scope Staff Project Create Project Charter Set up CASE Repository Develop Standards Begin Documentation Assess and Manage Risk TASKCHECKLIST ▼ PLANNING ANALYSIS DESIGN 060-97_dennis3e_03.qxd 10/7/05 11:40 AM Page 61 CHAPTER 3 PROJECT MANAGEMENT T his chapter describes the important steps of project management, which begins in the Planning Phase and continues throughout the systems development life cycle (SDLC). First, the project manager estimates the size of the project and identifies the tasks that need to be performed. Next, he or she staffs the project and puts several activities in place to help coordinate project activities. These steps produce important project man- agement deliverables, including the workplan, staffing plan, and standards list. OBJECTIVES I Become familiar with estimation. I Be able to create a project workplan. I Understand why project teams use timeboxing. I Become familiar with how to staff a project. I Understand how computer-aided software engineering, standards, and documen- tation improve the efficiency of a project. I Understand how to reduce risk on a project. CHAPTER OUTLINE Introduction Staffing Plan Identifying Project Size Motivation Function Point
    [Show full text]
  • A Brief History of Devops by Alek Sharma Introduction: History in Progress
    A Brief History of DevOps by Alek Sharma Introduction: History in Progress Software engineers spend most of their waking hours wading George Santayana wrote that “those who cannot remember the through the mud of their predecessors. Only a few are lucky past are condemned to repeat it.” He was definitely not thinking enough to see green fields before conflict transforms the about software when he wrote this, but he’s dead now, which terrain; the rest are shipped to the front (end). There, they means he can be quoted out of context. Oh, the joys of public languish in trenches as shells of outages explode around them. domain! Progress is usually glacial, though ground can be covered This ebook will be about the history of software development through heroic sprints. methodologies — especially where they intersect with traditional best practices. Think of it as The Silmarillion of Silicon Valley, But veterans do emerge, scarred and battle-hardened. They except shorter and with more pictures. Before plunging into this revel in relating their most daring exploits and bug fixes to new rushing river of time, please note that the presented chronology recruits. And just as individuals have learned individual lessons is both theoretically complete and practically in progress. In other about writing code, our industry has learned collective lessons words, even though a term or process might have been coined, it about software development at scale. It’s not always easy to always takes more time for Best Practices to trickle down to Real see these larger trends when you’re on the ground — buried in Products.
    [Show full text]
  • Agile Practices
    Founda'ons of Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as both a set of iterave process prac.ces and a business approach for aligning customer needs with development. • Explain the mo.vaon behind and reason about the tradeoffs presented by several common agile prac.ces. • Summarize both scrum and extreme programming, and provide mo.vaon and tradeoffs behind their prac.ces. • Iden.fy and jus.fy the process prac.ces from the agile tradi.on that are most appropriate in a given modern development process. 2 What problems are there in soware development? 3 Agile So,ware Development Is … Both: • a set of soMware engineering best prac.ces (allowing for rapid delivery of high quality soMware) • a business approach (aligning development with customer needs and goals) 4 Brief History of Agile XP reified: Kent Beck Incepon of Iterave and released Extreme Incremental Development (IID): Introducon of Scrum: Programming Explained: Walter Shewhart (Bell Labs, Jeff Sutherland and Ken Embrace Change signal transmission) proposed a Schwaber presented a paper Introduc&on of “Agile”: series of “plan-do-study- describing the Scrum The Agile Manifesto act” (PDSA) cycles methodology at a conference wri[en by 17 soMware workshop developers Introducon of the waterfall: Winston Royce’s ar.cle Managing the Development of Large So<ware Systems 1930s 1970 1995 1999 2001 5 Agile in a nutshell • A project management approach that seeks to respond to change and unpredictability, primarily using incremental, iterave work sequences (oMen called “sprints”). • Also: a collec.on of prac.ces to facility that approach.
    [Show full text]
  • Software Process Overview
    1/18/17 Software Process Overview • What is software process? • Examples of process models • Unified Process (UP) • Agile software development N. Meng, B. Ryder 2 1 1/18/17 Software Process • Definition [Pressman] – a framework for the tasks that are required to build high-quality software. – to provide stability, control and organization to an otherwise chaotic activity N. Meng, B. Ryder 3 Code-and-Fix Process • The first thing people tried in the 1950s 1.Write program 2.Improve it (debug, add functionality, improve efficiency, ...) 3.GOTO 1 • Works for small 1-person projects and for some CS course assignments N. Meng, B. Ryder 4 2 1/18/17 Problems with Code-and-Fix • Poor match with user needs • Bad overall structure – No blueprint • Poor reliability - no systematic testing • Maintainability? What’s that? • What happens when the programmer quits? N. Meng, B. Ryder 5 Code-and-Fix Process From McConnell, After the Goldrush, 1999 N. Meng, B. Ryder 6 3 1/18/17 A More Advanced Process N. Meng, B. Ryder 7 Examples of Process Models • Waterfall model • Prototyping model • Spiral model • Incremental model N. Meng, B. Ryder 8 4 1/18/17 Waterfall Model • The “classic” process model since 1970s – Also called “software life cycle” Analysis Design Implementation Testing & Integration Maintenance N. Meng, B. Ryder 9 Analysis Design Implementation Waterfall Phases Testing & Integration Maintenance • Analysis: Define problems – requirements, constraints, goals and domain concepts • Design: Establish solutions – System architecture, components, relationship • Implementation: Implement solutions • Testing and integration: Check solutions – Unit testing, system testing • Maintenance: the longest phase N. Meng, B.
    [Show full text]
  • Improving Your Development Process Codeworks 2009 - San Francisco, US Derick Rethans - [email protected] - Twitter: @:-:Twitter:-: About Me
    Improving Your Development Process CodeWorks 2009 - San Francisco, US Derick Rethans - [email protected] - twitter: @:-:twitter:-: http://derickrethans.nl/talks.php About Me Derick Rethans [email protected] ● Dutchman living in London ● Project lead for eZ Components at eZ Systems A.S. ● PHP development ● Author of the mcrypt, input_filter and date/time extensions ● Author of Xdebug The Audience ● Developer? Team lead? Something else? ● Size per team: 1 or 2 developers, 3-5 developers, 6-10 devs, more? ● New team? ● CVS/SVN? Testing? IDEs? Peer review? The Old Environment Years ago, this is how I started... and how many new PHP developers still start when they get acquainted with the language: ● PHP files are on the server only ● They are editted with a very simple editor, like vim ● (Alternatively, FTP and Notepad are used) ● Coding standards are optional In more commercial environments, many things are often missing: ● There are no proper specs ● Source control is not heard off ● Things are released or delivered "when they are ready" ● This is not a sustainable environment More People ➠ More Problems ● Overwriting changes happens all the time ● No "accountability" of mistakes ● Who does what from the spec that doesn't exist? ● How well do parts coded by different developers integrate? Introducing the Basics ● Set-up some sort of process and guidelines: coding standards, local development server, pushing out to staging/life servers, plan time for testing ● Source Control: CVS, SVN, or some of the newer ones ● Write requirements and specifications Coding Standards ● Makes it easier for all participants of the team to read code, as all the code conforms to the same rules.
    [Show full text]
  • Four Principles of Agile Triage Doug Rosenberg ICONIX
    Four Principles of Agile Triage Doug Rosenberg ICONIX There’s an epidemic of bad software floating around these days. Chances are you’ve encountered buggy and/or unnecessarily hard to use software recently. This epidemic isn’t really surprising, especially if you’ve read the books I’ve written with Matt Stephens: Design Driven Testing or Extreme Programming Refactored or Agile Development with ICONIX Process. There’s a bunch of agile development shops out there underspecifying their software and (as a result) testing it inadequately, so that you and I can have the privilege of debugging it for them and putting new user stories onto their backlog. Imagine for a moment that you’re working at a company where the agile development process has gone off the rails and there is a train wreck. There’s a lot of smoke from the burndown charts burning up. Bodies are strewn all around, there are broken bones and people are bleeding everywhere. Some parts of your code are savable, and some have to be thrown away. You need to triage the situation and do damage control. Here are some guiding principles for your triage effort: 1. You can’t unit test what you forgot to remember. 2. You can't do scenario testing without modeling scenarios 3. You can't do requirement testing without modeling requirements 4. Excessive timeboxing results in shoddy workmanship Lets take these one at a time: Unit testing is necessary but it’s not sufficient. It doesn’t seem like it should be necessary to point this out, but by definition, you can only write unit tests for the conditions you’ve already thought about.
    [Show full text]
  • Timeboxing: Hurdles and Solutions
    International Journal of Science and Research (IJSR) ISSN (Online): 2319-7064 Index Copernicus Value (2013): 6.14 | Impact Factor (2013): 4.438 Timeboxing: Hurdles and Solutions Basant Namdeo International Institute of Professional Studies, Devi Ahilya University, Indore, India Abstract: Time boxing is beneficial to industry and end users in terms of saving time, money and human resources. Time boxing model posses some serious issues like (1) Structural dependency, (2) Deliverable dependency, and (3) Uneven logic in work distribution. In this paper we are proposing solutions to these problems. Thus this paper may be useful to software development industry, users of that software, scientists and students. Keywords: Timeboxing, pipelining, software process, iterative development, team communication. 1. Introduction Today’s competitive world, companies are required to develop new product in speed and flexible way. Companies are increasingly realizing that the old, sequential approach to developing new products simply won't get the job done [1]. So the companies are interested to develop software very fast with the existing resources. Software development is not a single part. This thing can be divided in to various parts of task and each part of task can be assign to the team of employees who are expert in that particular task. Jalote et al. [2] proposed the timeboxing process model that takes the concept of time boxed iterations further by adding pipelining concepts to it for permitting overlapped execution of different iterations. In the timeboxing process model, each time boxed iteration is divided into equal length stages, each stage having a defined function and resulting in a clear work product that is handed over to the next stage[2].
    [Show full text]
  • Agile Methode Reffrences
    AGILE METHODE REFFRENCES All rights reserved. No part of this publication may be reproduced, distributed, stored in a data processing system, or published in any form by print, photocopy or any other means whatsoever without the prior written consent of the authors and publisher. This material contains diagrams and text information based upon: Agile Foundation – Certify To Inspire ©Agile Consortium All other brands, companies, and product names are used for identification purposes only and may be trademarks that are the sole property of their respective owners. © Van Haren Learning Solution 2 Table of contents Contents Introduction ................................................................................................................................ 4 Agile – adaptability is the new norm ..................................................................................... 4 The Certify To Inspire Program of the Agile Consortium ......................................................... 5 The Agile Consortium – the community ............................................................................... 5 The Agile Consortium Annual Conference ........................................................................... 5 The Agile Foundation Certificate .............................................................................................. 7 It starts with you..................................................................................................................... 7 Exam structure ......................................................................................................................
    [Show full text]
  • Fast, Flexible, Polyglot Instrumentation Support for Debuggers and Other Tools
    Fast, Flexible, Polyglot Instrumentation Support for Debuggers and other Tools Michael L. Van De Vanter1, Chris Seaton2, Michael Haupt3, Christian Humer4, and Thomas Würthinger5 1 Oracle Labs [email protected] 2 Oracle Labs [email protected] 3 [email protected]∗ 4 Oracle Labs [email protected] 5 Oracle Labs [email protected] Abstract Software development tools that interact with running programs, for instance debuggers, are presumed to demand difficult tradeoffs among performance, functionality, implementation complexity, and user convenience. A fundamental change in thinking obsoletes that presumption and enables the delivery of effective tools as a forethought, no longer an afterthought. We have extended the open source multi-language Graal platform with a language-agnostic Instrumentation Framework, including (1) low-level, extremely low-overhead execution event interposition, built directly into the high-performance runtime; (2) shared language-agnostic instrumentation services, requiring minimal per-language specialization; and (3) versatile APIs for constructing many kinds of client tools without modifying the VM. A new design uses this framework to implement debugging services for arbitrary languages (possibly in combination) with little effort from language implementor. We show that, when optimized, the service has no measurable overhead and generalizes to other kinds of tools. It is now possible for a client in a production environment, with thread safety, to dynamically insert into an executing program an instrumentation probe that incurs near zero performance cost until actually used to access (or modify) execution state. Other applications include tracing and stepping required by some languages, as well as platform requirements such as the need to timebox script executions.
    [Show full text]