Top Banner
Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya
122

Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Apr 01, 2015

Download

Documents

Yuliana Haslam
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Remote Pair Programming

BuildStuff.ltJohannes Brodwall

Exilesoft Chief scientist

@jhannesGuest starring:

Dileepa Jayasuriya

Page 2: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

How can a distributed team

still collaborateclosely?

Page 3: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

How can a team collaborate well?

Page 4: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

This talk is for you if you…

Page 5: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

You work in a team, but...

Page 6: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Your team doesn’t feel like a team

Page 7: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Your distributed team doesn’t feel like a team

Page 8: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

After this talk

Page 9: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Three things to become a super productive team

Page 10: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

But first

Page 11: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

But first – a competition:

Page 12: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Competition:Find the blue sentence

Page 13: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

1. What is a super team2. Building a super team

with pairing3. Getting the benefits4. Summary

Page 14: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Part I

Page 15: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

What is a super team?

Page 16: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Sharing the burden

The fun remote team

Page 17: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 18: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 19: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 20: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Rabbit hole!

Page 21: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Shared context

Page 22: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Sharing experience

Page 23: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Whops! No!

Page 24: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 25: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Working baseline

Page 26: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 27: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

“That’s strange…”

Page 28: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

“Eureka!”

Page 29: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

20 minutes fix (where 10 was

waiting)

Page 30: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Problem solved

Page 31: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

Page 32: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Planning

The sad team

JohannesJohannes

Backend dev

“Scrum” “Master”

Johannes: You’ll create CRUD SOAP service for projects

with applications

Okay

Page 33: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Planning

The sad team

JohannesJohannes

Backend dev

“Scrum” “Master”

How long will it take?

Um…

Page 34: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 35: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad team

Designer

Frontend devDatabase dev

Today, I will work on Create Project

JohannesJohannes

Backend dev

Scrum master

Page 36: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad team

Designer

Frontend devDatabase dev

No impediments

JohannesJohannes

Backend dev

Scrum master

Page 37: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Behold – the uber coder

The sad team

Page 38: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 39: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 40: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 41: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 42: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

Exception

Google

Stack overflow

Tweak

Deploy

Poke

Page 43: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad team

Designer

Frontend devDatabase dev

Yesterday, I worked on Create Project

JohannesJohannes

Backend dev

Scrum master

Page 44: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 45: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad team

No impediments

JohannesJohannesScrum master

Designer

Frontend devDatabase dev

Backend dev

Page 46: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad teamJohannesJohannesScrum master

Designer

Frontend devDatabase dev

Backend dev

How could they help anway

Page 47: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

Page 48: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Behold – the uber coder

The sad team

Page 49: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

Page 50: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 51: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 52: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The sad team

STOP

Page 53: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Imagine you should carry 10 wooden beams

Each is 3 meters and 30 kg

Page 54: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The fun team

Page 55: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad team

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

JohannesJohannes

Johannes

Scrum master

Page 56: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad team

«Let’s users administrate their projects»

JohannesJohannes

Johannes

Scrum master

Page 57: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Stand-up

The sad team

I haven’t done any Hibernate tasks before.

Who can I pair with?

JohannesJohannes

Johannes

Scrum master

I can work together with you

Page 58: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 59: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 60: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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

Time to ask for help?

Page 61: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

I think Dileepa has worked on this sort of

thing before

Page 62: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Dileepa

Yeah, just look at the Person HasMany Roles

mapping

Page 63: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

That’s it!High five!

Page 64: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

The difference

Page 65: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Everyone works everywhere

Knowledge is disseminated

You’re never alone

Page 66: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Part II

Page 67: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Superfyingwith

Pair programming

Page 68: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Pair programming styles

Page 69: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Debate club

“No, this variable should be called fooNumber, not fooNum”,

“But it’s a common abbreviation”

Page 70: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Dedicated driver

“I’ll write the parser”

“I’ll design the algorithm”

Page 71: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Driver-navigator

“I don’t know how to solve this, so I’ll sit at the keyboard”

Page 72: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Ping-pong

Page 73: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Ingredient #1:

Pair programming

Page 74: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 75: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 76: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Ingredient #2:

Test driven development

Page 77: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Failing test

Write code

Failing test

Write code

Failing test

Page 78: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Ingredient #3:

Refactoring

Page 79: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 80: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Put together

Page 81: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Failing test

Write code

Failing test

Write code

Failing test

Page 82: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 83: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 84: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Demonstration(Guest starring

Dileepa Jayasuriya)

Page 85: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Kata: Number to text

Page 86: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Kata: Number to text8192 => eight thousand one hundred and ninety two

125,017 =>

one hundred and twenty five thousand and seventeen

Page 87: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

What does it feel like?

Page 88: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Part III

Page 89: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

From here to there

Page 90: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Make sharing into a goal

Page 91: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Dileepa

Johannes

Chintaka

Thomas

Sergey

Arunas

Page 92: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Dileepa

Johannes

Chintaka

Thomas

Sergey

Arunas

Page 93: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 94: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 95: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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 96: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Overcoming obstacles

Page 97: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

JIRA

Page 98: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

With a true team, no member owns more

than their current task

Page 99: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

TODO DOING DONE

WAITING

AWAY

Page 100: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

You will get more done

(But not in the first or second sprint)

Page 101: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Distance

Page 102: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

• Skype (or any voice sharing)• GoToMeeting (or flexible screen

sharing)• Dropbox (or any file sharing)

Page 103: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Skill and tact

Page 104: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

• Experiment with switching patterns

• Try out ping-pong• “Could we try it this way

first?”

Page 105: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Building your skills

Page 106: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Fun events

Page 107: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.
Page 108: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Expect exhaustion

Page 109: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Just do it

Page 110: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

• Ask for help• Don’t wait for

• Perfect tool• Perfect oppunity

Page 111: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Conclusion

Page 112: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

What

Page 113: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

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

beyond the day• Team rotates pairing

Page 114: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Why

Page 115: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

• “Rockstar programmer” model doesn’t scale

Page 116: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

• 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 117: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

How

Page 118: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

• Ask for help – don’t work alone

• Try ping pong programming for two hours

• Be open, share and listen

Page 119: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

Competition:What was the blue sentence?

Page 120: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

A team creates together what no member could do

alone

Page 121: Remote Pair Programming BuildStuff.lt Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Dileepa Jayasuriya.

You can start as soon as you get

back to work