<work in progress>
TABLE OF CONTENTS
1 Intro
2 Principles
2.1 Treat all sites equally
2.2 Strive for site independency
2.3 Align continuously and on all levels
2.4 The manifesto we are missing
2.5 Do the key things right
- Ongoing onboarding
- Humanized ecosystem
- Seeding engineering culture
- Designing self-sufficiency
- Mastering alignment
- Crafting product ownership
3 Practices
3.1 Onboarding new locations, teams and people
- try starting collocated with short projects
- try boot camps and hackathons
- try onsite kick-offs
- try story mapping for release planning
- avoid fighting the culture change
- try seeding teams around "culture holders"
- try limiting your growth
3.2 Shared online ecosystem
- try single source code
- try common intranet
- try distributed / local IT support
- try shared doc repository like GoogleDrive or DropBox
- avoid desktop solutions
- try be ready for multi-platform heterogeneous clients
- avoid email in favour of Skype, HangOut, HipChat and Slack
- try voice/video chats instead of plain text
3.3 Distributed yet shared engineering culture
- try sharing entire code-base
- avoid blocking someone's contribution
- try keeping component guardians
- try standardize continuous integration
- try jenkins for all
- try green builds on site/shift boundaries
- avoid remote DevOps
3.4 Self-sufficient and self-serving sites
- try matching sites with product lines
- avoid component-oriented sites
- master alignment on all levels
- avoid subordinating between teams in different locations
- try architects onsite
- avoid outsourced QA
- try support is everyone's job
- try scrum team-level meetings locally, joined multi-team scrum meetings remotely
- avoid remote ScrumMasters
- instead consider remote mentorship/coaching for local ScrumMasters
- avoid crowded teleconferencing at all costs
- instead consider splitting meetings in face-to-face and joined parts
- avoid multi-site long-term projects
- try fostering single-site experiments (and sharing results back)
3.5 Staying aligned in the face of high independence
- try designing user personas to share common understanding of key user needs
- try cross-site communities of practice
- try cross-site trainings, workshops and un-conferences
- try fly in for pairing
- try ambassadors
- try weekly town hall meetings to reconnect to company goals and mission
- try flying executives
3.6 Product ownership that spans timezones
- try Product Owner focused on one site
- avoid Product Owner mixing onsite and offsite teams
- avoid Product Owner substitutes
- try Product Owner visits monthly
- try Product Owner moves onsite
</work in progress>