23
Agile Offsharing: Using Pair Work to Overcome Nearshoring Difficulties Prof. Dr. Lutz Prechelt Institut für Informatik Mobile Solutions Day Freie Universität Berlin 2014-06-24

Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Embed Size (px)

DESCRIPTION

Technical Talk of Prof. Dr. Lutz Prechelt (Institut für Informatik, Freie Universität Berlin) during the Mobile Solutions Day 2014. www.molutions.de

Citation preview

Page 1: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Prof. Dr. Lutz PrecheltInstitut für Informatik Mobile Solutions Day

Freie Universität Berlin 2014-06-24

Page 2: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Outline

• Pair Programming: What and why?

• Agile Offsharing: Why, what, how?

• "But we are not using offshoring!"

2Lutz Prechelt, Freie Universität Berlin

Page 3: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Pair Programming

• Claimed advantages:• Faster than solo• Fewer defects• Better software design• More concentrated work• 2 people familiar with code• Can employ joint knowledge• Faster learning• Enjoyable

• Disadvantages/Issues:• May require more resources• Some programmers do not

like it

• Use it for:• Shorter time-to-market

• Higher quality

• Reducing code knowledge bottlenecks

• Knowledge transfer

3Lutz Prechelt, Freie Universität Berlin

Page 4: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Domain, Users &

Requirements

Team ATeam B

can underst

and

will write will write

Agile Offsharing:Assumed situation/problem

Joint system

Geographic & cultural distribution

4Lutz Prechelt, Freie Universität Berlin

Page 5: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Is distribution common?

5Lutz Prechelt, Freie Universität Berlin

Page 6: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Domain, Users &

Requirements

Home Team ARemote Team B

Subsystem BSubsystem A

Subsystem B Spec

understands

writes misunderstands

writeswrite

s

Waterfall model thinking

?

Belief: "Modularization helps!"

6Lutz Prechelt, Freie Universität Berlin

1

3a 3b

2a2b

Page 7: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Why misunderstandings happen

Lutz Prechelt, Freie Universität Berlin

1. Up-front requirements specification is difficult.2. We tend to under-estimate what needs explanation:

Page 8: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Domain, Users &

Requirements

Team ATeam B

Subsystem BSubsystem A

can understand

writeswrite

s

some talking (email, chat, skype, phone)

Daily video standup

The Agile process illusion

Belief: "Modularization plus talking helps"

8Lutz Prechelt, Freie Universität Berlin

Page 9: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Domain, Users &

Requirements

Team A Team A'

can understand

Distributed pair programming (DPP)

Daily video standup etc.

Radical idea: Agile Offsharing

Belief: "Only close collaboration works"

Joint system

9Lutz Prechelt, Freie Universität Berlin

Page 10: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Agile Offsharing:The radical step

Again: The new idea of Agile Offsharing is the following

• If cross-site communication is difficult

• do not avoid it• i.e. don't go for technical work locality

• rather, maximize it• i.e. voluntarily introduce

cross-site technical work• in order to transfer knowledge

10Lutz Prechelt, Freie Universität Berlin

standup

it always is!

Page 11: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Questions so far?

11Lutz Prechelt, Freie Universität Berlin

Page 12: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Preconditions for usingAgile Offsharing

Technical/organizational:• Small time zone difference• Technical communication

infrastructure• Strong network connection• Joint repositories• Distributed-IDE tools• Audio, perhaps video

equipment• Pair-work-ready workplace

Social:• Collaboration readiness:

• One-team thinking• Non-competitive attitude• Transparency & trust• Team stability

• Willingness for pair work• Compatible development

processes• Collaboration skills:

• Strong skills in a joint natural language

• Recognizing gaps in requirements understanding

• Requirements explanation skills

12Lutz Prechelt, Freie Universität Berlin

Not id

eal!

Page 13: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Establishing Agile Offsharing (1/4):People

• Find pairing volunteers• at least two on each side• strong language and

communication skills• preferably strong technical

skills

• Do not push anybody

Photograph: Corbis RF / Alamy/Alamy

