Many teams practice agile development as an integral part of their organization with the benefits of collocation and local decision making. However, it is increasingly more common to develop code across continents, either in distributed organizations or with the help of offshore outsourcing partners. Igor Gejdos explains the essential principles of interfacing with distributed agile development teams and describes the essence of successful communication techniques that bridge cultural and time differences. Igor emphasizes how agile teams can approach distributed product backlog management and achieve software architectures that allow software decomposition into distributable components. He emphasizes design for testability, proper documentation of software interfaces, and methods for managing changes to keep the collaboration cost effective. Igor describes techniques for system integration planning by using integration checkpoints aligned with sprint plans. If you are a decision maker, developer, or technical leader interfacing with an agile development partner, join Igor to improve your distributed team interaction.
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Seven Principles of Cross-Continent, Distributed Development
1. 7 Principles of Cross-Continent
Distributed Development
Agile Software Development
Conference - East 2014
!
Igor Gejdos
igor.gejdos@roche.com
Software Development
is Global …
... global
can be
agile
4. Traditional Agile
• Accommodate Change
• Manage backlog
• Plan iterations
• Daily scrum meeting
• Local decision making
Distributed
Challenges
• Communication less
efficient
• Remote decision
making
• Time zone difference
5. Interaction - Email
Inbox Competition:
• 11% personal
• 7% spam
• 63% internal
• 15% gossip
* Based on http://gigaom.com/2012/06/08/how-
useless-is-email-two-new-studies-weigh-in/
Interaction and
Culture
• Communication style
• Attitudes toward conflict
• Approach to completing
tasks
• Decision-making style
• Attitudes toward disclosure
• Approaches to knowing
http://www.pbs.org
6. Advantages of Issue
Tracking
• Assign priority
• Track ownership
• Control work in progress
Distributed
Interaction
• Use the issue/task tracking
system:
• Assign task owner
• Require added value
before passing the task on
• Limit the attendees of any
exchange to 3-5
• Agree on and monitor the
change process
• Prefer web-meeting over e-
mail
7. Backlog
Management
• User Stories
• Requirements
• Change requests
• Bug Fixes
• Documentation
• Integration Checkpoints
Distributed Backlog
Management
Tool:
• Distributed Scrum
Board
• Coordinated Sprint
Planning
Personal Interaction:
• Customer Collaboration
• Prevent Issue
Escalation
Individuals and interactions
over processes and tools …
8. Distributed Software
Architecture
• Module
decomposition using
patterns
• Personal interaction
within local team
• Evolutionary
architecture inside
module
• Well defined API
between modules
Distributed Software
Architecture
• Agree on module
architecture, then
evolve
• Agree on APIs so they
are stable
• Document APIs to
improve interaction
• Make APIs testable to
reduce interaction
9. Documenting APIs
API definition
• Operations
• Data & Rules
• Error Conditions
Working software
over comprehensive
documentation …
Documenting APIs
• Just-enough
documentation
supports collaboration
• Improve interaction
• Facilitate training
• Document operations
data and rules
• Meaningful error
output
10. !
Design for Testability
• Test with realistic
remote system
• Continuous build and
deployment
• Schedule integration
tests in backlog
• Actively manage
remote system
availability
!
Integration Checkpoints
Integration workshops:
• Synchronize team
backlogs
• Importance of planning
and coverage
• Travel considerations
• Issue documentation and
resolution
11. 7 Principles
• Interacting efficiently and with
respect
• Track issues effectively
• Actively manage and synchronize
backlogs
• Give importance to software
architecture
• Negotiate and document the
APIs
• Design for testability to improve
interaction
• Face to face integration
checkpoints