Real-time Collaborative Development (Jazoon 2011)
-
Upload
jfitzell -
Category
Technology
-
view
251 -
download
2
description
Transcript of Real-time Collaborative Development (Jazoon 2011)
Real-time Collaborative Development:At the Extremities of Extreme
Imag
e ©
Chr
isto
pher
Mic
hot
Julian Fitzell
col·lab·o·ra·tion /kəˌlabəˈrāSHən/
n. The act of working with others to create or achieve something.
Collaboration bandwidth
• SalesForce - outsource your infrastructure and app maintenance to another - not bandwidth
• Twitter - Narrow band - cope with many interactions
• Facebook - widening bandwidth - those with 1,500 friends are about Narrow but those with 20 are much broader
• Online Gaming - WoW - play people you don’t know or with friends but it is immersive
Online Gaming
• fine-grained collaboration
• immersion
• transparency / feedback
• flow / transitions
A Simple Idea
What if we allowed a group of developers to simultaneously develop
the same running application?
fine-grained collaboration
Roam territory
Search for a herd
Test prey animals
Wolf Pack Programming™
Select easiest prey
If it takes flight, whole pack chases
If it stands, pack circles, two wolves attack
Roam territory
Search for a herd
Test prey animals
Search for a herd
Test prey animals
Roam problem domain / code base
Test prey animals
Roam problem domain / code base
Search for a requirement / feature
Roam problem domain / code base
Search for a requirement / feature
Test spikes
Select easiest prey
If it takes flight, whole pack chases
If it stands, pack circles, two wolves attack
If it takes flight, whole pack chases
If it stands, pack circles, two wolves attack
Select easiest implementation
If it stands, pack circles, two wolves attack
Select easiest implementation
If close to a solution, whole pack programs (flight)
Select easiest implementation
If close to a solution, whole pack programs (flight)
If it fights back, two wolves program; others rest (stand-off)
immersion
immersion• attention focused• mentally invested• presence
theCode: is^ [ :your | reality ]
Pairing
© P
aul S
trav
insk
y
restricts your view on the
world
Pairing
© P
aul S
trav
insk
y
pair programmingtwin and
triplet
transparency
Heat and Scent
http://upload.wikimedia.org/wikipedia/commons/7/7d/Canis_lupus_tracks_in_sand.jpg
Continuous Testing
PD-USGOV-INTERIO
R-NPS.
A wolf’s concept of
territory
Open Channel
Image ©
Retron / D
arren (flickr)
flow
Fix and commitRevert changes
Sync local files
CodeRefactor
Test
Re-Sync local files
Build locally
Commit local changes
Integration complete
Continuous Integration
build[ Build fails but quick fix ]
[ Build fails ][ Build succeeds with all tests passing ]
Repeat
Start
Repository
[ All conflicts resolved ]
Spike
CodeRefactor
Test
Everyone works on it
Commit changes
[ Build succeeds with all tests passing ]
Repeat
Start Select Spike
Repository
Spike
Code
Refactor
Test Everyone works on it
Commit changes
[ Build succeeds with all tests passing ]
Repeat
Start Select Spike
Repository
col·lab·o·ra·tion /kəˌlabəˈrāSHən/
n. The act of working with others to create or achieve something.
© 2
008
Ivan
Tes
sier
Julian [email protected]
Twitter: @jfitzell
CINCOM and the Quadrant Logo are registered trademarks of Cincom Systems, Inc.All other trademarks belong to their respective companies.
© 2010,2011 Cincom Systems, Inc.All rights reserved