working together v2.1 with speaker notes

Post on 15-Apr-2017

41 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

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

😬

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

"

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

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

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

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!

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

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.

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

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

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?

“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.

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…

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

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

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

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

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

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

When I got home my brain was a white out

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

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

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

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

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

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

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!

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

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

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

Focus

Fewer distractionsShared mind spaceConsistency

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

Creative variety

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

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

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

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

Who do you work with?

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

🙏

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.

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

top related