patterns for successful distributed development - agileee2009
TRANSCRIPT
© 2009 Mads Troels Hansen
Patterns for Successful
Distributed Development
Mads Troels Hansen
Agileee 2009, Kyiv, Ukraine
My background• Mads Troels Hansen
Agile and Lean Coach at BestBrains, Denmark. Mads has
more than 15 years of experience with software development,
as developer, project manager, product owner, CIO and CTO
in different companies. He is very experienced in working with
Scrum, Agile and Lean in a distributed environment and is
Certified Scrum Practitioner.
[email protected], +45 6082 2282
.
2September 09, © 2009 Mads Troels Hansen
September 09, © 2009 Mads Troels Hansen
• Agile team
– Co-located, face-to-face collaboration
– Task board on the wall3September 09, © 2009 Mads Troels Hansen
September 09, © 2009 Mads Troels Hansen
• 8 Patterns for Successful Distributed
Development
4
September 09, © 2009 Mads Troels Hansen
• Visibility and Transparency TRUST
– Use Google Docs or another online tool
– Physical task boards whenever possible5
Structure
September 09, © 2009 Mads Troels Hansen
• Focus on problem solving
– DO regular retrospectives, online and offline
– Find root cause, not only symptoms6
Structure
September 09, © 2009 Mads Troels Hansen
• Establish flow and remove bottlenecks
– Limit Work In Progress, CF Diagrams
– Value Stream Mapping7
Structure
September 09, © 2009 Mads Troels Hansen
• A normal way of folding hands
Structure
September 09, © 2009 Mads Troels Hansen
• Change the structure
Structure
September 09, © 2009 Mads Troels Hansen
• Regular rhythm in teams and between teams
– Planning, coordination, releases
– Establish a cadence10
Rhythm
September 09, © 2009 Mads Troels Hansen
• Business and technical feedback rhythms
– Sneak preview, demonstrations
– Continuous Integration11
Rhythm
September 09, © 2009 Mads Troels Hansen
• Highly automated and fast
– Simple tools
12
Technical
Infrastructure
September 09, © 2009 Mads Troels Hansen
• Remove dependencies to other locations
– It must be fast to integrate and test
13
Technical
Infrastructure
September 09, © 2009 Mads Troels Hansen
• Use VIDEO whenever possible
– Distributed face-to-face communication
– Use different tools for distributed communication
Communication
Protocols
14
September 09, © 2009 Mads Troels Hansen
• Prepare the distributed meetings
– Use checklists and remember to ask questions
15
Communication
Protocols
September 09, © 2009 Mads Troels Hansen
• Pomodoro technique
– Distributed team
– Local team
Communication
Protocols
16
September 09, © 2009 Mads Troels Hansen
• Understand the vision and key features
– User Story Mapping, a picture of the whole system
– Innovation Games, learning from customers17
Shared
Product
Vision
September 09, © 2009 Mads Troels Hansen
• Prepare requirements with acceptance criteria
– Easier to test and validate
– Focus on need not solution18
Shared
Product
Vision
September 09, © 2009 Mads Troels Hansen
• What you don’t know you don’t know
• Ask questions
• Innovation Games19
Domain
Knowledge
September 09, © 2009 Mads Troels Hansen
• Physical outputs and business workflow
– Learn what the solution will produce
– Understand how the user will use it20
Domain
Knowledge
September 09, © 2009 Mads Troels Hansen
• Slice the system by feature not layer
– Integrate and test in small steps
– Risk first21
Development
Practices
September 09, © 2009 Mads Troels Hansen
• From “Ready, Ready” to “Done, Done”
– Agree and define your “Done, Done” criteria
– Validate requirements with “Ready, Ready” criteria
Development
Practices
22
September 09, © 2009 Mads Troels Hansen
• Regular face-to-face visits
– Distributed teams working together, same office
– Solve problems together23
Cross cultural
understanding
September 09, © 2009 Mads Troels Hansen
Thank youSend me your distributed stories: [email protected]
24
People don’t resist
change, they resist being changed.
- Peter Scholtes
September 09, © 2009 Mads Troels Hansen
References
• Innovation Games, Luke Hohmannwww.innovationgames.com
• User Story Mapping, Jeff Pattonhttp://www.agileproductdesign.com/presentations/user_story_mapping/index.html
• Distributed Pomodoro: CherryTomatohttp://www.chrylers.com/cherrytomato/
• Agile 2009 Paper: Agile for Distributed Teams
http://tinyurl.com/CmmiAgile