Software Development Going Incremental, Iterative and Agile:



Similar documents
A Comparison of Issues and Advantages in Agile and Incremental Development between State of the Art and an Industrial Case

Issues and Advantages of Using Agile and Incremental Practices

The Waterfall Model in Large-Scale Development

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

Comparing Agile Software Processes Based on the Software Development Project Requirements

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Basic Trends of Modern Software Development

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

AGILE vs. WATERFALL METHODOLOGIES

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Agile So)ware Development

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

The Impact of an Agile Methodology on Software Development Costs

Agile Projects 7. Agile Project Management 21

Comparative Analysis of Different Agile Methodologies

An Agile Project Management Model

Advanced Software Engineering. Software Development Processes

Measuring the Flow in Lean Software Development

Introduction to Agile Software Development Process. Software Development Life Cycles

The Role of Agile Methodology in Project Management

SOFTWARE PROCESS MODELS

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

Agile Software Development Methodologies & Correlation with Employability Skills

Introduction to Agile Software Development

Identifying Friction between Large-scale Agile Software Development and Plan-based Business Processes

Perspectives on Productivity and Delays in Large-Scale Agile Projects

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Agile Metrics. It s Not All That Complicated

CSE 435 Software Engineering. Sept 16, 2015

Kai Petersen. Blekinge Institute of Technology Doctoral Dissertation Series No. 2010:04. School of Computing

Stakeholder Communication in Software Project Management. Modelling of Communication Features

Quality Assurance in an Agile Environment

Quality Assurance Software Development Processes

Agile and Secure: Can We Be Both?

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Role of Agile Methodology in Software Development

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Generalizing Agile Software Development Life Cycle

Changing Roles and Responsibilities from Traditional project management to Agile project management

Introduction to Agile and Scrum

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

AGILE SOFTWARE DEVELOPMENT

Extreme Programming, an agile software development process

Vragen. Software development model. Software development model. Software development model

Agile with XP and Scrum

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

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

Agile project management: A magic bullet?

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson

Why All the Fuss About Agile (And Why You Should Care)

EPL603 Topics in Software Engineering

Software Development Methodologies in Industry. By: Ahmad Deeb

Agility in Project Management

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

SOFTWARE ARCHITECTURE QUALITY EVALUATION

A Case Study on Benefits and Side-Effects of Agile Practices in Large-Scale Requirements Engineering

Hamid Faridani March 2011

J-Curve effect, 38, JIT. See Just-in-Time Inventory Just Enough Design Initially (JEDI), 6, 283

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Software Development with Agile Methods

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations

By Paula Rome, Senior TestTrack Product Manager

Agile Software Development

BAL2-1 Professional Skills for the Business Analyst

Lean Software Development and Kanban

An Overview of Quality Assurance Practices in Agile Methodologies

Scrum in a Large Project Theory and Practice

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Engineering and Scientific Computing

Agile and lean methods for managing application development process

Extreme Programming, an agile software development process

CMMI - The AGILE Way By Hitesh Sanghavi

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

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Agile Software Development in the Large

Agile Processes and Methodologies: A Conceptual Study

Mapping The Best Practices of XP and Project Management: Well defined approach for Project Manager

How to manage agile development? Rose Pruyne Jack Reed

Agile Development Overview

Agile and lean methods for managing application development process

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

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

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

When is Agile the Best Project Management Method? Lana Tylka

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

SECC Agile Foundation Certificate Examination Handbook

LEAN AGILE POCKET GUIDE

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

Agile Software Development Methodologies and Its Quality Assurance

How To Understand The Limitations Of An Agile Software Development

Agile and Evolutionary Software Development

An Efficient Objective Quality Model for Agile Application Development

Transcription:

Software Development Going Incremental, Iterative and Agile: Advantages and Challenges An Industrial Case Study Prof. Claes Wohlin, Blekinge Institute of Technology, Sweden Professorial Visiting Fellow, UNSW Kai Petersen (BTH / Ericsson AB) The Evolution of Software Process Models Salo, O., Enabling Software Process Improvement in Agile Software Development Teams and Organisations thesis, VTT, Espoo, 2006, Finland. 1

Plan versus Change Driven Development Communication Management Documentation Plan-driven models Processes and tools are more important than informal communication Command-and-control style of management with clear separation of roles All tasks to be performed and the desired outcomes of each phase is specified from the beginning Change-driven models Self-organizing teams that coordinate by informal communication The project manager is a coach or facilitator. The team organizes itself and makes the decisions concerning what to do Processes, principles, work structures are recognized during the project rather than predetermined 2

Motivation for Work Flexibility in reacting to changing requirements is a major success factor for software companies Plan-driven approaches are not sufficiently flexible Research gap: Understanding of agile methods (issues / benefits) Focus only on XP Lack of rigor in research methods Understanding d gof the impact of process ocesschange including agile Thus: We need (industrial) studies comparing incremental/iterative/agile with other models 3

Study Goals Gain an in-depth understanding of benefits and problems in different development approaches and comparison between them. For example, what are the actual problems with a waterfall approach? Measure the impact of change from waterfall to a mixture of incremental, iterative and agile Research context Company: Industrial case study at Ericsson AB, Karlskrona Telecommunication domain, dynamic market, high degree of customization, global software engineering Moving from a waterfall approach with projects taking 12-18 18 months to an approach that it is a combination of incremental, iterative and agile 4