13Lutz Prechelt, Freie Universität Berlin

Page 14: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Establishing Agile Offsharing (2/4):Technical infrastructure

• Establish distributed editing:• Eclipse: Saros• Visual Studio: VS anywhere• IntelliJ IDEA: soon: Saros• Mac OS X: SubEthaEdit • Browser: Cloud9, Codenvy

• Start with local trials at both sites

• then set up an official server, firewall rules, etc.

• Invest in comfortable, high-quality headsets

• Find handy, reliable audio software, e.g.:• SIP VoIP, Skype, Lync• Phone conferencing systems• Jitsi, mumble

14AG Software Engineering, Institut für Informatik, Freie Universität Berlin

Saros

Cloud9

Page 15: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

A schematic view of Saros

Page 16: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Establishing Agile Offsharing (3/4):Tasks & Getting Going

• Create list K:Reqirements knowledge to be transfered• identify an expert• estimate explanation time

• should be 0.2 to 2 hours each

• note closest-match volunteer

• Somewhat like story cards

• Create list T:Development task• list eligible developers• list required knowledge

pieces• estimate required time

• should be 1 to 5 hours each

• Find K-T matches• that have suitable volunteer

pairs• Arrange and execute

sessions• Consciously perform them

for knowledge transport

16AG Software Engineering, Institut für Informatik, Freie Universität Berlin

Page 17: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Establishing Agile Offsharing (4/4):Refine

• Learn how to arrange sessions with little effort

• Learn how to cope with conflict• e.g. detect and repair power

imbalances

• Learn how to cope with language skill limitations

• Learn how to optimize knowledge transport• Reflection session after

DPP session• Better task selection• Draw in more volunteers

17AG Software Engineering, Institut für Informatik, Freie Universität Berlin

Page 18: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

"But we are not using offshoring!"

• Are your relevant colleagues always available locally?

• The pairing idea also applies if the knowledge is not about requirements:• remote technology expert• remote usability expert• remote expert for existing

code• remote partner for

• design discussion• debugging

• etc.

Furthermore:1. Saros sessions can have up

to 5 participants

2. Side-by-side programming:• "Hanging around" in the

same Saros session • short bursts of pairing as

needed

We call the resulting behaviors"Distributed Party Programming"

(DPP)

18Lutz Prechelt, Freie Universität Berlin

Page 19: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Some questions of mine

• Who has done distributed pair programming:• via screen sharing?• via Saros (or similar)?

• Who wants to try out Distributed Party Programming?

• Who wants to try out Agile Offsharing?

• We are available for consulting or research cooperation

19Lutz Prechelt, Freie Universität Berlin

Page 20: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

20Lutz Prechelt, Freie Universität Berlin

Questions of yours?

Page 21: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Agile Offsharing:Current research status

• Pair Programming:• There are roles related to

knowledge transfer• e.g. task expert/mentee

• There are learnable knowledge transfer behavior patterns

• e.g. Clarification Cascade

• Distributed Pair Programming (DPP):• Competent pairs can work

fully fluently• Awareness limitations

bridged e.g. by verbalization• Limited use of concurrent

editing does not break PP• Looks as good as local PP

• Agile Offsharing idea:• Various experts all found

Agile Offsharing plausible• We have just won the

Ready-Set-Transfer technology transfer contest

• Int'l. Conf. on Software Engineering

• We work with Lithuanian offshore company NFQ to evaluate Agile Offsharing

21AG Software Engineering, Institut für Informatik, Freie Universität Berlin

Page 22: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Thank you!

22Lutz Prechelt, Freie Universität Berlin

Page 23: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties

Agile Offsharing:Make a radically new assumption

Context: • Distributed software development, but with agile methods• Only the "home" team builds the requirements knowledge

• Traditional assumption:Transfer reqs knowledge explicitly, butmaximize locality for technical work

• Agile Offsharing assumption:Must transfer reqs during technical workor else bandwith is too low• therefore, introduce cross-site technical work

23Lutz Prechelt, Freie Universität Berlin

standup