SlideShare a Scribd company logo
1 of 33
Download to read offline
PAIR PROGRAMMING
Klarna TLV
Uri Nativ
April 2015
CULTURE
Pair Programming is part of
our ways-of-working here
at Klarna TLV and it is part
of our culture
HISTORY
Pairing started as a way to
onboard new developers,
but we’ve continued doing
it since we thought it adds
value to other coding tasks
as well.
WHY?
Over time, we gave very
little thought to pairing.
- Why are we doing it?
- When should we pair?
- Is it mandatory to pair?
WHY?
3.5 years later we ran a
survey, and created a small
thinking group.
Here are the results…
SURVEY
Most people enjoy pairing
people feel that we do it a
reasonable amount.
Few feel confident that we
do it ‘properly.’
SURVEY
People consistently cited
knowledge sharing and
‘having a different set of
eyes’ as being great things
about pairing.
SURVEY
Problems with coordination
& frequent context
switching was a consistent
complaint.
SURVEY
Some people identified
pairing as making them
more focused while others
felt that they would be
more focused working
more independently.
PROS
&
CONS
PROS
Higher code quality
More readable code
Encourage discussion
Knowledge sharing
Collaborative code ownership
Teaching tool
Focus
CONS
People not feeling
independent or not feeling
comfortable working alone
Slow development time
- Can the same task be done by a single
person?
- What’s the cost of coordination overhead?
Being dumb together
- Hard to question the decisions of the pair
from the outside
WORKING
ALONE
On top of the cons of pairing,
working alone has some
value and sometimes
advantages over pairing.
WORKING
ALONE
Some developers just prefer
working alone
- They find themselves more productive and
focused
Some developers are more
engaged with their task when
they work alone
- they get bored quickly when they are not in
the driver seat
WORKING
ALONE
Some people find it hard to
learn when there is a
knowledge gap as you don’t
want to slow down the fast
developer
- People find it more comfortable to learn
using trial-and-error when working alone
You feel more obliged to ask
your team members for
opinion
We need to acknowledge that pairing is very
SUBJECTIVE
The value of pairing and what people gain
out of it DIFFERS BETWEEN
DEVELOPERS and DIFFERS BETWEEN
PAIRS
Which tasks are good
candidates for pairing?
#1
TEACHING
#2
NON-TRIVIAL
#1
TEACHING
Pairing can be a great tool to
teach people new dev
practices or a new
technology.
The mentor should be in the
right state of mind - the goal
is to teach rather than
complete the task fast. In this
aspect the word pairing is
misused.
#2
NON
TRIVIAL
Any non trivial task is a
candidate for pairing.
Especially design/infra
problems.
Risky - a task might not be
complex, but another set of
eyes is needed to reduce the
risk.
Pair programming works best with a
large uncertain search space of
problems and solutions. The closer
to a solved problem, the less it helps
-
- Kent Beck
“
”
COORDINATION can be a big overhead.
Here are some tips:
COORDINATION
TIP# 1 The pair should try to plan
their day in advance
- is it appropriate that we pair together
considering our schedule, should meetings
be moved?
COORDINATION
TIP# 2 Turn off disruptions
- treat it as a meeting
COORDINATION
TIP# 3 Understand as a pair what is
the goal of the pairing
- this should guide the pair on what they have
to pair and on what parts they can work
alone
COORDINATION
TIP# 4 A “pairing task” doesn’t
mean you have to pair 100%
of your time
- when someone “leaves”, the other developer
can continue on his own
- ideally before you depart, agree on the next
steps
LEFT WITHOUT YOUR PAIR?
Work on other "peripheral" tasks
if you have any
- peer reviews, answering emails, prepare the
demo, etc
Work on the less sensitive /
more trivial parts of the task
- the parts in your task which are most similar to
the scenarios we listed under "when not to pair"
LEFT WITHOUT YOUR PAIR?
In case there are no such tasks
or the current task is urgent
enough - continue on your own
and sync your pair when he/she
is back.
WHO DECIDES WHEN TO PAIR?
- is it the team or is it the developer who codes?
The developer who owns the task
- Same answer to “have enough people reviewed my code?” “who
chooses the design?”
The team can recommend, but it is the
developer who codes is the one who makes
the call
CONCLUSIONS
#1 We see the value in pairing
and we see the value of
working alone.
CONCLUSIONS
#2 A teaching/mentoring pairing
task should be treated
differently than a get-things-
done task.
CONCLUSIONS
#3 Pairing is subjective, thus we
should not force anyone to
pair or not to pair.
This is the developer’s call.
CONCLUSIONS
#4 If you want to work alone -
go ahead.
If you want someone to join
you - ask, and the team
should comply.
HAPPY
PAIRING!
Wolf Shadow (D3A_0781) image by Steve Harris - https://flic.kr/p/63JyxQ
Uri Nativ
@unativ

