distributed agile
Post on 17-Feb-2017
78 Views
Preview:
TRANSCRIPT
Distributed Agile
1
Why Distributed team
In search of talent
Buying companies globally
To cater to specific market
To take advantage of cost
Distributed teams are on rise
Version one 10th Annual Agile survey
Agile Principle
“The most efficient and effective method of conveying information to and within a development team is face to face conversation”.
▪Concerns against distributed team
Lack of effective Communication
Maintaining Code Quality/Stable System
Visibility on the project’s progress
Lack of technical/domain Knowledge
Team with remote members -1Sprint Team
1Sprint Team
2
Client
India Team
Integrated Scrums modelThe Challenges with this model are
•Hallway discussions does not flow on either side – Team feels left out and productivity could drop•Very little Communication between distributed teams – More rework or waiting period•Framework is not uniform as team is distributed.•Dependency is huge between teams as team is distributed. Loss of time due to waiting for discussions.• Less time overlap – difficult to interact and discuss• Logistics - webcams on each machine, webcams in work area , wireless audio facility to interact with any members across location, tools to assist this model.•Scrum master at one location finds challenging to solve impediments of the team on the other side
The advantages are• Initial sprints the offshore team does not have enough knowledge(domain, systems) and joint development might be good idea to share the knowledge. If the time overlap is more than half a day
Sprint Team 1 Sprint Team 2
Location 1
Location 2 Sprint Team 3 Sprint Team 4
PO
Recommended Distributed Team Model
Proxy PO (2 alternatives)•Dedicated Proxy PO•PO Knowledge spread in the team
The advantages are•Each scrum is co-located, Face 2 Face interaction within team members
•Scrum master in better position to resolve the impediments
Split work vertically across distributed scrum teams
Analysis
Design
Code
Test
Deploy
Avoid Splitting work Horizontally across scrum teams
Split work vertically across scrum teams
Collaboration Tools
● Collaboration tools - Slack,Hipchat, Basecamp, yammer,
● Video Conference - Skype, Google hangout, gotomeeting, Zoom
● Calendar - Google calendar
● Agile Project Management tools - Rally, Jira, Version One, Trello, LeanKit,....
● List of distribtued team tools - https://blog.ghost.org/distributed-team-tools/
● Experienced/Proactive team members to be part of the team.● Team members to be generalized specialist to avoid dependency● Automation across entire SDLC life cycle(Avoid approvals)● Use communication channels that all team members can subscribe to● Culture training, Make a list of Holidays/vacation in each remote location
Location 1
Recommended Distributed Team Model
PO
Location 2
Location 5 Location 4
Location 3
Practices to be used for distributed teams
• Good Practices
• All project documents, work progress, discussions to be put in a collaboration tool(wiki, agile tool,..) rathern than in email.
• Use automation tools for development and testing.
• Stretching beyond normal office hours to be balanced for team members across locations.
• Distributed team to have some informal meetings for team bonding
• Use Distributed team games as Icebreakers for increasing team bonding
• Team updating the status on the agile project management tool on daily basis
• Holidays listed in central place.
Release Planning
Release Planning
Face 2 Face meetings for vision, strategy, setting big goals
1.Product Owner travel to distributed location.
2.Proxy PO travel before release planning.
3.Use video conference
4.Team to meet at common place
Objective -Team will have clear understanding about the release.
Team
● Hire team members ready to work in agile environment
● Hire some team members with domain skills
● Train the team on culture, domain and higher level goals
● Hire team members that are ready to work as generalized specialist
Grooming and Sprint Planning well in advance
grooming for sprint 3
Pre sprint planning for sprint 2
Sprint 1 Sprint 2
Execution of sprint 1 Execution of sprint 2
Pre sprint planning for sprint 3
grooming for sprint 2
Pre sprint planning for sprint 1
Release Planning
grooming for sprint 4
Pre sprint planning and Retro
Sprint StartPre -Sprint PlanningStart
Demo/Review
Sprint 1 Sprint 2
• Task Break down done independently
• ATDD• Definition of Ready
• Local retrospective
● Digital Communication has latency so plan in advance.● Use Common collaboration tools for discussion/clarification of user stories. Avoid one to one emails.
Access to Infrastructure by all team members
All centers to have access to dev/test/production infrastructure.
Standup
Local Daily Standup
Standup
• Scrum of Scrum on collaboration tools, HipChat• Raise impediments on collaboration tools.• If the entire team members are remote then each member can put the 3 things on collaboration tool.
Standup
Developers GITReview & Check-in
CI(jenkins)
Poll - 5s
Checkout
Compile
Static Analysis
Run Unit testRun Code CoverageDeployRun Smoke Test
FailedNotify Team
Limit failed
Notify Team
Limit failed
Notify Team
Test Failed
Dev
QA
SLT
IT
Run Regression
Run Performance
Run Security
NightlyContinuously
Compile
Static AnalysisRun Unit testRun Code Coverage
Continuous Integration
Notify Team
Celebration
● Once a year
Examples of companies with distributed teams
Buffer: Doesn't care where its employees live.
Mozilla: “We have 13 global offices and people working in
more than 30 countries. If you work best from home, that’s
not a problem.
InVision: “Who says you need to move to work at a great
company? Not us. We know there’s great talent all over the
place and we are a completely distributed company. http://www.zdnet.com/article/25-companies-that-hire-virtual-workers/
Thanks
top related