107
Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician Junior/junior: Timer Junior/senior: Driver/trainer – optimize learning Junior/senior: Co-pilot/pilot – optimize progress

Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Embed Size (px)

Citation preview

Page 1: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Extreme Collaboration

Johannes BrodwallExilesoft Chief scientist

@jhannes

TODO: Good pairings:

Senior/senior: Ping-pongRespectful senior/senior: Stategist/tacticianJunior/junior: TimerJunior/senior: Driver/trainer – optimize learningJunior/senior: Co-pilot/pilot – optimize progress

Page 2: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

How can a team collaborate well?

Page 3: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

This talk is for you if you…

Page 4: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

You work in a team, but...

Page 5: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Your team doesn’t feel like a team

Page 6: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

XP:Collective code ownership

Pair programmingWhole team

Sustainable pace

Page 7: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Defining pair programming

Page 8: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Two people working on the same files

Page 9: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Who has tried pair programming?

Page 10: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Positive experiences

Page 11: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Negative experiences

Page 12: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Why no more?

Page 13: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

After this talk

Page 14: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Commit to try

Page 15: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

1. A sad team2. A super team3. Getting to great

Page 16: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Part I

Page 17: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

Page 18: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Planning

The sad team

JohannesJohannes

Backend dev

“Scrum” “Master”

Johannes: You’ll create CRUD SOAP service for projects

with applications

Okay

Page 19: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Planning

The sad team

JohannesJohannes

Backend dev

“Scrum” “Master”

How long will it take?

Um…

Page 20: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Planning

Backend dev 2

The sad team

JohannesJohannes

Backend dev

“Scrum” “Master”

It’s pretty easy with Hibernate

Okay, 8 hours for each of Create…

then

!

Page 21: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad team

Designer

Frontend devDatabase dev

Today, I will work on Create Project

JohannesJohannes

Backend dev

Scrum master

Page 22: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad team

Designer

Frontend devDatabase dev

No impediments

JohannesJohannes

Backend dev

Scrum master

Page 23: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Behold – the uber coder

The sad team

Page 24: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Exception!

The sad team

org.hibernate.PropertyValueException: not-null property references a null or transient value: ....common.entities.Application._applicationsBackref org.hibernate.engine.Nullability.checkNullability(Nullability.java:95) org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313) org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

Page 25: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 26: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 27: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 28: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 29: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad team

Designer

Frontend devDatabase dev

Yesterday, I worked on Create Project

JohannesJohannes

Backend dev

Scrum master

Page 30: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad team

Today, I will hopefully fix the

exception and also do Delete Project

JohannesJohannesScrum master

Designer

Frontend devDatabase dev

Backend dev

Page 31: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad team

No impediments

JohannesJohannesScrum master

Designer

Frontend devDatabase dev

Backend dev

Page 32: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad teamJohannesJohannesScrum master

Designer

Frontend devDatabase dev

Backend dev

How could they help anway

Page 33: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

Page 34: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Behold – the uber coder

The sad team

Page 35: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

Page 36: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad teamJohannesJohannesScrum master

Yesterday, I finally finished Delete after 3 days of «coding»

Designer

Frontend devDatabase dev

Backend dev

I didn’t need the Delete service

Page 37: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The sad teamJohannesJohannesScrum master

Designer

Frontend devDatabase dev

Backend dev

I didn’t need the Delete service

Yesterday, I finally finished Delete after 3 days of «coding»

Page 38: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The sad team

STOP

Page 39: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Imagine you should carry 10 wooden beams

Each is 3 meters and 30 kg

Page 40: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Part II

Page 41: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The fun team

Page 42: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

The fun team

I’m ready for a new task.What’s on the board..

JohannesJohannes

Johannes

Page 43: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

«Basic submit leave request»

JohannesJohannes

Johannes

The fun team

Page 44: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Stand-up

Hiran

Johannes We haven’t worked together yet this week

The fun team

Page 45: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The fun team

Page 46: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Exception!

The sad team

org.hibernate.PropertyValueException: not-null property references a null or transient value: ....common.entities.Application._applicationsBackref org.hibernate.engine.Nullability.checkNullability(Nullability.java:95) org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313) org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

Page 47: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

That link doesn’t really seem relevant. Are we getting anywhere?

Time to ask for help?

Page 48: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

I think Manoj has worked on this sort of thing before

The fun team

Page 49: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Manoj

Yeah, just look at the Person mapping file

The fun team

Page 50: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

That’s it!High five!

The fun team

Page 51: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

The difference

Page 52: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Everyone works everywhere

Page 53: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Everyone works everywhere

You get help with tech you don’t know

Page 54: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Everyone works everywhereYou’re not blocked

Page 55: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Everyone works everywhere

Integration becomes easier

Page 56: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Knowledge spreads

Page 57: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

You don’t get stuck

Page 58: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