More Related Content

What's hot

How to Make Great Software Estimates
How to Make Great Software EstimatesHow to Make Great Software Estimates
How to Make Great Software EstimatesGreg Thomas
 
Agile design pattern
Agile design patternAgile design pattern
Agile design patternPoppy Martono
 
Designing Inclusive Organizations
Designing Inclusive OrganizationsDesigning Inclusive Organizations
Designing Inclusive OrganizationsFresh Tilled Soil
 
How to write Great Requirements
How to write Great RequirementsHow to write Great Requirements
How to write Great RequirementsGreg Thomas
 
Traversing hyper driven developpement to do great technical choices and make ...
Traversing hyper driven developpement to do great technical choices and make ...Traversing hyper driven developpement to do great technical choices and make ...
Traversing hyper driven developpement to do great technical choices and make ...Quentin Adam
 
The passionate programmer
The passionate programmerThe passionate programmer
The passionate programmerMahmoud Tolba
 
Google's Official Note to Product Management Candidates
Google's Official Note to Product Management CandidatesGoogle's Official Note to Product Management Candidates
Google's Official Note to Product Management CandidatesLewis Lin 🦊
 
Good developers vs bad developers
Good developers vs bad developersGood developers vs bad developers
Good developers vs bad developersOusman L. Kallay
 
Elevator Pitch Tips - Marc Nathan
Elevator Pitch Tips - Marc NathanElevator Pitch Tips - Marc Nathan
Elevator Pitch Tips - Marc NathanMarc Nathan
 
Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Alberto Brandolini
 
The Nitty Gritty of Setting Up Customer Discovery Meetings
The Nitty Gritty of Setting Up Customer Discovery MeetingsThe Nitty Gritty of Setting Up Customer Discovery Meetings
The Nitty Gritty of Setting Up Customer Discovery MeetingsLean Startup Co.
 
Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...Codemotion
 
All Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through ResearchAll Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through ResearchAggregage
 
Software Project management
Software Project managementSoftware Project management
Software Project managementPeter Brownell
 
Agile and Design: creating and implementing products (in Italy) is possible
Agile and Design: creating and implementing products (in Italy) is possibleAgile and Design: creating and implementing products (in Italy) is possible
Agile and Design: creating and implementing products (in Italy) is possibleIlaria Mauric
 

What's hot (20)

How to Make Great Software Estimates
How to Make Great Software EstimatesHow to Make Great Software Estimates
How to Make Great Software Estimates
 
Agile design pattern
Agile design patternAgile design pattern
Agile design pattern
 
Designing Inclusive Organizations
Designing Inclusive OrganizationsDesigning Inclusive Organizations
Designing Inclusive Organizations
 
How to write Great Requirements
How to write Great RequirementsHow to write Great Requirements
How to write Great Requirements
 
Traversing hyper driven developpement to do great technical choices and make ...
Traversing hyper driven developpement to do great technical choices and make ...Traversing hyper driven developpement to do great technical choices and make ...
Traversing hyper driven developpement to do great technical choices and make ...
 
The passionate programmer
The passionate programmerThe passionate programmer
The passionate programmer
 
Google's Official Note to Product Management Candidates
Google's Official Note to Product Management CandidatesGoogle's Official Note to Product Management Candidates
Google's Official Note to Product Management Candidates
 
Good developers vs bad developers
Good developers vs bad developersGood developers vs bad developers
Good developers vs bad developers
 
Project and Self Marketing
Project and Self MarketingProject and Self Marketing
Project and Self Marketing
 
Elevator Pitch Tips - Marc Nathan
Elevator Pitch Tips - Marc NathanElevator Pitch Tips - Marc Nathan
Elevator Pitch Tips - Marc Nathan
 
Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014
 
The PM PrepCast Student Profiles
The PM PrepCast Student ProfilesThe PM PrepCast Student Profiles
The PM PrepCast Student Profiles
 