Market Needs Customer Specific Needs Change in Needs Change in Needs NEW MODEL Requirements Repository equirements Project Re Latest System Version Requirement Package Project A LSV Requirement Package Customer Specific Requirement Project B Project C Customer Adaptation Project Requirement Package Project D Requirement Package Project E LSV LSV LSV LSV Projects deliver increments Work in projects is done iteratively Agile practices are used within projects Release Release N Potential Release Release N+1 Customer Adaption Potential Release Potential Release T Agile and Incremental Practices @Company (marked with red) Principle Incremental XP SCRUM C Iterations and Increments X X X X Internal and External Releases X X Time Boxing X X X X No Change of Started Projects X X X Incremental Deliveries X On-site Customer X X Frequent Face-to-Face Interaction X X X Self-Organizing Teams X X Empirical Process X X Sustainable Discipline X Adaptive Planning X X Requirements Prioritization X X X Fast Decision Making X Frequent Integration X X X Simplicity of Design X Refactoring X Team Code Ownership X 5

Research context - system Units of Analysis: Language Size (LOC) #Persons Overall Sys > 5,000.000 - Subsystem 1 C++ 300,000 43 Subsystem 2 C++ 850,000 53 Subsystem 3 Java 24,000 17 Apache C++ 220,000 90 Research questions What are the issues / benefits of the waterfall model and the new development model respectively, and how do they differ? How have performance measures changed after implementing the new model? 6

Research design: data collection Several data collections methods were used: 33 interviews across the whole development lifecycle (different roles) covering different subsystems with more than 30 hours of transcribed interview data Archival analysis of process documentation Measurements collected by company Requirements waste and change requests Quality data (fault-slip-through, maintenance) Research design: data analysis A model for classification was developed: General issues (relevant for more than one sub-system and more than one role) Number of responses used to classify issues into: critical (A), very important (B), important factors (C) and others (D) Local issues (only one component or one role) 7

Results: Comparison of issues Class. Mod. PA Description A WF RE A WF VV B WF VV B WF VV B IIA VV C WF RE C WF C WF PM C IIA VV Waste of requirements work Amount of faults increases with late test Faults found late hard / expensive to fix Low quality in system test increases testing time Too much unused documentation produced in RE Design free capacity due to long RE duration Confusion who implements what requirements Maint. High number of corrections released Specialized competence / lack of confidence C IIA Rel. Release project involved too late in process C IIA PM Management overhead for coordination 8

Class. Mod. PA Description A WF RE A WF VV B WF VV B WF VV B IIA VV C WF RE C WF C WF PM C IIA VV Waste of requirements work 9 out of 13 general issues are related to the waterfall model Amount of faults increases w. late test Faults found late hard / expensive to fix Low quality in sys.test increases testing time AND Too much unused doc. produced in RE Design free capacity due to long RE lead time The waterfall issues are more crucial (see issues A and B) Confusion who implements what requirements vers. Maint. High number of corrections released Specialized competence / lack of confidence C IIA Rel. Release project involved too late in process C IIA PM Management overhead for coordination Class. Mod. PA Description A WF RE A WF VV B WF VV B WF VV B IIA VV C WF RE C WF Waste of requirements work The major problems are related to requirements engineering and verification and validation Amount of faults increases w. late test Faults found late hard / expensive to fix Low quality in sys.test increases testing time Too much unused doc. produced in RE For agile, the verification problem is the highest ranked Design free capacity due to long RE lead time Confusion who implements what requirements vers. Maint. High number of corrections released C WF PM Specialized competence / lack of confidence Severity of requirements C IIA VV problem seems reduced C IIA Rel. Release project involved too late in process C IIA PM Management overhead for coordination 9

Class. Mod. PA Description A WF RE A WF VV B WF VV B WF VV B IIA VV C WF RE C WF C WF PM C IIA VV Waste of requirements work Amount of faults increases with late test Faults found late hard / expensive to fix Low quality in sys.test increases testing time : less of a problem in agile development Too much unused doc. produced in RE Design free capacity due to long RE lead time Confusion who implements what requirements vers. Maint. High number of corrections released Specialized competence / lack of confidence C IIA Rel. Release project involved too late in process C IIA PM Management overhead for coordination Results: Improvements through new model 10

RE RE RE VV VV PM More stable requiremens reduce rework Everything started is implemented Estimations based on req. are more precise Early fault detection and feedback from test The duration of testing is reduced Moving people together reduces documentation (documentation replaced by direct communication) Measures 11

Quality measures Reduction of fault-slip-through in system test from 31 % to 19 % -> improvement in early testing Overall improvement in testing reflected in stabilized maintenance costs 160% 140% 120% Maintenance Cost (Baseline) Maintenance Cost Actual Co ost (in %) 100% 80% 60% 40% 20% 0% 2002 2003 2004 2005 2006 2007 2008 Year Requirements waste Reduction of discarded requirements (less de-scoping) Waterfall Incremental, iterative and agile 26% 4% Implemented Waste 74% 96% 12

Conclusion Incremental, iterative and agile practices have reduced the severity of requirements engineering problems Test coverage and quality of the products are improved However, incremental, iterative and agile development comes with a set of new challenges! Testing still requires improvement Things get easier on project level, but become harder on product and management levels (e.g. coordination!) More details Petersen, K. and Wohlin, C., The Effect of Moving from a Plan-driven to an Incremental Software Development Approach with Agile Practices, Empirical Software Engineering, Vol. 15, No. 6, pp. 654-693, 2010. Questions? 13