agile offsharing: using pair work to overcomenearshoring difficulties
DESCRIPTION
Technical Talk of Prof. Dr. Lutz Prechelt (Institut für Informatik, Freie Universität Berlin) during the Mobile Solutions Day 2014. www.molutions.deTRANSCRIPT
![Page 1: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/5.jpg)
Is distribution common?
5Lutz Prechelt, Freie Universität Berlin
![Page 6: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/11.jpg)
Questions so far?
11Lutz Prechelt, Freie Universität Berlin
![Page 12: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/15.jpg)
A schematic view of Saros
![Page 16: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/18.jpg)
"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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/20.jpg)
20Lutz Prechelt, Freie Universität Berlin
Questions of yours?
![Page 21: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/22.jpg)
Thank you!
22Lutz Prechelt, Freie Universität Berlin
![Page 23: Agile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties](https://reader035.vdocuments.net/reader035/viewer/2022081413/5466106caf795982288b7018/html5/thumbnails/23.jpg)
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