The Nitty Gritty of Setting Up Customer Discovery Meetings
The Nitty Gritty of Setting Up Customer Discovery MeetingsThe Nitty Gritty of Setting Up Customer Discovery Meetings
The Nitty Gritty of Setting Up Customer Discovery Meetings
 
Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...
 
All Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through ResearchAll Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through Research
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
Agile and Design: creating and implementing products (in Italy) is possible
Agile and Design: creating and implementing products (in Italy) is possibleAgile and Design: creating and implementing products (in Italy) is possible
Agile and Design: creating and implementing products (in Italy) is possible
 
The sweet spot
The sweet spotThe sweet spot
The sweet spot
 
Kubasova: Negotiations
Kubasova: NegotiationsKubasova: Negotiations
Kubasova: Negotiations
 
It's not simple at all
It's not simple at allIt's not simple at all
It's not simple at all
 

Viewers also liked

Klarna programming contest 2011
Klarna programming contest 2011Klarna programming contest 2011
Klarna programming contest 2011Sandra Isgren
 
Scrum in practice at klarna
Scrum in practice at klarnaScrum in practice at klarna
Scrum in practice at klarnaElad Maimon
 
#Drømmeløftet - Startup Hovestaden: Klarna
#Drømmeløftet - Startup Hovestaden: Klarna#Drømmeløftet - Startup Hovestaden: Klarna
#Drømmeløftet - Startup Hovestaden: KlarnaOslo Business Region
 
Agile - What? Why? How?
Agile - What? Why? How?Agile - What? Why? How?
Agile - What? Why? How?Uri Nativ
 
Klarna / Rethink Office / Aktivtetsbaserat
Klarna / Rethink Office / AktivtetsbaseratKlarna / Rethink Office / Aktivtetsbaserat
Klarna / Rethink Office / AktivtetsbaseratSummit & Friends
 
Klarna presentation Magentodagen, Anton Ijäs
Klarna presentation Magentodagen, Anton IjäsKlarna presentation Magentodagen, Anton Ijäs
Klarna presentation Magentodagen, Anton IjäsPetter Isaksson
 
Build Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter AntmanBuild Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter AntmanSmartBear
 
Klarna - NOAH14 London
Klarna - NOAH14 LondonKlarna - NOAH14 London
Klarna - NOAH14 LondonNOAH Advisors
 
Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014Peter Antman
 
Klarna - NOAH12 London
Klarna - NOAH12 LondonKlarna - NOAH12 London
Klarna - NOAH12 LondonNOAH Advisors
 
SplunkLive! Stockholm 2015 - Klarna
SplunkLive! Stockholm 2015 - KlarnaSplunkLive! Stockholm 2015 - Klarna
SplunkLive! Stockholm 2015 - KlarnaSplunk
 
Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014Peter Antman
 
Pirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guidePirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guidePeter Antman
 
Stop the line @spotify
Stop the line @spotifyStop the line @spotify
Stop the line @spotifyPeter Antman
 
Leadership Tools for Better Teams - Personal History Exercise - 20150615
Leadership Tools for Better Teams - Personal History Exercise - 20150615Leadership Tools for Better Teams - Personal History Exercise - 20150615
Leadership Tools for Better Teams - Personal History Exercise - 20150615Joel Wenger
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story WorkshopPeter Antman
 
Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved Peter Antman
 
Facilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exerciseFacilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exercisePeter Antman
 

Viewers also liked (20)

Klarna programming contest 2011
Klarna programming contest 2011Klarna programming contest 2011
Klarna programming contest 2011
 
Scrum in practice at klarna
Scrum in practice at klarnaScrum in practice at klarna
Scrum in practice at klarna
 
Klarna background
Klarna backgroundKlarna background
Klarna background
 
#Drømmeløftet - Startup Hovestaden: Klarna
#Drømmeløftet - Startup Hovestaden: Klarna#Drømmeløftet - Startup Hovestaden: Klarna
#Drømmeløftet - Startup Hovestaden: Klarna
 
Agile - What? Why? How?
Agile - What? Why? How?Agile - What? Why? How?
Agile - What? Why? How?
 
Klarna / Rethink Office / Aktivtetsbaserat
Klarna / Rethink Office / AktivtetsbaseratKlarna / Rethink Office / Aktivtetsbaserat
Klarna / Rethink Office / Aktivtetsbaserat
 
Klarna presentation Magentodagen, Anton Ijäs
Klarna presentation Magentodagen, Anton IjäsKlarna presentation Magentodagen, Anton Ijäs
Klarna presentation Magentodagen, Anton Ijäs
 
