real-time collaborative development (jazoon 2011)

Post on 17-Jan-2015

252 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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

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 Fitzelljfitzell@cincom.com

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

top related