practical experiences of agility in the telecom industry xp 2003 conference 27.5.2003 jari vanhanen...
TRANSCRIPT
Practical Experiences of Agility in the Telecom Industry
XP 2003 conference 27.5.2003
Jari VanhanenHelsinki University of Technology
Software Business and Engineering Institute
Jouni Jartti and Tuomo KähkönenNokia Research Center
Background of the Study
Agility is perceived important in the case company
A research project was started to increase and transfer knowledge of agile practices
inside the company provide support material for projects aiming at agility
A tentative list of agile practices was compiled based upon literature
22 practices that seemed to be relevant mostly XP practices
This study was part of the research project finding out the current state in the company validating the tentaive practice list
Agility the ability to adapt to changing situations
appropriately, quickly and effectively
Research Method and Questions
Three projects out of seven selected for the study selected because they were claimed to be the most active in using agile
practices two semi-structured interviews per project
Research questions1. Which agile practices were used in these projects?2. What experiences were reported on the use of those practices?
Analysis quantification of the adoption level of agile practices qualitative experiences
Adoption Level3 considerable use2 moderate use1 minor use 0 practically no use
Case Projects
Used processes were not based on any published agile methodologies, except in project C (partial adoption of some XP practices)
Use of agile practices was more emergent than planned Working in a way that feels natural, and has worked before
Project A Project B Project C Project type Development of an
evolving sw product Integration and porting
of embedded sw Development of a part
of a larger system People 1 12 8 4 (of 70) Distribution Two teams in two
countries Co-located team Co-located team
Duration 8 years 10 months 1.5 years Effort ~50 man years ~6 man years ~6 man years SW Size 590 kLOC 15 kLOC 40 kLOC
The Most Adopted Practices
Measure progress by working code weekly deliveries to the customer
short feedback loop
Developers estimate task efforts in all cases developers at least refined
the original estimates
Limited documentation apprenticeship-style training was
successful for transferring knowledge
Team develops its processes in all cases the whole team could affect
the process process development was led by the
project manager or organization
Practice A B C Incremental delivery 2 0 1 Continuous integration 2 0 2
Measure progress by working code 3 3 2 Interactive planning 2 0 1
Developers estimate task efforts 2 2 3 Visual modeling 1 2 2 Use cases 0 0 3 Design Patterns 2 0 0 Continuously developed architecture 2 1 1 Pair programming 0 0 1 Collective code ownership 2 1 2
Coding standard 3 1 3 Refactoring 2 2 1 Write tests first 0 0 0 Automated unit testing 0 0 0 Customer writes acceptance tests 1 0 0
Limited documentation 3 2 1 Team in one location 0 3 3 Frequent team meetings 1 1 2 Customer always available 2 2 0
Team develops its processes 3 2 1 No continuous overtime 3 2 1
The Least Adopted Practices
Pair programming only pair debugging
Testing unit testing found too hard writing tests first not even tried conventional testing methods
used instead
Practice A B C Incremental delivery 2 0 1 Continuous integration 2 0 2 Measure progress by working code 3 3 2 Interactive planning 2 0 1 Developers estimate task efforts 2 2 3 Visual modeling 1 2 2 Use cases 0 0 3 Design Patterns 2 0 0 Continuously developed architecture 2 1 1
Pair programming 0 0 1 Collective code ownership 2 1 2 Coding standard 3 1 3 Refactoring 2 2 1
Write tests first 0 0 0 Automated unit testing 0 0 0 Customer writes acceptance tests 1 0 0 Limited documentation 3 2 1 Team in one location 0 3 3 Frequent team meetings 1 1 2 Customer always available 2 2 0 Team develops its processes 3 2 1 No continuous overtime 3 2 1
“New” Practices
Technical authority technically competent project manager
able to make decisions more quickly more courage to remove control elements from the process
Team continuity core personnel, e.g. lead architects, remains same over the years
less technical documentation required survival of the architecture
Emergence of Practices vs. Managed Adoption
Positive developers consider emergent practices useful
Negative wasting effort, ”re-inventing the wheel” some practices are neglected
unfamiliar practices practices that are harder to adopt
Lack of agile testing practices in the projects was interesting they are considered crucial as a basis for other agile practices Was this the reason for the rather low adoption level of some other
agile practices?
Questions?
Contacts: [email protected]