distributed agile

Post on 17-Feb-2017

78 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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