Build Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter AntmanBuild Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter Antman
 
Klarna - NOAH14 London
Klarna - NOAH14 LondonKlarna - NOAH14 London
Klarna - NOAH14 London
 
Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014
 
Klarna - NOAH12 London
Klarna - NOAH12 LondonKlarna - NOAH12 London
Klarna - NOAH12 London
 
SplunkLive! Stockholm 2015 - Klarna
SplunkLive! Stockholm 2015 - KlarnaSplunkLive! Stockholm 2015 - Klarna
SplunkLive! Stockholm 2015 - Klarna
 
Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014
 
Pirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guidePirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guide
 
Teaming Workshops
Teaming WorkshopsTeaming Workshops
Teaming Workshops
 
Stop the line @spotify
Stop the line @spotifyStop the line @spotify
Stop the line @spotify
 
Leadership Tools for Better Teams - Personal History Exercise - 20150615
Leadership Tools for Better Teams - Personal History Exercise - 20150615Leadership Tools for Better Teams - Personal History Exercise - 20150615
Leadership Tools for Better Teams - Personal History Exercise - 20150615
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story Workshop
 
Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved
 
Facilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exerciseFacilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exercise
 

Similar to KLARNA PAIR PROGRAMMING GUIDE

Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestXP Conference India
 
Achieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary TeamAchieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary TeamLeah Henrickson
 
Columbia rev 2 syllabus jan 2013
Columbia rev 2 syllabus jan 2013Columbia rev 2 syllabus jan 2013
Columbia rev 2 syllabus jan 2013Stanford University
 
Building lean products with distributed agile teams
Building lean products with distributed agile teamsBuilding lean products with distributed agile teams
Building lean products with distributed agile teamsIgor Moochnick
 
Remote working in the future
Remote working in the futureRemote working in the future
Remote working in the futureAksha Sachdev
 
Grad lauren head final
Grad  lauren head finalGrad  lauren head final
Grad lauren head finalLauren Head
 
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015][XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]Agile đây Vietnam
 
How To Design And Run A Training Program
How To Design And Run A Training ProgramHow To Design And Run A Training Program
How To Design And Run A Training ProgramGarth Gilmour
 
Your leadership style could be getting in your own way
Your leadership style could be getting in your own wayYour leadership style could be getting in your own way
Your leadership style could be getting in your own wayAssentire Ltd
 
Distributed team and how to get success with it
Distributed team and how to get success with itDistributed team and how to get success with it
Distributed team and how to get success with itAnatoliy Manko
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
Agile Testing In Offshore - Oslo Meetup
Agile Testing In Offshore - Oslo MeetupAgile Testing In Offshore - Oslo Meetup
Agile Testing In Offshore - Oslo MeetupJan Petter Hagberg
 
Shea_Dennis-Collaborative_Business
Shea_Dennis-Collaborative_BusinessShea_Dennis-Collaborative_Business
Shea_Dennis-Collaborative_BusinessKate Dennis
 
Introduction to Lean Startup & Lean User Experience Design
Introduction to Lean Startup & Lean User Experience Design Introduction to Lean Startup & Lean User Experience Design
Introduction to Lean Startup & Lean User Experience Design William Evans
 
learning from teaching: dbs library seminar 2017
learning from teaching: dbs library seminar 2017 learning from teaching: dbs library seminar 2017
learning from teaching: dbs library seminar 2017 Robert McKenna
 

Similar to KLARNA PAIR PROGRAMMING GUIDE (20)

Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
 
Achieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary TeamAchieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary Team
 
Columbia rev 2 syllabus jan 2013
Columbia rev 2 syllabus jan 2013Columbia rev 2 syllabus jan 2013
Columbia rev 2 syllabus jan 2013
 
Building lean products with distributed agile teams
Building lean products with distributed agile teamsBuilding lean products with distributed agile teams
Building lean products with distributed agile teams
 
How to learn coding
How to learn codingHow to learn coding
How to learn coding
 
Remote working in the future
Remote working in the futureRemote working in the future
Remote working in the future
 
Grad lauren head final
Grad  lauren head finalGrad  lauren head final
Grad lauren head final
 
[XP Day Vietnam 2015] XP is not windows XP
[XP Day Vietnam 2015] XP is not windows XP[XP Day Vietnam 2015] XP is not windows XP
[XP Day Vietnam 2015] XP is not windows XP
 
