At the Extremities of Extreme (Agile North 2011)

41
At the Extremities of Extreme Julian Fitzell AgileNorth June 9, 2011 Image © Christopher Michot

description

 

Transcript of At the Extremities of Extreme (Agile North 2011)

Page 1: At the Extremities of Extreme (Agile North 2011)

At the Extremities of Extreme

Julian Fitzell

AgileNorthJune 9, 2011

Imag

e ©

Chr

isto

pher

Mic

hot

Page 2: At the Extremities of Extreme (Agile North 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: At the Extremities of Extreme (Agile North 2011)
Page 4: At the Extremities of Extreme (Agile North 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: At the Extremities of Extreme (Agile North 2011)
Page 6: At the Extremities of Extreme (Agile North 2011)
Page 7: At the Extremities of Extreme (Agile North 2011)

Online Gaming

• fine-grained collaboration

• immersion

• transparency / feedback

• flow / transitions

Page 8: At the Extremities of Extreme (Agile North 2011)
Page 9: At the Extremities of Extreme (Agile North 2011)
Page 10: At the Extremities of Extreme (Agile North 2011)

A Simple Idea

What if we allowed a group of developers to simultaneously develop

the same running application?

Page 11: At the Extremities of Extreme (Agile North 2011)

fine-grained collaboration

Page 12: At the Extremities of Extreme (Agile North 2011)
Page 13: At the Extremities of Extreme (Agile North 2011)
Page 14: At the Extremities of Extreme (Agile North 2011)

Roam territory

Search for a herd

Test prey animals

Wolf Pack Programming™

Page 15: At the Extremities of Extreme (Agile North 2011)

Select easiest prey

If it takes flight, whole pack chases

If it stands, pack circles, two wolves attack

Page 16: At the Extremities of Extreme (Agile North 2011)

Roam territory

Search for a herd

Test prey animals

Page 17: At the Extremities of Extreme (Agile North 2011)

Search for a herd

Test prey animals

Roam problem domain / code base

Page 18: At the Extremities of Extreme (Agile North 2011)

Test prey animals

Roam problem domain / code base

Search for a requirement / feature

Page 19: At the Extremities of Extreme (Agile North 2011)

Roam problem domain / code base

Search for a requirement / feature

Test spikes

Page 20: At the Extremities of Extreme (Agile North 2011)

Select easiest prey

If it takes flight, whole pack chases

If it stands, pack circles, two wolves attack

Page 21: At the Extremities of Extreme (Agile North 2011)

If it takes flight, whole pack chases

If it stands, pack circles, two wolves attack

Select easiest implementation

Page 22: At the Extremities of Extreme (Agile North 2011)

If it stands, pack circles, two wolves attack

Select easiest implementation

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

Page 23: At the Extremities of Extreme (Agile North 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 24: At the Extremities of Extreme (Agile North 2011)

immersion

Page 25: At the Extremities of Extreme (Agile North 2011)

theCode: is^ [ :your | reality ]

Page 26: At the Extremities of Extreme (Agile North 2011)

Pairing

© P

aul S

trav

insk

y

Page 27: At the Extremities of Extreme (Agile North 2011)

restricts your view on the

world

Pairing

© P

aul S

trav

insk

y

Page 28: At the Extremities of Extreme (Agile North 2011)

pair programmingtwin and

triplet

Page 29: At the Extremities of Extreme (Agile North 2011)

transparency

Page 31: At the Extremities of Extreme (Agile North 2011)

Continuous Testing

Page 32: At the Extremities of Extreme (Agile North 2011)

PD-USGOV-INTERIO

R-NPS.

A wolf’s concept of

territory

Page 33: At the Extremities of Extreme (Agile North 2011)

Open Channel

Image ©

Retron / D

arren (flickr)

Page 34: At the Extremities of Extreme (Agile North 2011)

flow

Page 35: At the Extremities of Extreme (Agile North 2011)
Page 36: At the Extremities of Extreme (Agile North 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 37: At the Extremities of Extreme (Agile North 2011)

Spike

CodeRefactor

Test

Everyone works on it

Commit changes

[ Build succeeds with all tests passing ]

Repeat

Start Select Spike

Repository

Page 38: At the Extremities of Extreme (Agile North 2011)

Spike

Code

Refactor

Test Everyone works on it

Commit changes

[ Build succeeds with all tests passing ]

Repeat

Start Select Spike

Repository

Page 39: At the Extremities of Extreme (Agile North 2011)

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

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

Page 40: At the Extremities of Extreme (Agile North 2011)

© 2

008

Ivan

Tes

sier

Page 41: At the Extremities of Extreme (Agile North 2011)

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

Julian [email protected]

Twitter: @jfitzell