00:00:00.000
ready for takeoff
00:00:16.920
good morning good morning I hope you all
00:00:19.080
are having a great Ruby comp are you
00:00:20.340
guys having a good time
00:00:21.840
yeah
00:00:22.980
yeah
00:00:23.820
um
00:00:24.539
yeah it's been a great conference for me
00:00:26.039
as well um my name is Kelly Ryan and I'm
00:00:28.500
here to talk about working together
00:00:31.740
about me
00:00:33.239
um I transitioned from teaching in 2020
00:00:35.040
after doing a self-guided boot camp for
00:00:37.380
about a year I'm currently a junior
00:00:38.940
developer at Power Home Remodeling which
00:00:40.680
is a company located near Philly that
00:00:42.480
installs Windows roofs and doors I work
00:00:44.640
on their Erp software uh initially I was
00:00:47.399
hired as an engineer on the ux team but
00:00:48.960
now I do both backend and front-end
00:00:50.579
Feature work working in Ruby and
00:00:53.100
JavaScript
00:00:54.239
and like many of you I'm a career
00:00:55.680
changer I taught Latin and Greek for 13
00:00:58.079
years to high schoolers so 14 to 18 year
00:01:00.899
olds in a couple of different schools
00:01:02.699
and I have an MA in Latin
00:01:05.280
um because of my long career in
00:01:06.540
education and my extensive experience
00:01:09.119
working with probably about a thousand
00:01:10.680
teenagers and their parents I have a
00:01:12.840
unique passion and perspective on how
00:01:14.880
people should work together to maximize
00:01:16.320
learning and potential
00:01:17.700
I don't have a lot of social media
00:01:20.220
um but my email and Linkedin are above
00:01:21.960
and that is a picture of me at your
00:01:23.880
veteri which is this uh large tomb
00:01:27.240
complex in Italy it looks like it should
00:01:29.759
be where the hobbits live it was really
00:01:31.259
amazing
00:01:32.460
all right I decided to print them on
00:01:34.439
this for a bunch of reasons I'm really
00:01:36.479
excited about learning and I have a lot
00:01:38.159
of experience helping people learn but
00:01:40.259
first is the ubiquity of the experience
00:01:42.060
so how commonplace it is how many people
00:01:44.520
here pair on a daily basis or a weekly
00:01:46.560
basis at their job
00:01:48.180
yeah and how many people have struggled
00:01:50.520
at some point with pairing
00:01:52.439
yeah and how many people have had
00:01:54.899
specific training in best pairing
00:01:57.659
oh good there's some people that's
00:01:59.220
excellent uh there are a lot of
00:02:01.200
difficult things about pairing
00:02:03.060
um especially if you're less experienced
00:02:04.560
like I am
00:02:05.759
maybe you've had trouble just getting
00:02:07.500
someone to pair with you or once you're
00:02:09.959
in the middle of an interaction maybe
00:02:11.700
you find that you're at a losses to how
00:02:13.080
to proceed where I work we've got ton of
00:02:16.140
less experienced developers because we
00:02:18.360
have an education system at work where
00:02:19.800
we take people from throughout the
00:02:21.180
business and train them up in-house and
00:02:23.280
what this means is that we have a lot of
00:02:24.780
people with a less understanding of what
00:02:26.580
is expected from Junior developers and
00:02:28.800
less experience in the world of tech
00:02:30.180
altogether they need to pair daily and
00:02:32.340
often for much of the day so a clear
00:02:34.319
idea of expectations is essential for
00:02:36.959
them to be successful
00:02:38.340
the second thing is that it's worth the
00:02:40.379
investment so the ubiquity of the a
00:02:42.000
commonplace would make it enough to be
00:02:43.560
worth it but we all no matter how
00:02:45.060
skilled need help teaching and learning
00:02:47.519
um our profession is after all about
00:02:48.959
learning new skills but it's also just
00:02:51.360
worth the investment in general uh
00:02:53.280
according to a study on employer
00:02:54.480
provided training 70 of professional
00:02:56.400
learning can be done up informally and
00:02:58.680
for us informal learning often means
00:03:01.080
pairing
00:03:02.580
um and that means that good pairing
00:03:03.840
practices are essential to moving our
00:03:06.000
employees and our companies forward so
00:03:08.400
deliberate thought and training about
00:03:10.080
best pairing is very much worth the
00:03:11.700
investment
00:03:12.780
despite this although a few of you seem
00:03:15.599
to have got had specific training
00:03:17.159
impairing or working together there
00:03:18.720
still is a
00:03:20.040
um I guess a dearth of training lastly I
00:03:23.580
think that small changes can equal great
00:03:25.319
gains
00:03:26.519
um with practical advice can come
00:03:27.959
behavioral changes that will make a real
00:03:29.580
difference in people's experiences
00:03:30.900
pairing so this presentation
00:03:33.900
um here is not it's not here to provide
00:03:36.540
you with a template for how you should
00:03:37.739
be like more empathetic or patient or
00:03:40.019
something like that but more for what
00:03:41.879
things you can do to make pairing
00:03:43.680
experiences better whether you're in a
00:03:45.659
senior or a junior developer role
00:03:47.640
Additionally the struct the talk is
00:03:49.980
structured so you can pull one or two
00:03:51.360
things from it whatever you think will
00:03:53.040
be most useful there's no reason for you
00:03:54.959
to do all the things that I am saying so
00:03:57.120
please don't feel overwhelmed by the
00:03:58.500
amount of things that I suggest each one
00:04:00.540
of my points should stand as on its own
00:04:02.340
as valuable and then hopefully easy to
00:04:04.319
implement
00:04:05.700
um and since this is a lecture I'm going
00:04:07.080
to do this as directly as possible so
00:04:08.640
there won't be any fluff just a decent
00:04:10.560
lesson plan with that conveys and
00:04:12.420
reviews information so let's go
00:04:16.199
the talk will be divided into three
00:04:17.760
parts before during and after pairing
00:04:19.979
before pairing in particular there are I
00:04:22.019
think some ways you can set yourself up
00:04:23.520
for success and this section will focus
00:04:25.500
on you as your role as a less
00:04:26.940
experienced developer
00:04:28.500
as I was just mentioning during pairing
00:04:30.300
there are behaviors that can help
00:04:32.340
improve the experience pairing for all
00:04:33.720
developers this section will focus on
00:04:36.000
more as you as a more experienced
00:04:37.620
developer and then after pairing we're
00:04:39.540
going to look at things that you can do
00:04:40.740
to solidify your learning and build your
00:04:42.120
relationships
00:04:44.460
I'm going to use the words Junior and
00:04:46.560
senior in a looser more expansive sense
00:04:48.780
so a junior in this presentation is
00:04:51.419
someone with experience less experience
00:04:53.940
and it can be like years of experience
00:04:55.560
it could be knowledge it could be domain
00:04:57.840
ideas some sort of Technology but um and
00:05:01.320
this means that sometimes a junior can
00:05:02.699
be more experienced and do the work of a
00:05:04.500
senior developer and vice versa so
00:05:07.020
hopefully we're all a potential audience
00:05:08.820
for this talk because we all play these
00:05:10.740
roles at some time or another so a
00:05:12.720
junior developer is one with less
00:05:13.979
experience in a domain technology idea
00:05:16.199
and a senior is one with more
00:05:18.419
as I move through the talk as I
00:05:20.100
mentioned I will shift my focus from
00:05:21.660
Junior to senior and then back again
00:05:23.280
because all of us have these roles to
00:05:25.380
play hopefully everything will seem
00:05:26.699
relevant and silly in
00:05:30.240
before pairing so when I first started
00:05:32.340
coding I expected everyone to be smarter
00:05:34.440
and more intuitive than me which was
00:05:36.000
pretty much true but I also thought it
00:05:38.100
meant that I could give people very
00:05:39.419
little information and they'd be able to
00:05:40.919
solve my problem maybe you've had this
00:05:42.300
experience with less experienced steps I
00:05:45.479
would ping someone with questions like
00:05:47.220
really specific questions like hey I
00:05:49.080
have a question about users do you have
00:05:50.940
a minute or something like can anyone
00:05:53.340
help I'm stuck on something
00:05:54.960
and I usually wouldn't get a response
00:05:57.300
and I was a little upset I knew my
00:05:59.039
question was easy and that they could
00:06:00.180
answer it right away but no one was
00:06:01.740
responding
00:06:02.880
this was of course my fault
00:06:05.039
I needed to frame my questions in a way
00:06:07.139
that would allow potential helpers I.E
00:06:09.180
more experienced developers a better
00:06:11.280
idea of what my problem was and whether
00:06:13.440
they had the ability and time to help
00:06:15.360
the point of this is to set yourself up
00:06:17.699
for a good pairing session you need to
00:06:19.740
provide information to the person with
00:06:21.120
whom you are pairing so that they can
00:06:22.500
help you in the best way possible when
00:06:24.479
you do this you're helping yourself as
00:06:26.039
well as your potential partner
00:06:28.740
foreign
00:06:31.699
first I would suggest that you be
00:06:33.900
upfront about your expectations for the
00:06:35.460
pairing session there's a lot of reasons
00:06:37.139
why you might want to pair oftentimes
00:06:38.940
when I was first starting out and I was
00:06:40.680
a little lost I would come up with a
00:06:42.300
plan for my PR then ask my lead deaf to
00:06:44.639
meet with me so I could show him what I
00:06:46.080
was intending and then this would this I
00:06:49.020
did this to make sure that he was sure
00:06:50.580
of my general direction and then before
00:06:52.800
each pairing session I would let him
00:06:54.180
know that's what I wanted I wanted to
00:06:55.740
review my plan
00:06:56.940
that way he understood the general
00:06:58.440
parameters of our session and this
00:07:00.960
helped him know how long it would take
00:07:02.340
and what would be expected other
00:07:04.740
potential reasons are rubber ducking so
00:07:06.840
articulating a problem for another Dev
00:07:08.639
as an age debugging general interest in
00:07:11.220
the pr for background knowledge or just
00:07:14.160
general help when blocked
00:07:15.960
I'm going to gear my next points towards
00:07:18.479
getting helped meeting excuse me towards
00:07:21.300
people needing help getting unblocked
00:07:22.860
because that is what most people think
00:07:24.599
of as pairing and that is where much of
00:07:26.880
the urgency and the difficulty can lie
00:07:28.620
when blocked there are ways of asking
00:07:31.080
for help I think ways of structuring
00:07:32.940
questions that provide background
00:07:34.740
information to the more experienced Dev
00:07:36.720
so you can have a really productive
00:07:38.039
pairing session
00:07:40.860
so I want to go through a
00:07:42.360
well-structured well-documented question
00:07:44.160
and break it apart and so that in the
00:07:46.380
future you'll have a better chance of
00:07:47.940
getting help quickly and for that help
00:07:49.259
to be exactly what you need this will be
00:07:51.539
the main part of the section and I think
00:07:52.860
if you have any takeaways from this talk
00:07:54.479
I would say this would help you the most
00:07:56.340
because this helps you learn as well as
00:07:58.500
allows people to see you as a person who
00:08:00.120
can ask good questions which is super
00:08:01.620
important this means people will be more
00:08:03.599
willing to help you
00:08:05.699
so some poorly structured questions I
00:08:07.979
have a question can you help my user
00:08:10.259
title PR isn't working and I'm stuck do
00:08:11.880
you have time and I even I have a PR
00:08:14.400
working on user titles and compensation
00:08:16.139
amounts do you think you could help me
00:08:18.300
these are all insufficiently precise
00:08:20.400
questions because they actually produce
00:08:22.080
more questions including two initial
00:08:24.120
fundamental questions that need to be
00:08:25.440
answered what is the problem and what is
00:08:27.840
the desired outcome or expected Behavior
00:08:31.080
so my first tip would be to summarize
00:08:33.360
your problem and write out a brief
00:08:34.740
version of what you want to happen what
00:08:36.839
is happening and what is it that you
00:08:38.399
want to happen
00:08:41.159
I need some help with a PR that should
00:08:43.020
change the default compensation amount
00:08:44.520
for a user title the compensation value
00:08:46.980
is not changing
00:08:50.459
this question by contrast or statement
00:08:52.740
by contrast lets the other developers
00:08:54.600
know the problem that you are working on
00:08:56.040
and the desired outcome and be expected
00:08:57.839
behavior for the pr this is the minimum
00:09:00.180
you should provide when you're asking
00:09:01.440
for help what else do we need though
00:09:03.360
what else would be most helpful for
00:09:05.100
another developer to have contact
00:09:08.399
context
00:09:09.680
my next suggestion would be to expand on
00:09:12.180
your issue with context accessible code
00:09:14.279
references URLs Etc
00:09:18.060
I've tried changing the compensation
00:09:19.620
amount and then checking in on the
00:09:21.000
career change page but it's not changing
00:09:22.860
I've pushed up what I've done so far
00:09:24.779
I've been working with the career chain
00:09:26.220
page and the user title mutation here's
00:09:28.500
the story card
00:09:29.700
context is anything that might help
00:09:31.620
another developer get a more expansive
00:09:33.180
view of the problem
00:09:35.640
context helps the more experienced Dev
00:09:37.500
find all the pieces of your PR and
00:09:39.120
gathers them together in one place
00:09:40.500
notice all the links above and providing
00:09:42.779
links to relevant information you
00:09:45.720
provide information that could be used
00:09:46.920
by the senior Dev to solve your problem
00:09:48.540
your context helps answer the questions
00:09:50.640
what have you done so far
00:09:52.560
what code are you working with and what
00:09:54.779
more precisely are the goals of the pr
00:09:57.060
at this point you should have given the
00:09:59.399
more experience to have the overall
00:10:00.899
basic goal of your PR but especially for
00:10:03.060
more complex work it is always good to
00:10:05.220
provide the story so that the goals can
00:10:06.779
be gone over in more details
00:10:08.820
in fact all these questions are less
00:10:10.680
necessary for Less complex work and
00:10:12.600
absolutely necessary for your larger PRS
00:10:14.580
pushing of a PR for example that where
00:10:17.640
you only change one file might not be
00:10:19.560
super useful but if you have larger and
00:10:21.839
more complex code changes it can save a
00:10:23.880
lot of time pairing if you push up your
00:10:25.440
work even if the code is less than
00:10:27.000
perfect which is a hard thing to do I
00:10:29.399
think and the more experienced developer
00:10:31.860
will be appreciate being able to toggle
00:10:33.420
from one file to another and compare
00:10:35.580
changes in a format she's familiar with
00:10:37.500
she'll get a better idea more quickly
00:10:39.300
what the idea might be and how to fix it
00:10:42.899
lastly and
00:10:45.000
um it's sometimes it's good to supply
00:10:46.260
outside information
00:10:48.480
this is in particular good so that you
00:10:50.700
can let the experience know the urgency
00:10:52.320
with which the problem needs to be
00:10:53.579
approached so if a support ticket was
00:10:55.500
opened two weeks ago it might be prudent
00:10:57.779
to look at this to get help and look at
00:10:59.640
it right away because two weeks is a
00:11:01.200
long time to leave something unaddressed
00:11:02.880
and it can also be a catch-all for any
00:11:04.980
other ideas or info you might have
00:11:07.680
so in thinking or considering whether
00:11:09.480
your question is well structured or well
00:11:11.820
documented you can ask yourself does my
00:11:13.500
question summarize does it contextualize
00:11:15.779
and does it Supply outside information
00:11:20.100
once you have someone who's agreed to
00:11:21.779
help you my next preparing suggestion
00:11:24.000
would be to look at your level of
00:11:25.260
preparation
00:11:26.579
preparing saves time and frustration it
00:11:29.579
shows respect for time and effort and it
00:11:31.260
encourages others to be more willing to
00:11:33.000
pair again I think that we've all had
00:11:34.800
these experiences where we've started to
00:11:36.899
pair with somebody and they haven't had
00:11:39.000
their server up or or maybe they haven't
00:11:41.880
had things they just haven't had things
00:11:43.740
ready so you have to wait while you're
00:11:45.300
pairing it's really best to be prepared
00:11:47.820
for an interaction in so far as is
00:11:49.380
possible like obviously sometimes you'll
00:11:51.180
need to restart your server or maybe set
00:11:52.740
up data again and this is normal in the
00:11:54.839
course of pairing but insofar as is
00:11:56.700
possible make sure you're prepared
00:11:58.800
my first suggestion would be to create a
00:12:00.779
basic plan and this seems like a lot
00:12:02.820
um but it can be really simple for
00:12:05.220
example just reading over the story card
00:12:07.260
together
00:12:08.519
um quickly to review problem and
00:12:09.720
expected Behavior showing the current
00:12:11.640
behavior and then looking at the
00:12:12.959
relevant code
00:12:14.220
this is a simple easy plan that makes
00:12:16.079
sure the person you're working with
00:12:17.160
understands the background and the
00:12:19.019
current situation it doesn't have to be
00:12:20.940
complex or difficult although the
00:12:22.920
difficulty will scale as your PR gets
00:12:25.140
more complex but by doing this it will
00:12:27.300
help you organize your approach to the
00:12:28.740
problem and get things ready for your
00:12:30.120
pairing session
00:12:32.820
uh my next point would be to ease pain
00:12:35.100
points and testing and reviewing for me
00:12:36.720
I work in an HR component and I often
00:12:39.240
need to be logged in as two users in two
00:12:41.339
different states in two separate
00:12:42.839
browsers to test my PRS and that can
00:12:45.540
take a bit of time and organization to
00:12:47.160
set up I should set this up before
00:12:49.139
meeting with my partner setting it up
00:12:51.000
would be an easy way that I can prepare
00:12:52.620
to make it quicker and much less
00:12:53.820
frustrating for them
00:12:56.579
other example sometimes you may need to
00:12:58.740
set up data in a specific way or see
00:13:01.440
different examples of a UI in quick
00:13:03.420
succession or maybe your server takes 10
00:13:06.300
minutes at a time to pull up my webpack
00:13:07.740
takes like 12 to 15 minutes and all
00:13:10.740
these are ways that can make things
00:13:12.060
quicker and make sure you're more
00:13:13.440
prepared for your interaction
00:13:16.440
lastly make sure all work is readily
00:13:19.019
available now this is a bit of a repeat
00:13:21.000
if you've created a well-structured
00:13:22.620
well-documented question you may have
00:13:24.540
already done this but it really Bears
00:13:25.860
repeating providing links in the
00:13:27.720
relevant files is essential and
00:13:30.060
especially if it's a more complex PR
00:13:31.560
pushing up your work to GitHub is
00:13:33.779
extremely helpful every senior developer
00:13:35.700
I talked to about this so that it's so
00:13:37.680
helpful for them if they can see things
00:13:39.180
up on push up on GitHub and I was always
00:13:41.279
so reluctant to do so
00:13:43.320
um otherwise providing links to the
00:13:45.540
relevant code having correct functions
00:13:47.459
marked and ready will help make pairing
00:13:49.620
go more smoothly
00:13:51.420
so some questions have I created a plan
00:13:53.639
have I prepared my environment and have
00:13:55.680
I provided good context
00:14:00.300
once developers are set up and pairing
00:14:02.700
there are ways of communicating that are
00:14:04.560
more effective and have been proven to
00:14:06.480
improve performance learning and
00:14:08.519
collaboration this section focuses on
00:14:10.980
you and your role as a more experienced
00:14:12.420
Dev so again more experienced staff
00:14:14.339
means someone who's who understands more
00:14:16.440
about a domain technology or idea
00:14:20.279
the first is to teach and Pair by asking
00:14:22.680
questions question asking isn't just
00:14:25.139
good practice for a junior developer but
00:14:27.120
it's really good practice for a senior
00:14:28.620
developer as well it's almost always
00:14:30.779
better to ask a question and lead
00:14:32.399
someone to An Answer rather than to tell
00:14:34.200
them the answer their Court of course
00:14:36.480
times when things need to be fixed
00:14:37.800
really quickly like if production is
00:14:39.360
broken it might be better to tell
00:14:41.040
someone what to do
00:14:42.300
but on average I think that it's best to
00:14:44.459
ask
00:14:46.980
questions increase engagement the
00:14:48.959
developer with less experience is
00:14:50.160
encouraged to let you know what they do
00:14:51.420
and do not know so you can better
00:14:52.680
proceed
00:14:54.540
questions reveal assumptions and gaps in
00:14:56.639
knowledge there are often gaps in
00:14:58.380
developers knowledge in all of our
00:14:59.699
knowledge places where our studying
00:15:01.560
hasn't been as thorough and these are
00:15:03.180
blocking our way to being successful if
00:15:05.279
you're working with someone and they're
00:15:07.079
asking you good questions then you can
00:15:09.240
find and fill these gaps and make more
00:15:11.100
progress
00:15:12.120
and posing authentic questions really
00:15:14.279
can make unclear points clear
00:15:16.320
and reveal assumptions that otherwise
00:15:18.000
would have made remained Unearthed
00:15:20.399
they don't even have to be profound or
00:15:22.019
difficult you could say what could we
00:15:23.760
try next why should we do it this way
00:15:25.980
where's the code that tells us this how
00:15:28.680
do we know this and if we try this what
00:15:30.779
would happen
00:15:33.360
if they don't have the answers this
00:15:34.860
tells you something as well either they
00:15:37.139
don't know the answers or they don't
00:15:38.399
know how to speak about the answers
00:15:39.540
which is sometimes the case right maybe
00:15:41.639
they know what's going on but they don't
00:15:43.380
know how to talk about it and then you
00:15:45.000
have a clear direction as to how to
00:15:46.620
proceed
00:15:49.320
my next suggestion would be to be very
00:15:51.899
deliberate about creating a partnership
00:15:53.760
as you develop rather than using a
00:15:56.279
top-down approach there are obvious
00:15:58.380
benefits to this not the least of which
00:16:00.180
by coding together as partners you build
00:16:02.160
better personal and professional
00:16:03.480
relationships
00:16:04.920
but I told you I would provide you with
00:16:06.480
practical ideas not just saying be a
00:16:08.399
good partner so I have a few suggestions
00:16:10.680
that I think hopefully will be decently
00:16:12.899
easy to implement
00:16:15.839
so I would suggest leveraging the power
00:16:18.060
of language using first plural and
00:16:19.980
conditional language could should wood
00:16:21.600
it sounds like a trick like it's simple
00:16:24.420
too simple and negligible to work in
00:16:27.300
building a partnership
00:16:28.620
but a study of study of event racing I
00:16:31.320
don't know if you guys know what
00:16:32.220
adventure racing is they've dropped four
00:16:33.779
people in the wilderness and then
00:16:35.399
they're told to go find something and
00:16:37.380
they're given a GPS and they canoe and
00:16:39.000
they climb but a study of adventure
00:16:40.800
racing
00:16:41.759
showed that the more conditional rather
00:16:43.560
than assertive language that those four
00:16:44.880
people used with one another the more
00:16:46.980
successful their team was across the
00:16:48.420
board so this is an actual thing and
00:16:50.459
it's super easy for anyone to implement
00:16:54.860
another easy way to build a partnership
00:16:57.899
and to make sure ideas are clear to both
00:16:59.699
sides is to summarize the points made by
00:17:02.220
your partner this can be as easy as
00:17:04.199
repeating the last thing your partner
00:17:05.459
said in your own words what I'm hearing
00:17:07.260
you say is so that you can get an
00:17:09.660
affirmation and make sure you're both on
00:17:11.579
the same page
00:17:13.319
if your partner's ideas are unclear or
00:17:15.780
just nascent it's a good idea to
00:17:17.699
encourage them to expand on their points
00:17:19.380
could you help me understand so that you
00:17:21.540
can better understand where they are
00:17:22.919
going and what they intend to do next
00:17:24.720
this is especially true if you think
00:17:26.699
they're on the wrong track so that you
00:17:28.380
can expose any wrong assumptions or gaps
00:17:30.660
in their knowledge
00:17:33.960
lastly suggesting rather than telling
00:17:36.240
can improve your partnership we have all
00:17:38.520
had experiences with this perhaps our
00:17:40.140
children or our partners respond better
00:17:41.820
to Gentle suggestion rather than direct
00:17:43.980
orders and it's always easier for me to
00:17:46.440
do what someone wants if they tell it to
00:17:47.940
me in the form of a suggestion giving me
00:17:49.860
Choice you're aiming for cooperation and
00:17:52.559
openness rather than obedience
00:17:55.320
in summary
00:17:56.880
the more you can share knowledge and
00:17:58.620
direction that is a perspective that is
00:18:00.299
provisional revisable and conditional
00:18:02.220
the better your partnership is going to
00:18:03.900
be across the board
00:18:07.320
my final general advice during pairing
00:18:09.360
is to focus on debugging and tools for
00:18:11.880
the less providing debugging debugging
00:18:14.100
and providing tools for the less
00:18:15.299
experienced developer
00:18:18.539
so this is self-explanatory I think and
00:18:20.880
backed by Proverbs to sort of give a man
00:18:22.620
a fish you'll feed him for a day teach a
00:18:25.260
man fish and you will feed him for a
00:18:26.520
Lifetime by providing tools to the
00:18:28.380
junior developer you give them a better
00:18:30.240
chance to solve the next problem on
00:18:31.860
their own
00:18:33.900
and if you can focus on more than one
00:18:36.059
tool during your debugging you are also
00:18:37.980
showing less experienced developer how
00:18:39.419
to produce approach a problem from
00:18:41.039
different angles this allows them to
00:18:42.900
make more connections and gives them a
00:18:44.580
more complete picture of the issue at
00:18:45.960
hand and the tools really don't have to
00:18:48.120
be complex they could be whatever you
00:18:50.039
would do in the course of debugging a
00:18:51.299
problem there's no need for you to come
00:18:53.220
up with lesson plans or for you to even
00:18:55.200
really plan ahead you use tools
00:18:57.360
throughout your day to solve problems so
00:18:59.760
focusing on showing those tools and the
00:19:01.799
use and benefit of them should be easy
00:19:05.100
tools include rails and browser consoles
00:19:08.460
the network tab for me has been
00:19:10.320
particularly useful and I didn't know
00:19:12.000
about it until someone showed me
00:19:13.020
whatever error Gathering tools you have
00:19:15.240
logs binding pry buy Bugs sandbox
00:19:17.700
plugins shortcuts anything that you find
00:19:20.400
useful as you debug a problem
00:19:22.740
it's really worth the extra effort to
00:19:24.539
show the junior in a complete way how to
00:19:26.220
use a tool because you're investing in
00:19:28.440
that Juniors and your own future the
00:19:30.780
more you level them up the less help
00:19:32.700
they'll need and the more productive
00:19:33.900
your team can become
00:19:36.660
so during pairing you can ask yourself
00:19:38.460
am I asking questions am I using
00:19:40.799
conditional language am I summarizing
00:19:43.500
um what the other person is saying am I
00:19:45.780
suggesting rather than telling and am I
00:19:47.820
focusing on debugging and tools
00:19:51.360
after pairing
00:19:53.580
the first thing I would suggest would be
00:19:55.740
reflection knowledge and skill this is
00:19:57.960
really important Knowledge and Skills
00:19:59.220
are not just developed through direct
00:20:00.360
experience but also through reflection
00:20:02.460
on Direct experience for many companies
00:20:04.919
this is done through postmortems
00:20:06.480
especially if something's gone really
00:20:08.039
really wrong or perhaps through weekly
00:20:10.799
Retros in which the team comes together
00:20:12.720
to discuss how the week went and how it
00:20:14.940
can get better the next
00:20:16.380
but this can also be a part of pairing
00:20:19.200
I would suggest that at the end of each
00:20:21.720
pairing session you tell your partner at
00:20:23.400
least one thing that you learned from
00:20:24.600
the interaction
00:20:27.600
this reinforces learning because you're
00:20:29.940
putting into words what you've learned
00:20:31.320
making it more memorable and more
00:20:33.000
relevant in your mind it doesn't really
00:20:34.919
have to be anything profound it could be
00:20:36.720
a new tool or method a new way to think
00:20:39.179
about a problem a vocabulary word it
00:20:41.460
could be anything at all this also shows
00:20:43.919
your partner and super satisfying I
00:20:45.780
think for the person that you're working
00:20:47.100
with it shows them that you're engaged
00:20:48.480
and listening while they helped you
00:20:49.799
Everyone likes to feel like they've had
00:20:51.840
an impact and Everyone likes to be heard
00:20:53.520
in showing them that you listen
00:20:54.900
carefully you are encouraging them to
00:20:56.640
see you in a positive light and
00:20:58.380
increasing the chance they want we'll
00:20:59.640
work with you later
00:21:01.740
uh this flows nicely into my next point
00:21:03.780
which is of course gratitude
00:21:06.120
uh thanking someone who helped choose
00:21:07.860
the right thing to do and by thanking
00:21:09.419
someone with specific feedback I.E what
00:21:11.880
you've learned you make your gratitude
00:21:13.740
clear
00:21:15.960
sincere gratitude it shows that you know
00:21:18.600
the value of someone's work and time and
00:21:20.160
it helps build your relationships and
00:21:22.080
it's an easy way to give back to someone
00:21:23.520
who's given you something positive and
00:21:25.200
useful
00:21:27.419
after pairing
00:21:29.100
um have I given specific positive
00:21:30.480
feedback and have I thanked my partner
00:21:32.700
so I'm next I'm just going to review the
00:21:34.679
things that I went over and
00:21:37.020
um and that'll be that so major
00:21:38.760
takeaways I think in this talk I made a
00:21:41.159
case for the essential nature of pairing
00:21:42.539
most of us do it on a daily basis but
00:21:44.940
most of us haven't had specific training
00:21:46.380
in teaching or learning that will enable
00:21:47.940
us to get the most out of the experience
00:21:49.679
I argued there are small changes we
00:21:51.600
could make in our everyday behavior and
00:21:53.100
interactions that would improve our
00:21:54.480
learning and lead to better personal and
00:21:56.100
professional relationships
00:21:58.200
before pairing I made what I think is my
00:22:00.659
most important argument which is to
00:22:02.400
create questions that are well
00:22:03.539
structured and well documented often if
00:22:06.000
you do these and you you create these
00:22:07.500
questions you answer your your questions
00:22:09.179
yourself so this is really really
00:22:11.100
important it really helps you learn
00:22:13.860
um uh this along with good preparation
00:22:15.720
will promote quicker better pairing
00:22:17.580
sessions overall
00:22:18.900
during pairing I mentioned using
00:22:20.880
collaborative words focusing on WE and
00:22:22.620
us as conditional revisable language and
00:22:25.200
I also encourage to focus on thoroughly
00:22:27.179
explaining the tools being used to solve
00:22:29.220
the problem
00:22:30.659
lastly
00:22:32.100
I encourage you to reflect on learning
00:22:33.840
by giving feedback to your partner about
00:22:35.220
what you've learned again learning is
00:22:37.140
not just done by experience but by
00:22:38.520
reflecting on experience this specific
00:22:40.980
feedback in turn feeds into gratitude
00:22:42.840
for the help and patience that you've
00:22:44.400
received
00:22:46.340
thank you so much for your attention and
00:22:48.659
for attending my talk
00:22:50.280
um I would challenge you to take maybe
00:22:52.260
one or two things from the talk and see
00:22:53.760
if you can incorporate them in your next
00:22:55.440
experience pairing and see if I don't
00:22:57.480
know how it feels or what whether it
00:22:59.220
helps you I really hope it's been
00:23:00.840
helpful and I hope you have a wonderful
00:23:02.340
time at rubyconf and that you learn a
00:23:04.140
lot and that you have a wonderful
00:23:05.460
holiday season
00:23:07.500
um thanks to Valerie Willard Garrett
00:23:09.000
Airwood and Gabrielle Ferreira who helps
00:23:10.980
me with this talk and listen to me give
00:23:13.380
it for the first time and second time
00:23:14.940
and fourth time so thank you very much
00:23:23.280
foreign