You don’t get stuckWrong path is stopped by pair

Page 59: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

You don’t get stuckSilly mistakes spotted by pair

Page 60: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

You don’t get stuckSilly mistakes spotted by pair

Page 61: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Your job as a pair

Page 62: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

“Are we focusing on the goal”

Page 63: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

“Did you notice …?”

Page 64: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

“Is there a better way?”

Page 65: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

“Are we working as the team agreed?”

Page 66: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Part II

Page 67: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Superfyingwith

Pair programming

Page 68: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Make sharing into a goal

Page 69: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Dileepa

Johannes

Chintaka

Thomas

Sergey

Arunas

Who is acting worst?

Page 70: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Dileepa

Johannes

Chintaka Sergey

Arunas

Thomas

Who is acting best?

Page 71: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Dileepa

Johannes

Chintaka

Thomas

Sergey

Arunas

Page 72: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Arunas Johannes Dileepa Chinthaka Sergey Thomas

Add new company✓ ✓ ✓ ✓ ✓

Display contacts on map ✓ ✓ ✓

Filter contacts in list✓ ✓

Authenticate user by company ✓ ✓ ✓ ✓

Store password securely ✓ ✓

Usernames with Norwegian letters are rejected

✓Which task is

suspicious?

Page 73: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Arunas Johannes Dileepa Chinthaka Sergey Thomas

Add new company✓ ✓ ✓ ✓ ✓

Display contacts on map ✓ ✓ ✓

Filter contacts in list✓ ✓

Authenticate user by company ✓ ✓ ✓ ✓

Store password securely ✓ ✓

Usernames with Norwegian letters are rejected

Which team member is

helping most?

Page 74: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Arunas Johannes Dileepa Chinthaka Sergey Thomas

Add new company✓ ✓ ✓ ✓ ✓

Display contacts on map ✓ ✓ ✓

Filter contacts in list✓ ✓

Authenticate user by company ✓ ✓ ✓ ✓

Store password securely ✓ ✓

Usernames with Norwegian letters are rejected

Page 75: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Task assignment

Page 76: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

TODO DOING DONE

Hiran Johannes

SankalpaWaruni

Milina

JohannesHiran

HiranHiran

Waruni

Johannes

Waruni

Milina

Sankalpa

Johannes

Waruni

Waruni

Milina

Sankalpa

Sankalpa

HiranHiran

Milina

Sankalpa

Page 77: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

TODO DOING DONE

WAITING

AWAY

Page 78: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

TODO DOING DONE

WAITING

AWAY

Page 79: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

TODO DOING DONE

WAITING

AWAY

Page 80: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

TODO DOING DONE

WAITING

AWAY

Page 81: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

TODO DOING DONE

WAITING

AWAY

Page 82: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

TODO DOING DONE

WAITING

AWAYOne avatar per brainOne assigned task per

brainNever mind JIRA

Page 83: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

You will get more done

(But not next sprint)

Page 84: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

PS: It’s not only for developers

Page 85: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Getting there

Page 86: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Practice with kata

Page 87: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 88: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Ping-pong

Page 89: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Fun events

Page 90: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician
Page 91: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Try an experiment

Page 92: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Try an experimentPair 2 hours per day for a

week

Page 93: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Expect exhaustion

Page 94: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Expect exhaustionFor the first month

Page 95: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Conclusion

Page 96: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

What

Page 97: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

• Two people at one codebase• No member owns a task

beyond the day• Team rotates pairing

Page 98: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Why

Page 99: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

• Working solo limits your vision of the code base and the problem

Page 100: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

• Less Overproduction (unused functions in API)• Less Waiting (for the only person who knows X)• Less Motion (as everyone gets more skilled)• Fewer Defects (as two pair of eyes see better)• Less Over-processing (from double responsibility)• Less Inventory (as team works more focused)• Less Transportation (handoffs inside a story)

Page 101: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

How

Page 102: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

• Create a pair programming circle

• Practice pairing• Commit to pairing 2 hours

per day for a week

Page 103: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Do you accept the challenge?

Pair for 2 hours per day for a week

Page 104: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Your job as a pair

• “Are we focusing on the goal?”• “Did you notice …?”• “Is there a better way?”• “Are we working in the way the team

agreed?”

Page 105: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

Tools and tricks

• Pair programming circle• Knowledge matrix• Floating assignments

• Expect exhaustion

Page 106: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

[email protected]

http://JohannesBrodwall.comhttp://exilesoft.com

http://twitter.com/jhannes

Thank you

Page 107: Extreme Collaboration Johannes Brodwall Exilesoft Chief scientist @jhannes TODO: Good pairings: Senior/senior: Ping-pong Respectful senior/senior: Stategist/tactician

I want your feedback:

How likely are you to recommend this session to a co-worker on a scale from 1 (lowest) to 10 (highest)?

Optional: What's the reason for your number?