Real-time Collaborative Development (Jazoon 2011)

48
Real-time Collaborative Development: At the Extremities of Extreme Image © Christopher Michot Julian Fitzell

description

 

Transcript of Real-time Collaborative Development (Jazoon 2011)

Page 1: Real-time Collaborative Development (Jazoon 2011)

Real-time Collaborative Development:At the Extremities of Extreme

Imag

e ©

Chr

isto

pher

Mic

hot

Julian Fitzell

Page 2: Real-time Collaborative Development (Jazoon 2011)

col·lab·o·ra·tion /kəˌlabəˈrāSHən/

n. The act of working with others to create or achieve something.

Page 3: Real-time Collaborative Development (Jazoon 2011)
Page 4: Real-time Collaborative Development (Jazoon 2011)

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

Page 5: Real-time Collaborative Development (Jazoon 2011)
Page 6: Real-time Collaborative Development (Jazoon 2011)
Page 7: Real-time Collaborative Development (Jazoon 2011)

Online Gaming

• fine-grained collaboration

• immersion

• transparency / feedback

• flow / transitions

Page 8: Real-time Collaborative Development (Jazoon 2011)
Page 9: Real-time Collaborative Development (Jazoon 2011)
Page 10: Real-time Collaborative Development (Jazoon 2011)
Page 11: Real-time Collaborative Development (Jazoon 2011)
Page 12: Real-time Collaborative Development (Jazoon 2011)
Page 13: Real-time Collaborative Development (Jazoon 2011)
Page 14: Real-time Collaborative Development (Jazoon 2011)

A Simple Idea

What if we allowed a group of developers to simultaneously develop

the same running application?

Page 15: Real-time Collaborative Development (Jazoon 2011)

fine-grained collaboration

Page 16: Real-time Collaborative Development (Jazoon 2011)
Page 17: Real-time Collaborative Development (Jazoon 2011)
Page 18: Real-time Collaborative Development (Jazoon 2011)
Page 19: Real-time Collaborative Development (Jazoon 2011)
Page 20: Real-time Collaborative Development (Jazoon 2011)

Roam territory

Search for a herd

Test prey animals

Wolf Pack Programming™

Page 21: Real-time Collaborative Development (Jazoon 2011)

Select easiest prey

If it takes flight, whole pack chases

If it stands, pack circles, two wolves attack

Page 22: Real-time Collaborative Development (Jazoon 2011)

Roam territory

Search for a herd

Test prey animals

Page 23: Real-time Collaborative Development (Jazoon 2011)

Search for a herd

Test prey animals

Roam problem domain / code base

Page 24: Real-time Collaborative Development (Jazoon 2011)

Test prey animals

Roam problem domain / code base

Search for a requirement / feature

Page 25: Real-time Collaborative Development (Jazoon 2011)

Roam problem domain / code base

Search for a requirement / feature

Test spikes

Page 26: Real-time Collaborative Development (Jazoon 2011)

Select easiest prey

If it takes flight, whole pack chases

If it stands, pack circles, two wolves attack

Page 27: Real-time Collaborative Development (Jazoon 2011)

If it takes flight, whole pack chases

If it stands, pack circles, two wolves attack

Select easiest implementation

Page 28: Real-time Collaborative Development (Jazoon 2011)

If it stands, pack circles, two wolves attack

Select easiest implementation

If close to a solution, whole pack programs (flight)

Page 29: Real-time Collaborative Development (Jazoon 2011)

Select easiest implementation

If close to a solution, whole pack programs (flight)

If it fights back, two wolves program; others rest (stand-off)

Page 30: Real-time Collaborative Development (Jazoon 2011)

immersion

Page 31: Real-time Collaborative Development (Jazoon 2011)

immersion• attention focused• mentally invested• presence

Page 32: Real-time Collaborative Development (Jazoon 2011)

theCode: is^ [ :your | reality ]

Page 33: Real-time Collaborative Development (Jazoon 2011)

Pairing

© P

aul S

trav

insk

y

Page 34: Real-time Collaborative Development (Jazoon 2011)

restricts your view on the

world

Pairing

© P

aul S

trav

insk

y

Page 35: Real-time Collaborative Development (Jazoon 2011)

pair programmingtwin and

triplet

Page 36: Real-time Collaborative Development (Jazoon 2011)

transparency

Page 38: Real-time Collaborative Development (Jazoon 2011)

Continuous Testing

Page 39: Real-time Collaborative Development (Jazoon 2011)

PD-USGOV-INTERIO

R-NPS.

A wolf’s concept of

territory

Page 40: Real-time Collaborative Development (Jazoon 2011)

Open Channel

Image ©

Retron / D

arren (flickr)

Page 41: Real-time Collaborative Development (Jazoon 2011)

flow

Page 42: Real-time Collaborative Development (Jazoon 2011)
Page 43: Real-time Collaborative Development (Jazoon 2011)

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 ]

Page 44: Real-time Collaborative Development (Jazoon 2011)

Spike

CodeRefactor

Test

Everyone works on it

Commit changes

[ Build succeeds with all tests passing ]

Repeat

Start Select Spike

Repository

Page 45: Real-time Collaborative Development (Jazoon 2011)

Spike

Code

Refactor

Test Everyone works on it

Commit changes

[ Build succeeds with all tests passing ]

Repeat

Start Select Spike

Repository

Page 46: Real-time Collaborative Development (Jazoon 2011)

col·lab·o·ra·tion /kəˌlabəˈrāSHən/

n. The act of working with others to create or achieve something.

Page 47: Real-time Collaborative Development (Jazoon 2011)

© 2

008

Ivan

Tes

sier

Page 48: Real-time Collaborative Development (Jazoon 2011)

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