abrahamsson, 1,1 MB

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