agiles2008 - distributed agile
DESCRIPTION
Presentation given by Matt Gelbwaks and Emilio Gutter at Agiles2008, Buenos AiresTRANSCRIPT
Distributed Agile Software for the new world order!
Matt Gelbwaks Emilio Gutter
Introduction
Agile is hard Distributed Agile is harder
Why use Distributed Agile if it is so hard?
The Elements of Agile
Principals (from agilemanifesto.org) • Satisfy the Customer (working software) • Welcome changing requirements and priorities • Deliver incrementally and frequently • Personal interactions - all roles • Motivated teams (and customers) • Promote sustainability through “good” processes • Technical excellence (maintain no debts) • Maintain simplicity • Support self organization • Relish retrospection
The Maths of Agile
Definitions! • Theorem
– a theoretical statement that can be proved through other propositions or formulas.
• Corollary – a proposition that is incidentally proved in proving
another proposition • Lemma
– a subsidiary proposition introduced in proving some other proposition; a helping theorem
• Postulate – a proposition that requires no proof, being self-
evident
1st Postulate of Agile Development
• Agile is really about being reactive to changing business environments, not following “Agile Practices”
Matt & Emilio’s 1st Theorem of Development • The fusion of all the Agile Practices allows
teams to maximize their throughput and more reliably meet their product owner’s expectations.
Corollary to 1st Theorem
• Neglecting one or more of the Agile Practices makes your team neither un-Agile nor necessarily unable to meet your Product Owners Expectations
Lemma to Corollary
• Neglecting one or more of the Agile Practices reduces your team’s throughput and their reliability in meeting expectations.
Matt & Emilio’s 2nd Theorem of Development • If the intent of the Agile Manifesto is to guide
teams to maximize the value they can produce for the Business, then they must take into consideration the Business’ operating model.
Corollary to 2nd Theorem
• Taking into consideration the Business’ operating model will force the team to make compromises to the extent in which they can undertake various Agile Practices.
Corollary to Corollary to 2nd Theorem
• This reduces the direct Business Value that might be achieved when employing all the Agile Practices to their fullest.
2nd Postulate of Agile Development
• Any team, by adoption of Agile Practices will become better, more effective, and more efficient.
Matt & Emilio’s 3rd Theorem of Development • Once teams grow beyond the ideal size, they
become distributed by definition, even though we don’t recognize it.
Corollary to the 3rd Theorem
• Some of the Agile Practices must be adjusted to work in a distributed environment, but that does not make the teams any less agile in their development
Principals (from agilemanifesto.org) • Satisfy the Customer (working software) • Welcome changing requirements and priorities • Deliver incrementally and frequently • Personal interactions - all roles • Motivated teams (and customers) • Promote sustainability through “good” processes • Technical excellence (maintain no debts) • Maintain simplicity • Support self organization • Relish retrospection
Practices for Distributed Agile
• On-site chartering
• Cross-functional teams on every location
• Itinerant team member
• Communication patterns
• What about core XP practices?
Some True Life Examples • Business: On-line travel agency
• Project purpose: Allow customers to book flights marketed by a new low cost carrier
• Size: ~30 people
• Locations: US; India; Argentina
Argentina
USA
India
USA
Some True Life Examples • Business: Point of Sale Reservations System
• Project purpose: Allow online travel agencies to manage and reuse unused eTickets for travelers who had banked them
• Size: ~20 people
• Locations: US; Poland; Ireland
Poland
USA
Ireland
M
Some True Life Examples • Business: Large File Transfer
• Project purpose: Allow organizational users to transfer large files (100MB+) using MS Outlook through an unobtrusive plugin and a separate server
• Size: 65+ people - 6 teams, each having collocated developers and QA with shared Architects, Tech Pubs, and Product Owners
• Locations: US and Bulgaria + 2 remote developers
Bulgaria - 3 Teams
USA - 3 Teams
M
Roving Mentor