working together v2.1 with speaker notes

41
WORKING TOGETHER JOSH HILL DO NOT DISTURB: MAC & PHONE SLOW & STEADY Good evening! It’s a pleasure to be here. And I’d like to talk about pair programming.

Upload: josh-hill

Post on 15-Apr-2017

37 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Working together v2.1 with speaker notes

W O R K I N G T O G E T H E RJ O S H H I L L

DO NOT DISTURB: MAC & PHONESLOW & STEADYGood evening! It’s a pleasure to be here.And I’d like to talk about pair programming.

Page 2: Working together v2.1 with speaker notes

My first year of pair programming

full-time

Last summer, I joined a consultancy and started pair programming full-timeNow, it's been a year, and I prefer pairing to flying soloBut learning to pair has been a big change for me and it hasn't been easy, so I’d like to talk about some of the ups and downs

Page 3: Working together v2.1 with speaker notes

😬

When I told people I was going to start pairing full-time they…were bemusedNone of my colleagues had ever pairedHow about you?

Page 4: Working together v2.1 with speaker notes

"

Has anyone tried pair programming, maybe at a meet up or workshop?Does anyone pair at work?Does anyone pair most of the time?

Page 5: Working together v2.1 with speaker notes

O N O U R O W N

PA I R I N G 1 0 1

F L O W

B E N E F I T S

I’d like to talk about:- working on my own, and the frustrations that encouraged me to find another way of working- learning to pair, and the challenges I faced when I started- making a connection with another person, and that illusive state called flow- and I’ll finish with the benefits of pair programming that I value most

Page 6: Working together v2.1 with speaker notes

O N O U R O W N

PA I R I N G 1 0 1

F L O W

B E N E F I T S

SLOW & STEADYWork can be frustrating, and I’ve often wondered ‘does it have to be?’Maybe part of the problem is that we work on our own

Page 7: Working together v2.1 with speaker notes

Old habits

Working on our own is normalI think it starts at school, where we are taught how to workSchool focuses on individual effort, you have to do your homework aloneAnd if two students collaborate? Well, that's cheating!

Page 8: Working together v2.1 with speaker notes

Meet, separate, review

Until last year, every job I’ve had was the same.I was given a task, expected to go away and complete it on my ownThen we submit our finished work for reviewAnd in every job, I’ve found the review process troublesome

Page 9: Working together v2.1 with speaker notes

Marking each other’s work

I think much of the stress I've felt at work has been worrying about how my work will be received:—did I do it right?—is it good enough?—will my boss like it?Then, in many reviews the feedback has been superficial.Often the reviewer picks out minor corrections.So it was very hard to get in depth feedback.

Page 10: Working together v2.1 with speaker notes

Personal gain

We all want to do wellHowever, our individual goals don't always alignThis sets the stage for us to work against each other for personal gainAnd I’ve seen competition between people send teams off course

Page 11: Working together v2.1 with speaker notes

Silos

When we’re working on our own, how much do we collaborate?It takes effort to share knowledge and skills, so silos emerge naturallyAnd those silos can become points of failuree.g. “Josh is away, so we'll have to wait until he get’s back”Also, it's easy to laugh and belittle each other when we don't understand what's involved

Page 12: Working together v2.1 with speaker notes

Blame 👹

The worst culture of all is the blame game: the terrible politics of hunting down an issue and pointing the finger at someoneI expect we have all been victims at some pointWhen something really urgent comes up everyone knows the stakes are highAnd you have to decide: step up and be a hero, or duck for cover?

Page 13: Working together v2.1 with speaker notes

“Even programmers can be whole people in the real world. XP is an opportunity to test yourself, to be

yourself, to realize that maybe you've been fine all along and just hanging with the wrong crowd.”

– K E N T B E C K

Last summer I was looking for my next job.And I read this quote by Kent Beck about eXtreme Programming.So I decided to look for the right crowd.And with some luck I found a great team of people where I learnt to pair.

Page 14: Working together v2.1 with speaker notes

O N O U R O W N

PA I R I N G 1 0 1

F L O W

B E N E F I T S

SLOW & STEADYOk, let’s roll back the clock to last summer when I started pairingIf you've heard anything about eXtreme programming, then you might have heard people say it's awesome.I confess, that I have drunk some of the Kool-Aid, but I want to be honest about the challenges…

Page 15: Working together v2.1 with speaker notes

Pairing is a different way of workingPair programming puts you next to someoneTwo monitors, two keyboards, two mice—two mindsYou're in close quarters, it's intimate

Page 16: Working together v2.1 with speaker notes

Keystrokes collide

First, there’s the physical challengeWhen I jump on the keyboard then our keystrokes collideWhen I switch windows and miss a few times, my pair sees a kaleidoscope of prompts, code and browsers flash before them> You have to take turns and be considerate to your pair

Page 17: Working together v2.1 with speaker notes

Methods vary

Second, there's the challenge of varietyEveryone has a their own wayEven a small thing like moving a line of codeWhen I was soloing I used one method in my favourite editorMy pairs have use different ways and different editors and that’s fine> You have to let each other be different and become familiar with more ways of doing things

Page 18: Working together v2.1 with speaker notes

Ideas contend

Third, there's the challenge of explaining yourselfWhen it comes to ideas there’s even more scope for contentionWe’re all full of opinionsAnd we’re conflicted about themThere is so much to learn; and it pulls us in so many directions> You have to be honest about what you know. And when you don't know, look it up and learn together