XP, Not Windows XP
XP, Not Windows XPXP, Not Windows XP
XP, Not Windows XP
 
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015][XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
 
Xp not windows xp
Xp not windows xpXp not windows xp
Xp not windows xp
 
How To Design And Run A Training Program
How To Design And Run A Training ProgramHow To Design And Run A Training Program
How To Design And Run A Training Program
 
Your leadership style could be getting in your own way
Your leadership style could be getting in your own wayYour leadership style could be getting in your own way
Your leadership style could be getting in your own way
 
Distributed team and how to get success with it
Distributed team and how to get success with itDistributed team and how to get success with it
Distributed team and how to get success with it
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
Agile Testing In Offshore - Oslo Meetup
Agile Testing In Offshore - Oslo MeetupAgile Testing In Offshore - Oslo Meetup
Agile Testing In Offshore - Oslo Meetup
 
Shea_Dennis-Collaborative_Business
Shea_Dennis-Collaborative_BusinessShea_Dennis-Collaborative_Business
Shea_Dennis-Collaborative_Business
 
Introduction to Lean Startup & Lean User Experience Design
Introduction to Lean Startup & Lean User Experience Design Introduction to Lean Startup & Lean User Experience Design
Introduction to Lean Startup & Lean User Experience Design
 
Quevedo_Final Report
Quevedo_Final ReportQuevedo_Final Report
Quevedo_Final Report
 
learning from teaching: dbs library seminar 2017
learning from teaching: dbs library seminar 2017 learning from teaching: dbs library seminar 2017
learning from teaching: dbs library seminar 2017
 

More from Uri Nativ

Look at my Slides
Look at my SlidesLook at my Slides
Look at my SlidesUri Nativ
 
Bitcoin - the basics
Bitcoin - the basicsBitcoin - the basics
Bitcoin - the basicsUri Nativ
 
Where is the CEO Office?
Where is the CEO Office?Where is the CEO Office?
Where is the CEO Office?Uri Nativ
 
The Missing (Agile) Lecture
The Missing (Agile) LectureThe Missing (Agile) Lecture
The Missing (Agile) LectureUri Nativ
 
Stop Optimizing Start Simplifying
Stop Optimizing Start SimplifyingStop Optimizing Start Simplifying
Stop Optimizing Start SimplifyingUri Nativ
 
QA without QA
QA without QAQA without QA
QA without QAUri Nativ
 
Web Application Security in Rails
Web Application Security in RailsWeb Application Security in Rails
Web Application Security in RailsUri Nativ
 
Building an Awesome Engineering Culture
Building an Awesome Engineering CultureBuilding an Awesome Engineering Culture
Building an Awesome Engineering CultureUri Nativ
 
Using scrum values to building engineering culture
Using scrum values to building engineering cultureUsing scrum values to building engineering culture
Using scrum values to building engineering cultureUri Nativ
 

More from Uri Nativ (9)

Look at my Slides
Look at my SlidesLook at my Slides
Look at my Slides
 
Bitcoin - the basics
Bitcoin - the basicsBitcoin - the basics
Bitcoin - the basics
 
Where is the CEO Office?
Where is the CEO Office?Where is the CEO Office?
Where is the CEO Office?
 
The Missing (Agile) Lecture
The Missing (Agile) LectureThe Missing (Agile) Lecture
The Missing (Agile) Lecture
 
Stop Optimizing Start Simplifying
Stop Optimizing Start SimplifyingStop Optimizing Start Simplifying
Stop Optimizing Start Simplifying
 
QA without QA
QA without QAQA without QA
QA without QA
 
Web Application Security in Rails
Web Application Security in RailsWeb Application Security in Rails
Web Application Security in Rails
 
Building an Awesome Engineering Culture
Building an Awesome Engineering CultureBuilding an Awesome Engineering Culture
Building an Awesome Engineering Culture
 
Using scrum values to building engineering culture
Using scrum values to building engineering cultureUsing scrum values to building engineering culture
Using scrum values to building engineering culture
 

Recently uploaded

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 

Recently uploaded (20)

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 

KLARNA PAIR PROGRAMMING GUIDE

  • 2. CULTURE Pair Programming is part of our ways-of-working here at Klarna TLV and it is part of our culture
  • 3. HISTORY Pairing started as a way to onboard new developers, but we’ve continued doing it since we thought it adds value to other coding tasks as well.
  • 4. WHY? Over time, we gave very little thought to pairing. - Why are we doing it? - When should we pair? - Is it mandatory to pair?
  • 5. WHY? 3.5 years later we ran a survey, and created a small thinking group. Here are the results…
  • 6. SURVEY Most people enjoy pairing people feel that we do it a reasonable amount. Few feel confident that we do it ‘properly.’
  • 7. SURVEY People consistently cited knowledge sharing and ‘having a different set of eyes’ as being great things about pairing.
  • 8. SURVEY Problems with coordination & frequent context switching was a consistent complaint.
  • 9. SURVEY Some people identified pairing as making them more focused while others felt that they would be more focused working more independently.
  • 11. PROS Higher code quality More readable code Encourage discussion Knowledge sharing Collaborative code ownership Teaching tool Focus
  • 12. CONS People not feeling independent or not feeling comfortable working alone Slow development time - Can the same task be done by a single person? - What’s the cost of coordination overhead? Being dumb together - Hard to question the decisions of the pair from the outside
  • 13. WORKING ALONE On top of the cons of pairing, working alone has some value and sometimes advantages over pairing.
  • 14. WORKING ALONE Some developers just prefer working alone - They find themselves more productive and focused Some developers are more engaged with their task when they work alone - they get bored quickly when they are not in the driver seat
  • 15. WORKING ALONE Some people find it hard to learn when there is a knowledge gap as you don’t want to slow down the fast developer - People find it more comfortable to learn using trial-and-error when working alone You feel more obliged to ask your team members for opinion
  • 16. We need to acknowledge that pairing is very SUBJECTIVE The value of pairing and what people gain out of it DIFFERS BETWEEN DEVELOPERS and DIFFERS BETWEEN PAIRS
  • 17. Which tasks are good candidates for pairing? #1 TEACHING #2 NON-TRIVIAL
  • 18. #1 TEACHING Pairing can be a great tool to teach people new dev practices or a new technology. The mentor should be in the right state of mind - the goal is to teach rather than complete the task fast. In this aspect the word pairing is misused.
  • 19. #2 NON TRIVIAL Any non trivial task is a candidate for pairing. Especially design/infra problems. Risky - a task might not be complex, but another set of eyes is needed to reduce the risk.
  • 20. Pair programming works best with a large uncertain search space of problems and solutions. The closer to a solved problem, the less it helps - - Kent Beck “ ”
  • 21. COORDINATION can be a big overhead. Here are some tips:
  • 22. COORDINATION TIP# 1 The pair should try to plan their day in advance - is it appropriate that we pair together considering our schedule, should meetings be moved?
  • 23. COORDINATION TIP# 2 Turn off disruptions - treat it as a meeting
  • 24. COORDINATION TIP# 3 Understand as a pair what is the goal of the pairing - this should guide the pair on what they have to pair and on what parts they can work alone
  • 25. COORDINATION TIP# 4 A “pairing task” doesn’t mean you have to pair 100% of your time - when someone “leaves”, the other developer can continue on his own - ideally before you depart, agree on the next steps
  • 26. LEFT WITHOUT YOUR PAIR? Work on other "peripheral" tasks if you have any - peer reviews, answering emails, prepare the demo, etc Work on the less sensitive / more trivial parts of the task - the parts in your task which are most similar to the scenarios we listed under "when not to pair"
  • 27. LEFT WITHOUT YOUR PAIR? In case there are no such tasks or the current task is urgent enough - continue on your own and sync your pair when he/she is back.
  • 28. WHO DECIDES WHEN TO PAIR? - is it the team or is it the developer who codes? The developer who owns the task - Same answer to “have enough people reviewed my code?” “who chooses the design?” The team can recommend, but it is the developer who codes is the one who makes the call
  • 29. CONCLUSIONS #1 We see the value in pairing and we see the value of working alone.
  • 30. CONCLUSIONS #2 A teaching/mentoring pairing task should be treated differently than a get-things- done task.
  • 31. CONCLUSIONS #3 Pairing is subjective, thus we should not force anyone to pair or not to pair. This is the developer’s call.
  • 32. CONCLUSIONS #4 If you want to work alone - go ahead. If you want someone to join you - ask, and the team should comply.
  • 33. HAPPY PAIRING! Wolf Shadow (D3A_0781) image by Steve Harris - https://flic.kr/p/63JyxQ Uri Nativ @unativ