Madrid airport
Inside the Agility Cube
Overall Presentation Goal
Speaker's Qualifications
Agility Has More than One Face
Agenda
Introduction
Fragile Development
Metaphorical Mismatch
Agile Development
The Agile Manifesto
Six Faces of Development Agility
Cubism
Different Levels of Scale
Practices
The Practice of Practice
Lean Software Principles
From Failures to Feedback
The Practice of Feedback
Iterations and Increments
Iterative Practice
Incremental Practice
Testing
Test-Driven Development
Organisation
Structure and Relationships
Organisational Culture
Self-Organising Teams
Conway's Law
Responding to Conway's Law
There are many sides to agile development, but it is all too common to focus on only one or two, depending on personal interests, job role, background, etc. A manager may focus on organizational and process aspects to the exclusion of technical ones, whereas a developer may have a complementary view. Different developers may focus on different details to the exclusion of others: one developer may value emphasis on a loosely coupled architecture but be less concerned by testing, whereas another may view agility solely in terms of unit tests and task automation. Each perspective is valid, but missing the other perspectives means missing the whole picture.
This talk focuses on six sides of agility, which notionally form the faces of a cube, and how they trade off against one another in different situations. Practices, organisation, architecture, tools, skills and attitude: each of these has different consequences and different
applicability depending on the context. For example, if a skilled team of developers wishes to adopt a more agile approach in a legacy project without tests, they are better off in the short term avoiding TDD and unit test coverage, and instead focusing on other matters of practice, tooling and architecture. By contrast, an unskilled team on a new
project are often well served by adopting a TDD approach early and forming a clear understanding of the architecture they are working in and on.
Kevlin Henney is an independent consultant and trainer based in the UK. He specializes in programming languages and techniques, OO design, patterns, software architecture and agile development. Kevlin has been a columnist and contributor for various magazines, including Application Development Advisor, Java Report and JavaSpektrum, and is currently columnist for Reg Developer, the developer channel of The Register. He is also coauthor of two forthcoming volumes in the Pattern-Oriented Software Architecture series.