Page 19: Working together v2.1 with speaker notes

Being kind isn’t easy

Well, it turns out that being kind is really hard workIt may sound obvious, but being kind is crucial to work with someone all dayNevertheless there is conflict> You have to work hard to let go of my old habits, and I’m still unkind more often that I’d like

Page 20: Working together v2.1 with speaker notes

It’s intense! 😳

This was a new way of working. It was intense.I’ve been physically exhausted by exercise, but never felt mental exhaustion like this beforeI was lucky that my team encouraged regular breaksI soon realised how important they are> You must take regular breaks. And don't be tempted to work late or you’ll burn out

Page 21: Working together v2.1 with speaker notes

When I got home my brain was a white out

Page 22: Working together v2.1 with speaker notes

O N O U R O W N

PA I R I N G 1 0 1

F L O W

B E N E F I T S

SLOW & STEADYAfter a few months pairing started to get easier...and I began to feel comfortable working with my pairs

Page 23: Working together v2.1 with speaker notes

When it’s going well you can achieve a flow state togetherPairing is a skillThen after pairing for a while it dawned on me that I have paired before

Page 24: Working together v2.1 with speaker notes

Aikido

I trained in Aikido, a Japanese martial art for six years at school and UniversityThe goal of Aikido is to achieve harmonyIn Aikido we train in pairs, and I think there are many similarities with pair programming

Page 25: Working together v2.1 with speaker notes

Tori and uke

Like in pair programming we take turnsTori does the technique; uke receives the techniqueBear in mind most techniques end with uke pinned, or thrown to the floorSo you quickly find out what it's like to be on the receiving end

Page 26: Working together v2.1 with speaker notes

This is me and Tom TamWe're doing a training exerciseThe goal is to hold onThe grip must be soft enough to listenAnd strong enough to keep hold

Page 27: Working together v2.1 with speaker notes

Make a connection

The aim of pairing is to make a connectionWhen you lose the connection, then…it’s obviousYou don’t know what your pair is thinking, you interrupt one another and you lose the flowIt's dynamic

Page 28: Working together v2.1 with speaker notes

Suspend judgement

Like being uke, I’ve found navigating much harder than drivingBut you have to let your pair drive.Even when you don't like their driving.I’ve learnt to suspend judgement and let them complete their thought…and then, quite often, they surprise me!

Page 29: Working together v2.1 with speaker notes

Appropriate feedback

This connection is at the heart of pairingWhen you’re pairing you can get immediate feedbackYou can discuss and combine your ideasAs you get to know your pair you can tailor your feedbackSo it is appropriate, and doesn’t disrupt the flow

Page 30: Working together v2.1 with speaker notes

Who wins?

I have a confession to make: when I started training, I wanted to winI wanted to beat people I didn’t likeHowever, in Aikido there is no competition.So at some point I realised that winning wasn’t why I went anymoreAnd in pairing teams it’s the same: we commit code together, we come up with ideas togetherWhat I enjoy most is working closely with my pair and putting my all into it

Page 31: Working together v2.1 with speaker notes

O N O U R O W N

PA I R I N G 1 0 1

F L O W

B E N E F I T S

SLOW & STEADYNow, you don’t have to achieve flow everyday to benefit from pairingSome of the benefits come quickly, but it does take time for the benefits to develop in any teamEven when the team is experienced with pairing

Page 32: Working together v2.1 with speaker notes

Focus

Fewer distractionsShared mind spaceConsistency

Page 33: Working together v2.1 with speaker notes

Shared context

We rotate pairs regularly so what we learn is shared around the teamFewer silos of knowledgeLearning and sharing is an everyday activityGuilt-free holidays

Page 34: Working together v2.1 with speaker notes

Creative variety

We share our skillsMore comfortable trying different thingsMore open to new ideas

Page 35: Working together v2.1 with speaker notes

Team sport

Pairing aligns individuals towards the team effortWe learn, fail, recover and succeed togetherIt’s not about me anymoreSo I want to see my teammates succeed and even exceed me

Page 36: Working together v2.1 with speaker notes

Not just for work

I’ve been struck by how this has changed my attitude outside the officeWhen someone is struggling with a till, my instinct is to pair with themWhen my little girl grabs my hand and says ‘c’mon’, I’m ready to pair

Page 37: Working together v2.1 with speaker notes

O N O U R O W N

PA I R I N G 1 0 1

F L O W

B E N E F I T S

Page 38: Working together v2.1 with speaker notes

Who do you work with?

Page 39: Working together v2.1 with speaker notes

Here are some of the great people I’ve worked with this year:Gagan, Maria, Pavan, Jatin, Alex and CraigThey are kind, honest, intelligent, and enthusiastic peopleI feel very lucky to work with themIt’s worth the effort

Page 40: Working together v2.1 with speaker notes

🙏

GASHOThank you for listeningThis is my first talk at LRUG.LRUG was the first meet up I came to as a new Ruby developer.That was three years ago at the Skills Matter eXchange on Goswell Road.And I would like to thank everyone who supports this community for creating a welcoming event.

Page 41: Working together v2.1 with speaker notes

J O S H H I L L

@ J A M E S J O S H U A H I L L

Would anyone like to ask a question?REPEAT QUESTION BEFORE ANSWERING

PLEASE COME AND SAY HI AFTERWARDS