RubyConf 2022

Working Together: Pairing as Senior and Junior Developers

Pairing with a senior developer is a daily necessity for a programmer just starting out. But how should you as a junior developer approach pairing to get the most out of the interaction? How can you not only find a solution to a current problem, but also build relationships and learn skills for future problems? In this talk, you will learn best practices for getting the most out of time with a mentor. I will recommend practical tips and positive habits, as well as ways of thinking that can improve your experience pairing and help you become a better developer.

RubyConf 2022

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