global,distributed, and agileglobal,distributed, and agile winning strategies for efficient...

30
Global,Distributed, and Agile Winning Strategies for efficient application development Brian Zeichick TeamForge Product Manager [email protected]

Upload: others

Post on 01-Jun-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Global,Distributed, and AgileWinning Strategies for efficient application development

Brian ZeichickTeamForge Product [email protected]

Page 2: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Poll #1 (Hidden Slide)

• Where are you in terms of agile adoptions

• Investigating / piloting

• Adopted process - scrum, lean,et

• Modified process - scrum-but, kanban etc

• Won't do it

• What is Agile?

2 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

Page 3: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

3 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Distributed Agile – How did we get here?

• Distributed development drivers

• Agile development drivers• Need for improved collaboration

(across IT, business, and customers)

• Desire to release products more efficiently, more frequently

Page 4: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

4 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Distributed Agile – Increasingly Commonplace

“There are numerous, complex global systems within investment banking firms,” said the firm’s IT

director. “For example, a typical trading system can

be used in Frankfurt, London, New York, Tokyo,

Singapore & Zurich and connect to more than 50 independent systems. Stakeholders—each with

their own objectives—can be separated by location, business line or functional unit.”

– Large Investment Bank

“We have approximately 31,000 employees located in more than 100 countries worldwide. Various

teams had different approaches to software

development because of their cultural, organizational, and corporate heritage.”

- Philips

Page 5: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

5 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

The Elephant in the Room: Co-Location

• Traditionally, why is co-location so important?• Pair programming

• Meetings

• Daily standups

• Sprint planning

• Retrospectives & review meetings

• Constant communication

• Visibility

• Trust

Page 6: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Distributed Development - A Bad Example

• Lack of Communication

• Unclear goal and plan

• Weak transition of ownership

6 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

Page 7: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Poll #2 (Hidden Slide)

• How Distributed is your DEV organization?

• Not at all. We’re currently co-located

• Somewhat – 15-30% are distributed

• Moderately – 30-60% are distributed

• Extreme: Where is HQ anyways? 60-100% Distributed

7 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

Page 8: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Organizing Distributed Teams

8 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

• Several smaller, co-located and dispersed Teams

• Roll-up to management team

Page 9: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Pair Programming without Co-Location

• Code review

• Knowledge sharing

9 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 10: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Meetings without Co-Location – Daily Standups

10 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 11: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Meetings without Co-Location – Sprint Planning

• Sprint planning

• Make informal and last a couple of days

• Duration of sprints – might look at extending longer than 2 weeks

11 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 12: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Meetings without Co-Location – Retros and Planning

• Sprint reviews

• Ad-hoc UATs (user acceptance tests),

instead of formal sprint reviews

• Sprint retrospectives

• Try to find a time that works for

everyone

• Tack it on to the end of a standup

meeting

• Release retrospectives & planning

• Ideally this should be done in person

• At least key stakeholders should meet

in person

12 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 13: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Agile Distributed Meetings – Case Study

“Pallas’ projects used Scrum to help manage the distributed teams, holding daily standup meetings to discuss progress and managing

development in three week iterations. Adapting

Scrum to the offshore environment required all

teams to be flexible. Several times a week, the

Singapore team came in early and California

teams worked late to hold a single standup

meeting.”

- Applied Biosystems

13 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 14: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Constant Communication without Co-Location

• Office-cooler conversations

14 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 15: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Constant Communication without Co-Location

• Knowledge sharing

15 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 16: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Constant Communication without Co-Location

• Social networking

16 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 17: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Constant Communication without Co-Location

• Get togethers

• Try to have an offsite at least a few times a year

• Things to avoid

• Long email threads that go several levels deep

• Relying on just non-realtime tools to communicate

17 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 18: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Visibility without Co-Location - Traceability

• Ensure that collateral that is used for communication, code review, and meetings notes are easily available

18 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 19: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Visibility without Co-Location – Managing Process

• Need to rely heavily on project manager to ensure process is followed

• Estimates set and updated on a regular basis

• Proper Channels are used for questions/comments

19 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 20: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Visibility without Co-Location – Managing Progress

20 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

• Need a way to look at progress at different levels

• Individual Team level

• Aggregate, larger team view

Page 21: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Trust without Co-Location

• This takes time

• Ensure that message and direction to team is clearly communicated

• Ensure that commitments to team are followed through

• Get to know each other on a personal basis

• Offsites at least a few times a year

• Create cross-location teams for some projects

• Ensure that key members are available

21 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 22: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Other Issues that arise without Co-Location - SCM

22 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

SVN Mirrors

Standalone

SVN Mirrors

SVN Mirrors

Standalone

Standalone

Page 23: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Other Issues that arise without Co-Location - Testing

23 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

A developer picks up the next available work item

The developer commits changes on behalf of the work item

CI wakes up, sees the commit, and starts the continuous integration job

On the CI’s request, test resources are provisioned from the cloud

The CI executes the test suite using the provisioned resources

When done, the resources are returned to the pool for other uses

A

B

C

D

E

F

Page 24: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Other Issues that arise without Co-Location - Scalability

• If you’re going to use an agile project management in a distributed environment, it better scale

24 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Page 25: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Poll #3 (Hidden Slide)

• How Large is your entire Dev organization (staff)?

• Under 10

• 10 – 50

• 50 – 500

• 500 – 5,000

• 5,000+

25 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

Page 26: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

26 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

Different Development Tools in Different Locations

• Development tools are still a distributed mess in most enterprises

Page 27: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

27 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

Why is a single platform so important?

TRANSPARENCY breeds TRUST which drives REUSE

Page 28: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

Five Lessons to Take Home…

28 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

• ‘Agile’ no longer requires ‘co-location’ for everything

• Tight collaboration and coordination is vital

• Technology helps bridging most obstacles

• Integrated platform is key to breed transparency, reuse and ultimately trust – and drive efficiences

• Right tools are imperative, but not the only answer

Page 29: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

CollabNet – Who we Are

• Subversion founder and corporate sponsor

• #1 Subversion / Subversion Edge downloads

• Used by 5m+ developers worldwide

• Leader in Agile development

• #1 trainer of “ScrumMasters” (>10,000 trained)

• ScrumWorks Pro, leading agile tool on market

• Provider of TeamForge platform for distributed ALM

• Accelerates software delivery by 50% or more

• 700+ customers and 400,000+ end-users

• Scales from teams, to enterprises with 50,000+ users

29 Copyright © 2010 CollabNet, Inc. All Rights Reserved.

Page 30: Global,Distributed, and AgileGlobal,Distributed, and Agile Winning Strategies for efficient application development ... Distributed Development -A Bad Example • Lack of Communication

30 Copyright © 2011 CollabNet, Inc. All Rights Reserved.

Thank YouQ&A

Brian ZeichickBrian ZeichickBrian ZeichickBrian Zeichick

TeamForge Product Manager

[email protected]