8 VIIKOSSA VALMISTA: KUINKA KETTERÄ AGILE VOI OLLA? Pekka Abrahamsson, PhD 15.12.2004 Nääsvillen Oliopäivät VTT TECHNICAL RESEARCH CENTRE OF FINLAND CONTENTS • Part I: Agile philosophy & rationale • Part II: Existing agile software development approaches • Part III: Empirical data from case projects • Part IV: Future & conclusions 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 2 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Part I: Agile philosophy & rationale 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 3 VTT TECHNICAL RESEARCH CENTRE OF FINLAND AGILE THINKING EXPLAINED Need to respond to constant changes Values Principles Practices The fundamental reason for a “new” paradigm Defines the set of most important beliefs of what is truly important Defines a set ways to meet the values Defines in detail how this is implemented in practice 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 4 VTT TECHNICAL RESEARCH CENTRE OF FINLAND AGILE VALUES… 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson Source: www.agilemanifesto.org 5 VTT TECHNICAL RESEARCH CENTRE OF FINLAND THE 12 AGILE PRINCIPLES (1/3) DESCRIPTION 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to a shorter timescale. 4. Business people and developers must work together daily throughout the project 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson SUMMARY 1. Satisfy customer through early and frequent delivery. 2. Welcome changing requirements even late in the project. 3. Keep delivery cycles short (e.g., every couple of weeks). 4. Business people and developers work together daily throughout the project. 6 VTT TECHNICAL RESEARCH CENTRE OF FINLAND THE 12 AGILE PRINCIPLES (2/3) 5. Build project around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 5. Build projects around motivated individuals. 6. The most efficient and effective method of conveying information to and within development team is face-to-face conversation. 6. Place emphasis on face-to-face Communication. 7. Working software is the primary measure for progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 7. Working software is the primary measure of progress. 8. Promote sustainable development pace. 7 VTT TECHNICAL RESEARCH CENTRE OF FINLAND THE 12 AGILE PRINCIPLES (3/3) 9. Continuous attention to technical excellence and good design enhances agility. 9. Continuous attention to technical excellence and good design. 10. Simplicity – the art of maximizing the amount of work not done – is essential. 10. Simplicity is Essential. 11. The best architectures, requirements, and designs emerge from self-organizing teams. 12. At regular intervals, the team reflect on how to become more effective, then tunes and adjusts its behavior accordingly. 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 11. The best results emerge from self-organizing teams. 12. Team reflects regularly where and how to improve. 8 VTT TECHNICAL RESEARCH CENTRE OF FINLAND AGILE SW DEVELOPMENT IN ONE SLIDE Volatile development environment Emphasis on individuals interactions and working software Light and sufficient Methods are incremental, cooperative, straightforward and adaptive Small teams, co-located environment, non-safety critical Software, object-oriented platforms 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 9 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Part II: Existing agile software development approaches 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 10 VTT TECHNICAL RESEARCH CENTRE OF FINLAND EVOLUTIONARY MAP OF AGILE METHODOLOGIES Software engineering 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson Information systems Source: (Abrahamsson et al. 2003) 11 VTT TECHNICAL RESEARCH CENTRE OF FINLAND EXISTING AGILE METHODS • Methods for agile software development: - Agile software process model [Ayoama, 1998] - Adaptive Software Development [Highsmith, 2000] - Crystal Family of Methodologies [Cockburn, 2000] - Dynamic Systems Development Method [Stapleton, 1997] - Extreme Programming [Beck, 1999] - Feature-Driven Development [Palmer & Felsing, 2002] - Lean software development [Poppendieck x 2, 2003] - Scrum [Schwaber, 1995; 2002] • Combination of approaches: - Agile Modeling [Ambler, 2002] - Internet-Speed Development [Cusumano & Yoffie, 1999; Baskerville et al., 2001; Truex et al., 1999] - Pragmatic Programming [Hunt & Thomas, 2000] 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 12 VTT TECHNICAL RESEARCH CENTRE OF FINLAND CAN WE TRUST THESE METHODS? No identifiable Some evidence evidence Adaptive SW development Agile modeling Crystal DSDM Extreme programming Feature-driven development Internet speed development Pragmatic programming Scrum Source: (Abrahamsson et al. 2003) 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 13 VTT TECHNICAL RESEARCH CENTRE OF FINLAND AGILE METHODS: ROLES & RESPS XP Customer / Business Competence Management Customer / Business Competence Management Project Manager Customer Administrative and financial leader. Ultimate say on scope, schedule, and staffing Release Manager m D ev el op Tracker Tracks programmers' estimates and the progress of each iteration Domain Manager Controls the progress of the process am Te Coach am Te en t Writes stories and functional tests D ev el op m en t Manager Makes the decisions Controls and guides team members in applying XP FDD Tester Development Manager Helps writing functional tests and runs them Leads development, solves resourcing problems Chief Architect Responsible for overall design Leads Domain Experts Domain Expert Has the knowledge of how the different requirements for the system should perform Chief Programmer Programmer Language Lawyer / Language Guru Writes tests and code An expert in any new technology involved in the project Toolsmith Leads small teams, solves technical issues, participates in requirements analysis Class Owner Deployer Responsible for a class Convert legacy data to the new system, participate in deployment Build Engineer Builds small tools required in development, testing etc. Tester Sets up, maintains and runs the build process, including version control Runs tests, verifies system conformance System Administrator Technical Writer Writes documentation Manages servers, workstations, development and testing environments DSDM Customer / Business Competence Adviser User Ambassador User An expert user focused on a narrower viewpoint (IT Staff, financial auditors, etc.) Represents the user community, responsible for user-developer communication Defines system architecture, responsible for technical quality Other SCRUM Management In charge of final decision making Product Owner Responsible for the project, and the realization of the requirements into features Executive Sponsor A user with financial responsibility and authority Visionary The user with the most accurate view on business and project objectives Senior Developer Skilled developer, with a level of leadership Customer / Business Competence Management Customer Defines the set of requirements for the system (the Product Backlog list) am Te am Te D ev el op m en t Management Technical Coordinator Support Other D ev el op m en t Support Scrum Team Scrum Master Project team, with authority to decide on actions Ensures the project runs under Scrum principles, runs the Scrum Team Developer Analysts, designers, programmers, testers Support Other 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson Support Other 14 VTT TECHNICAL RESEARCH CENTRE OF FINLAND XP AGILE METHODS: PROCESS VARIATIONS Concept Creation Req. Spec Design Code Integration Test Unit Test Acceptance Test XP: Productionizing, Maintenance and Death Phases XP: Exploration and Planning Phases Stories System Test Req. Spec Plans for Tests Coding Testing and Continuous Integration Releases System Test Acceptance Test Priority List FDD: Design by Feature, Build by Feature Continuous Customer Tests Customer Feedback Integration Test Unit Test Plan by Feature Customer Acceptance Collective Codebase Code FDD: Concurrent Feature Development (Build a) Features List Pair Programming Analysis & Design Design Develop an Overall Model XP: Iterations to Release Phase Priority List Concept Creation FDD Design and Design Inspection Coding Integration and Code Inspection Unit Test Main Build DSDM Concept Creation Req. Spec Design Code SCRUM Unit Test Integration Test System Test Acceptance Test Req. Spec Code Integration Test Unit Test Acceptance Test Planning Sprint Backlog List No Yes Scrum: Postgame Phase Product Backlog List SPRINT Analysis & Design Coding Testing Delivery Functional Model Iteration Integration, System Testing Design & Build Iteration Implementation Functional Prototypes System Test Scrum: Development (Game) Phase All Requirements Met? Business Study Design Scrum: Pregame Phase Restart depending on the scope of required new functionality Feasibility Study Concept Creation High Level Design / Architecture Intermediate Releases Design Prototypes 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 15 Final Release, Documents VTT TECHNICAL RESEARCH CENTRE OF FINLAND Agile Software Development Methods: Principle Contributions 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 16 VTT TECHNICAL RESEARCH CENTRE OF FINLAND SOURCE FOR AN OVERVIEW OF AGILE METHODS • Titled “Agile software development methods: Review and analysis”, 2002 • A VTT series publication freely available from http://agile.vtt.fi • For each method the following aspects are described: - Purpose & motivation - Roles & responsibilities - Development process - Development practices - Current status & known limitations 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 17 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Part III: Empirical data from case projects 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 18 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Background: Mobile-specific demands and constraints • Existing methods do not address • Limited capabilities of terminal devices • Limited availability and capacity of networks • Various standards, protocols and network technologies • Heterogeneity of terminal devices • Mobility: Transition among “cells” • Difficulties to develop "plug and play" mobile products • Specific needs of mobile terminal users • Mobile presence = > Mobile-D: An Approach for Agile Mobile Application Development 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 19 VTT TECHNICAL RESEARCH CENTRE OF FINLAND NEW PROGRAMMING ENVIRONMENT End-users Provides value Customer Learns needs Benefits Shares end-user needs & business requirements Coach / Mentor Software development activities, tools, people delivers Results: Working software, rapid delivery, high business value supports Removes obstacles Management Learning State-of-the art methods Process definitions Training 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson - Daily feedback from the developers - Communication - Collaboration 20 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Mobile-D: An Approach for Mobile Application Development • Concept: “From scratch idea to mobile application in 8 weeks” (java or symbian c++ based) • Mobile-D is based on Extreme Programming (practices), Crystal methodologies (scalability) and Rational Unified Process (coverage) • Designed to meet the specific characteristics of mobile application development & industry quality standards • Designed for < 10 developers working in colocated office space 1 WEEK SET-UP 2 WEEKS CORE 2 WEEKS CORE-2 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 2 WEEKS CMMI LEVEL 2 CERTIFIED 1 WEEK STABILIZE WRAP-UP 21 VTT TECHNICAL RESEARCH CENTRE OF FINLAND AGILE PROGRAMMING ENVIRONMENT 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 22 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Mobile-D: The Principal Elements • • • • • • • • • 1 WEEK SET-UP Phasing and pacing: Planning Day Agile modeling Architecture Line MetriCs: Time, size and defect Rapid7 – for specifications Agile Software Process Improvement Off-Site Customer User-Centred Focus Mobile Test-First development 2 WEEKS CORE 2 WEEKS CORE-2 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 2 WEEKS 1 WEEK STABILIZE WRAP-UP 23 VTT TECHNICAL RESEARCH CENTRE OF FINLAND 1 WEEK SET-UP 2 WEEKS CORE 2 WEEKS CORE-2 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 2 WEEKS 1 WEEK STABILIZE WRAP-UP 24 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Industry-Driven Experimental Software Engineering Initiative (ENERGI) 2003 eXpert zOmbie 2004 2005 bAmbie uniCorn Bubble RogeR 08-09/2004: Bubble 03-04/2004: bAmbie 02-03/2003: eXpert 1 team of five 1 team of five 1 team of four + one 12 mmonths, mobile 12 mmonths, mobile 8 mmonths application (Symbian application (java) web-based system c++) Non-intrusive data collection, (java+jsp) New product automated client tests, New product development, soft development of architecture development real-time system lines 05-07/2004: uniCorn 10-11/2003: zOmbie Build on existing base 1 team of six 1 team of six 18 mmonths, mobile application 10mmonths, mobile application (Symbian c++) (java) New product development New product development 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 25 VTT TECHNICAL RESEARCH CENTRE OF FINLAND CURRENT BACKLOG PRODUCT BACKLOG INFORMATION RADIATOR IN THEORY DEFINED STARTED DONE ITERATION STATUS VERIFIED PRODUCT STATUS FINISHED PRODUCT FEATURE1 FEATURE3 TASK TASK3.N TASK TASK3.N TASK TASK 3.N TASK 3.N FEATURE2 FEATURE4 TASK TASK TASK4.N TASK FEATURE FEATURE FEATURE FEATURE FEATURE FEATURE FUTURE BACKLOG 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 26 VTT TECHNICAL RESEARCH CENTRE OF FINLAND INFORMATION RADIATOR IN PRACTICE Project team in a daily stand-up meeting Customers and project managers working together “Big boss” at the airport 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 27 VTT TECHNICAL RESEARCH CENTRE OF FINLAND PROJECT VELOCITY Actual velocity 100,0 % Velocity 80,0 % Expert 60,0 % Zombie 40,0 % Bambie 20,0 % 0,0 % R1 R2 R3 R4 R5 Expert 69,8 % 50,3 % 60,9 % 46,0 % 44,0 % Zombie 55,1 % 45,1 % 42,6 % 48,0 % 36,3 % Bambie 20,3 % 45,9 % 43,2 % 34,8 % 25,6 % Release 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 28 VTT TECHNICAL RESEARCH CENTRE OF FINLAND REWORK COSTS (% of total dev. time) 100,00 % 90,00 % 80,00 % 70,00 % 60,00 % expert zombie bambie uniCorn 50,00 % 40,00 % 30,00 % 20,00 % 10,00 % 0,00 % Iteration 2 Iteration 3 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson Iteration 4 Iteration 5 29 VTT TECHNICAL RESEARCH CENTRE OF FINLAND REWORK COSTS (% of coding time) Percetage of task effort Rework (Fix & enhancements) costs 100,0 % 80,0 % Expert 60,0 % Zombie 40,0 % Bambie 20,0 % 0,0 % Expert R2 R3 R4 R5 8,9 % 34,7 % 41,1 % 37,9 % 20,6 % 30,0 % 35,6 % 15,5 % 29,7 % 48,4 % Zombie Bambie 6,7 % Release 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 30 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Task size (median, hours) 14 12 10 eXpert 8 zOm bie bAm bie uniCorn 6 Bubble 4 2 0 iteration 1 iteration 2 iteration 3 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson iteration 4 iteration 5 31 VTT TECHNICAL RESEARCH CENTRE OF FINLAND Part IV: Future & conclusions 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 32 VTT TECHNICAL RESEARCH CENTRE OF FINLAND FUTURE • Hype is getting to be over (good news) • XBreed, Freedom and other methods will still keep emerging • Yet, how to become more agile is the question now • Before it was more concentrated on extreme programming… • Empirical evidence is quickly building up • Agile becomes part of standardization work as well: Working group for IEEE 1648 (recommended practices) 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 33 VTT TECHNICAL RESEARCH CENTRE OF FINLAND CONCLUSION • Agile software development solutions are primarily concerned with what goes into pipes, not how to organize them. 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 34 VTT TECHNICAL RESEARCH CENTRE OF FINLAND THANK YOU! Questions and comments? Contact: [email protected] [email protected] http://agile.vtt.fi 16.12.2004 (C) VTT Electronics, Pekka Abrahamsson 35
© Copyright 2026 Paperzz