remote pair programming (agile india)
DESCRIPTION
My talk on Superfying your team with (remote) pair programming at #AgileIndia2014 with Niruka RuhunageTRANSCRIPT
![Page 1: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/1.jpg)
Remote Pair Programming
Agile India 2014Johannes Brodwall
Exilesoft Chief scientist
@jhannes
Guest starring: Niruka Ruhunage
![Page 2: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/2.jpg)
How can a distributed team
still collaborateclosely?
![Page 3: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/3.jpg)
How can a team collaborate well?
![Page 4: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/4.jpg)
But first
![Page 5: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/5.jpg)
But first – a competition:
![Page 6: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/6.jpg)
Competition:Find the blue sentence
![Page 7: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/7.jpg)
This talk is a talkfor you if you…
![Page 8: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/8.jpg)
You work in a team, but...
![Page 9: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/9.jpg)
Your team doesn’t feel like a team
![Page 10: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/10.jpg)
Your distributed team doesn’t feel like a team
![Page 11: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/11.jpg)
After this talk you will…
![Page 12: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/12.jpg)
Be motivated to start using pair programming, possibly remotely
![Page 13: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/13.jpg)
Have seen remote pair programming
![Page 14: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/14.jpg)
Know how to get started
![Page 15: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/15.jpg)
Who is using pair programming as their preferred approach?
![Page 16: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/16.jpg)
1. What is a super team2. Building a super team
with pairing3. Getting the benefits4. Summary
![Page 17: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/17.jpg)
Part I
![Page 18: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/18.jpg)
What is a super team?
![Page 19: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/19.jpg)
Sharing the burden
The fun remote team
![Page 20: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/20.jpg)
![Page 21: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/21.jpg)
![Page 22: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/22.jpg)
![Page 23: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/23.jpg)
Rabbit hole!
![Page 24: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/24.jpg)
Shared context
![Page 25: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/25.jpg)
Sharing experience
![Page 26: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/26.jpg)
Whops! No!
![Page 27: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/27.jpg)
![Page 28: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/28.jpg)
Working baseline
![Page 29: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/29.jpg)
![Page 30: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/30.jpg)
“That’s strange…”
![Page 31: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/31.jpg)
“Eureka!”
![Page 32: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/32.jpg)
20 minutes fix (where 10 was
waiting)
![Page 33: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/33.jpg)
Problem solved
![Page 34: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/34.jpg)
The sad team
![Page 35: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/35.jpg)
Planning
The sad team
JohannesJohannes
Backend dev
“Scrum” “Master”
Johannes: You’ll create CRUD SOAP service for projects
with applications
Okay
![Page 36: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/36.jpg)
Planning
The sad team
JohannesJohannes
Backend dev
“Scrum” “Master”
How long will it take?
Um…
![Page 37: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/37.jpg)
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 38: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/38.jpg)
Stand-up
The sad team
Designer
Frontend devDatabase dev
Today, I will work on Create Project
JohannesJohannes
Backend dev
Scrum master
![Page 39: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/39.jpg)
Stand-up
The sad team
Designer
Frontend devDatabase dev
No impediments
JohannesJohannes
Backend dev
Scrum master
![Page 40: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/40.jpg)
Behold – the uber coder
The sad team
![Page 41: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/41.jpg)
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 42: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/42.jpg)
The sad team
Exception
Stack overflow
Tweak
Deploy
Poke
![Page 43: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/43.jpg)
The sad team
Exception
Stack overflow
Tweak
Deploy
Poke
![Page 44: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/44.jpg)
The sad team
Exception
Stack overflow
Tweak
Deploy
Poke
![Page 45: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/45.jpg)
The sad team
Exception
Stack overflow
Tweak
Deploy
Poke
![Page 46: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/46.jpg)
Stand-up
The sad team
Designer
Frontend devDatabase dev
Yesterday, I worked on Create Project
JohannesJohannes
Backend dev
Scrum master
![Page 47: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/47.jpg)
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 48: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/48.jpg)
Stand-up
The sad team
No impediments
JohannesJohannesScrum master
Designer
Frontend devDatabase dev
Backend dev
![Page 49: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/49.jpg)
Stand-up
The sad teamJohannesJohannesScrum master
Designer
Frontend devDatabase dev
Backend dev
How could they help anyway
![Page 50: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/50.jpg)
The sad team
![Page 51: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/51.jpg)
Behold – the uber coder
The sad team
![Page 52: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/52.jpg)
Exception!
The sad team
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [Person[id=22]] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:927) at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:844) at javax.servlet.http.HttpServlet.service(HttpServlet.java:653) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:119) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at filter.NoCacheFilter.doFilter(NoCacheFilter.java:102) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
![Page 53: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/53.jpg)
The sad team
![Page 54: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/54.jpg)
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 55: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/55.jpg)
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 56: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/56.jpg)
The sad team
STOP
![Page 57: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/57.jpg)
Imagine you should carry 10 pieces of timber
Each is 3 meters and 30 kg
![Page 58: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/58.jpg)
The fun team
![Page 59: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/59.jpg)
Stand-up
The sad team
I’m ready for a new task.What’s on the board..
JohannesJohannes
Johannes
Scrum master
![Page 60: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/60.jpg)
Stand-up
The sad team
«Let’s users administrate their projects»
JohannesJohannes
Johannes
Scrum master
![Page 61: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/61.jpg)
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 62: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/62.jpg)
![Page 63: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/63.jpg)
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 64: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/64.jpg)
That link doesn’t really seem relevant.
Are we getting anywhere? Time to ask for help?
![Page 65: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/65.jpg)
I think Niluka has worked on this sort of thing before
![Page 66: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/66.jpg)
Niluka
Yeah, just look at the Person HasMany Roles
mapping
![Page 67: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/67.jpg)
That’s it!High five!
![Page 68: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/68.jpg)
The difference
![Page 69: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/69.jpg)
Everyone works everywhere
Knowledge is disseminated
You’re never alone
![Page 70: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/70.jpg)
Part II
![Page 71: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/71.jpg)
Superfyingwith
Pair programming
![Page 72: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/72.jpg)
Pair programming styles
![Page 73: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/73.jpg)
Debate club
“No, this variable should be called fooNumber, not fooNum”,
“But it’s a common abbreviation”
![Page 74: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/74.jpg)
Dedicated driver
“I’ll write the parser”
“I’ll design the algorithm”
![Page 75: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/75.jpg)
Driver-navigator
“I don’t know how to solve this, so I’ll sit at the keyboard”
![Page 76: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/76.jpg)
Ping-pong
![Page 77: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/77.jpg)
Ingredient #1:
Pair programming
![Page 78: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/78.jpg)
![Page 79: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/79.jpg)
![Page 80: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/80.jpg)
Ingredient #2:
Test driven development
![Page 81: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/81.jpg)
Failing test
Write code
Failing test
Write code
Failing test
![Page 82: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/82.jpg)
Ingredient #3:
Refactoring
![Page 83: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/83.jpg)
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
![Page 84: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/84.jpg)
Put together
![Page 85: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/85.jpg)
Failing test
Write code
Failing test
Write code
Failing test
![Page 86: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/86.jpg)
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
![Page 87: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/87.jpg)
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
![Page 88: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/88.jpg)
Demonstration(Guest starring
Niruka Ruhunage)
![Page 89: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/89.jpg)
Kata: Number to text
![Page 90: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/90.jpg)
Kata: Number to text8192 => eight thousand one hundred and ninety two
125,017 =>
one hundred and twenty five thousand and seventeen
![Page 91: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/91.jpg)
What does it feel like?
![Page 92: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/92.jpg)
Part III
![Page 93: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/93.jpg)
From here to there
![Page 94: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/94.jpg)
Make sharing into a goal
![Page 95: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/95.jpg)
Dileepa
Johannes
Chintaka
Thomas
Sergey
Arunas
![Page 96: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/96.jpg)
Dileepa
Johannes
Chintaka
Thomas
Sergey
Arunas
![Page 97: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/97.jpg)
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 98: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/98.jpg)
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 99: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/99.jpg)
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 100: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/100.jpg)
Overcoming obstacles
![Page 101: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/101.jpg)
JIRA
![Page 102: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/102.jpg)
With a true team, no member owns more
than their current task
![Page 103: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/103.jpg)
TODO DOING DONE
WAITING
AWAY
![Page 104: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/104.jpg)
You will get more done
(But not in the first or second sprint)
![Page 105: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/105.jpg)
Distance
![Page 106: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/106.jpg)
• See each other• Share what we see• Share our work
![Page 107: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/107.jpg)
• Skype (or any voice sharing)• GoToMeeting (or flexible screen
sharing)• Dropbox (or any file sharing)
![Page 108: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/108.jpg)
Skill and tact
![Page 109: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/109.jpg)
• Experiment with switching patterns
• Try out ping-pong• “Could we try it this way
first?”
![Page 110: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/110.jpg)
Expect exhaustion
![Page 111: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/111.jpg)
When
![Page 112: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/112.jpg)
Bug fix
![Page 113: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/113.jpg)
Training event
![Page 114: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/114.jpg)
![Page 115: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/115.jpg)
Practice with kata
![Page 116: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/116.jpg)
1. Create a dropbox account
2. Share a folder with a friend
3. Put a coding project there
4. Create a screen share session
5. Call up your friend
![Page 117: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/117.jpg)
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
![Page 118: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/118.jpg)
Set a time per week
![Page 119: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/119.jpg)
Don’t wait to find the perfect tool
![Page 120: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/120.jpg)
Just do it
![Page 121: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/121.jpg)
Conclusion
![Page 122: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/122.jpg)
What
![Page 123: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/123.jpg)
• Two people at one codebase• No member owns a task
beyond the day• Team rotates pairing
![Page 124: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/124.jpg)
Why
![Page 125: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/125.jpg)
• 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 126: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/126.jpg)
How
![Page 127: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/127.jpg)
• Ask for help – don’t work alone
• Play with ping pong programming for two hours
• Be open, share and listen
![Page 128: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/128.jpg)
Competition:What was the blue sentence?
![Page 129: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/129.jpg)
A team creates together what no member could do
alone
![Page 130: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/130.jpg)
Next week: Commit to two hours of
working together
![Page 131: Remote Pair Programming (Agile India)](https://reader033.vdocuments.net/reader033/viewer/2022061108/544f66fbaf79596a6a8bab46/html5/thumbnails/131.jpg)
http://JohannesBrodwall.comhttp://exilesoft.com
http://twitter.com/jhannes
Thank you