Bestand wählen
Merken

Pair Programming as A Mechanism for Growth

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
not only this Brewer I'm a
lover but my name is stan Zeder said and my talk today is pair programming as a mechanism for growth and honestly this is my 1st time giving a talk at a tech conference so I kind of feel like this is my audience right now
the on the Fourier to the talk though what we tell you that about me professionally in a
career change from the finance world and the highlight of their career I kid you not I was working with enormous Excel spreadsheets to track principal and interest payments on collateralized loan obligations so another profession they usually induced this response
but try to talk to people about it but the thankfully I realize that the reason I enjoyed that job was because of few of my teammates and I were working on making things and that involves some basic programming and this realization help me make the jump over to suffer development I've been a developer for the past year and a
half a small company called L you to me make financial management software for Kidder said K-12 school districts to help them budget manage and evaluate the finances to better serve the needs of their students it's something I can feel proud about so I like my job and some of the front and a graph is built in a number back and it's in rails it we are hiring so here's a link to a jobs page if you're interested OK so in my personal life I have 2 adorable dogs the ones on the right my favorite hobby is a part UN's cold
up I love to travel and always jump at the chance to interact with animals and honestly a bit ridiculous because little excited I'll have to be celebrating the 30th birthday came a double can nearer in the anyway let's get to the content of the talks so be
talking to you about pair programming but is like clarify what I mean by that really it's just 2 people working together and some programming problem generally there 2 roles the driver whose so the keyboard and types and navigator who directs the problem-solving and focus of the stock is going to be on the junior senior pairing dynamic although I think a lot of the advice can benefit to the developers at all levels so why did I choose to do a talk about their programming 1 I experienced seems to get a bad rap you may be thinking that it's a waste of time to pair or it's only for the benefit of the less experienced person and of course nobody want somebody looking over their shoulder analog people can see pairing that way and so they might see those awkward or a scary test and give me wrong that pairing definitely does exist I've had an heard of some cringe-worthy experiences and in fact in my 1st 9 months as a developer I appeared regularly was a guy who would literally laugh at my lack of knowledge I ask the question so be this is Satan feel very very good after working with him but there is good peer into I was also really lucky when I 1st started out to pair the developer whose PC with me and helped guide me through thinking through problems for myself and that during relationship helpless both grow a lot that's kind of basis for the stock so I made this claim that can help you grow but how 1st for senior developers trying to explain something someone else helps you develop a deeper understanding of the material because 1st it helps you to better organize information in your own mind and 2nd it helps you recognize gaps in your knowledge the may just skip over on your own I had also helps you learn by exposing you new perspectives there's so much to learn in web development that we all know different things depend as bill nice said
everyone you'll ever meet knows something you don't even that junior developer fresh out of the camp obviously that's not what he said last part so
Virginia developers and 1st there's a lot of stuff you can he'd yourself on your own give enough time not content wise but when you hear regularly with other developers you can learn a lot faster many with not learning by herself 2nd I like to think of programming as a craft each time you write code were working on building out something in a tradition that draws from what others before us have learnt and don't so any appearing regularly with other developers it's kind of apprenticeship that helps you hone your craft and learn skills that are much harder to pick up from written or video resources like how to break down a problem I I had to choose between possible solutions and how to get yourself unstuck for example there are also a number of ways that pair programming helps all developers grow no matter your experience at 1st pairing does involve a lot of talking with so little force you to practice your communication skills and let's face it suffer developers not known for being fully create that when you're also a new talking a lot there will be times in junior partner can I get your part would get your point across between and of course this can be frustrating but you have to figure out how to work through it which gives you chance factors patients with yourself and others finally pairing that helps you build a better rapport with your teammates and I think that's pretty important because as the IT complexity of wraps grows the long coder is less important than he is such of it so now we've gone through all that why should you listen to me talking about this well 1st is this idea of the mike right now
but more importantly but i
it I'm lucky enough to work on the dev team that values pair programming and I spent about 20 25 per cent of my time here programming so I've got a lot of experience with that over the past year and a half I also have a lot of experience teaching with people I was involves a lot of tutoring and mentoring programs and from junior high through college and then I also trained a lot of colleagues and or on board all our colleagues in my previous career facts and of course teaching skills come in handy when you're on when you pair probing with 2 with somebody finally it can be difficult to give direct feedback to more senior developer on your team says here does are less likely to get this sort of feedback from people they work with of course I don't work with any of you so I don't have that limitation so let's start with tips for senior developers since they're the ones likely to be leading a parent session It's so before even beginning pair programming session you wanted to go into it with the right mind set and it's really has 2 parts 1st remembering what it's like to be a beginner and 2nd dropping expectations of what your pair should not so let's talk
about remembering what it's like to be a beginner now but I
learn new stuff all the time you might be thinking and considering amber does releases every 6 weeks and the new add-ons figure out all the time and of course there is the ever-changing on tools use in web development you definitely or what you are learning things all the time and it is part of a jobs be lifelong learners but do you remember what it's like to not understand how close your actions work in amber or help France objects were I argue that this is not a difference sorry there's a difference non magnitude but in kind as a beginner you don't even yet know we should now there's so many unknown unknowns and this can be overwhelming of course once you're more experienced those unknown unknowns become known and atoms in a lot more manageable so he started coding in high school you just can't remember what it's like to be began a programmer you try something new recently like taking a surfing lesson or put together your keyboard but the take a moment to remember what they it what felt like to be a beginner and be somewhat overwhelmed by the task at hand I wouldn't that so
I'm asking to think about that when you're thinking from this perspective it makes you better at explaining things because they're less likely to seek the current knowledge for granted and not more patience for trying to explain how something works so let's move to the 2nd part of approaching appearing session with Raymond that is dropping expectations the way your partner quote should know the after giving a talk at a local meet up the developer came up to me to ask 1st a more specific advice and pairing of a particular gene death and I what he when was starting this to me he sounded quite annoyed as best summed up by him saying art that this person doesn't even know how to name things properly like kill name of function loop granted that's a terrible names but the he had this expertise in expectation that the developer should already know how to do this and made frustrated and he never said anything to help that person improve and definitely not assuming I did ask him my point is that there's so much to learn a programming that we'll know different things so the specter expect a person to know a particular thing instead of getting annoyed frustrated that they can't already do it teach and how will save you a lot of time and frustration now and in the future and if you're anointed with someone when you stop properly when you start appearing with them excuse me on that it'll probably make the pairing session less productive so now you're prepared to go and you're pairing session with a good minds that in your pair programming with some say the mind set when your pair programming with someone new I tried to establish psychological safety now I know this can sound a little bit touchy feely but if you have 1 take away from this to this talk I think this should be it so Google people's analytic Google's people analytics team work done project aerosol in which I did research to try to discover the secrets effective teams 10 years so they found psychological safety more than anything else was critical to making a teamwork and pairing is just like a mini team so I think this is really applicable here how do you go about creating this feeling of psychological safety will 1st you wanna emphasize your partner the you don't know everything but and you you want them to ask questions interject with their ideas while caring and then me don't know something instead of trying to gloss over at the look of stuff documentation google it and look at stack overflow into Stanley show them what you do when you don't know next I don't be dismissive of your partners ideas and this is important so many give it it sounds like you wanna tell them that there is no such thing as a dumb question and really mean it when they do ask a question don't be dismissive or incredulous so they don't know something you 1 is that the expectation that it's not just OK for them to speak up when they don't know something but it's welcome and necessary you wanna help your partner develop their problem solving skills and continue take risks and offer creative solutions is of course what else are we doing and Sofitel paths and if you think that something that they suggest more work don't just dismiss the idea explain why you think it won't work and something small and specific let them tested out the consuls they can see why more work Of course they if we are new to this field so I sorry a lot of waste the so of course we're new to this field and many of our suggestions may be just plain wrong but not all of them and it isn't just for your partners benefit you may be inhabiting something a certain way and a junior developer can help you get out of a arrive for example this 1 time I paired a senior development a problem and I brought up an idea that he dismissed with absolutely no explanation we spent a couple hours of him proposing and going through these various ideas and nothing seemed to work in each time something failed I bring up by suggestion again and he dismissed account and after a couple hours of things not working he went back to my suggestion it turned out it worked it was easy to implement and apologized to me afterward so for not considering it so there's a great quote from
Allen Kay was computer scientists that a change in perspective is worth points cause I'm not sure about the number but I do agree with the sentiment I assume you pair comes up with a potential solution ask yourself of they're onto something and does my Tate save you sometime in frustration and help you grow as the developer OK so now you have the right mind set you've established psychological safety so let's get to Simpact lit practical advice on how to go about their programming before you write any
code I recommend that you start with an approach discussion review the problem and whatever background is needed as well as the different approaches you could take and this should be a discussion so ask questions and make sure that your partner simple avoid going along 1 monolog like I'm doing right now once you have an approach to start with make sure that you and your partner are on the same page and here understands what your planning less you end up with these 2
next guide your parents to solving the problem for themselves but so when you're working with a junior developer it may be tempting to just tell them how to do something but graph things a lot faster if you guide them through thinking through a problem for themselves but how well the 1st thing we are the 1st step is to think about how you go about working through a problem at the break it down into smaller more understandable chance so help them do that and you can help them do that by asking thought-provoking leading questions to guide them through thinking through each step and when you ask your partner question make sure you give them time to think don't just say and when you think this status will here's what it then next let them make mistakes and ask them why something didn't work afterward you really want to put the focus on your partner so that they're actually doing the work and thinking through things now when you're trying to explain something explain it better and to do that you want to simplify simplify simplify no that's terrible of
Selberg minus we think we can all agree it's a pretty smart guy said you can't explain it to a 6 year old you don't understand it yourself there is a lot of language in acronyms and web development that a new a developer might not know so when you're trying to explain something to stand in the simplest possible terms or tell your printer to to stop if they are familiar with the term using and your printer doesn't understand your 1st attempt an explanation of frustrated get
clarification with get clarification on what your partner understands by asking them to explain it in their own words this is a surefire way to pick and ideas are areas that need more clarification he is more precise language try to avoid using vague terms like thing using that thing a lot may make it easier for you but it makes the heart of reported understand so take the time to find the right word and if you just can't get your point across the words try a different approach is a couple of things tract can you create a simplified example on the Council so your partner can play with that and see the output if you're working on a complex application it can be difficult to filter out the various things that are really necessary to you getting an understanding of the core concept so scene and playing with a simplified version can help you really grok what's under what's happening next I can you make a drawing of the underlying concepts and this doesn't have to be anything fancy you don't have to be a fine artist to do this but your brain processes information differently when you hear it versus when you see it so drawing can't join picture the concept can help your perfect partner understand it better my 1st pair programming experience on the job involves implementing an action that had to be passed up through multiple levels of the hierarchy to register change and pass it back down to the component to update the UI now I found I really confusing and it can be hard to follow the words that I just said of course even so my partner drew a picture of it and then immediately it made sense to me so next I have a couple pieces of advice that may seem contrary to you advice you've heard about pair programming 1st let the junior type developer type as much as possible of so I know this may be difficult for you but resist the urge to grab the keyboard the just thinks that little thing built by they even heard of developer without boxing
gloves to stop herself from taking over her pair so there's always that option we all learn by doing and let's be honest a single P an amber can stand dozens of files so let them have the experience of navigating the application and actually typing out the code as an added bonus if you pair stops listening goes off into the real world you can always give a little left out to get them back into the pairing process that's a joke I'm not actually advocating violence cancer foolish curse this so in a similar vein my final suppressing developers is the way to point out mistakes it seems like 1 of the biggest benefits people side after pair programming is that you don't have to deal with syntax errors because you have a 2nd set of eyes to crack to you but this can break a new a developers concentration and flow give your some time to correct a table for example I cannot tell you how annoying it was when I was just starting out my partner tell me that I felt something wrong a good rule of thumb is to wait 10 seconds to give a chance to correct it on their and if they don't you can always out take a pause and then ask later and then even use it as a learning opportunity when they have a counselor so just give them a little time and they might surprise you so now I wanna talk transitions talking about tips for junior developers like my advisor senior developers I think that the junior developers should 1st HADEP approach it with the right minds to and this as you parts 1st remember that coding is in fact part it doesn't come naturally because it's an entirely new way of thinking it will take time and this is a a struggle of my own advice know how quickly learned something it's never fast enough a Q but it can be intimidating to work with someone a lot more experience than because it can seem like you they just magically know things and I'll never get there but don't get discouraged they struggled of a lot of the same concepts when they were just starting out but
this is part of saturn literally
had the right mind set I read this great book by Carol Black Coleman said she's a cycle psychology researcher who studies learning and achievement in it she described to 2 types of mines fixed interval believe that your abilities cannot change band growth in to believe that they can people overgrowth mines that are more persistent when faced with the challenge and get less frustrated by failure in let's face it dealing with failure is a big part of drops luckily you can move from a fixed to a growth minds that I think that the most helpful idea from above for moving from 2 a growth minds that was the value of not yet if you're not getting something it doesn't mean that you can't be just means you don't understand it yet so if you find that you're beating yourself up for not understanding something remind yourself the coating is objectively hard and you can understand it is having done it yet and I think a good tactic for proving to yourself that you can grow your abilities is to keep a list of things you learn while you're pair programming and of course lawyer programming on your own I'm an over time as you watch this list you'll see in black and white hope for come so next recognized as a junior developer you can contribute more than you may think even if you're very male as I talked about earlier and experience developers confound trap of just doing something because that's how they've always done and having a new perspective is quite valuable 2nd you can help your partner of questioning questioned their assumptions group ask why they're doing something in a certain way and they may find that there's a better way of doing it but they never would come across if you had asked them to explain their thinking more clearly I have a note here says do not press the button sick always try to press the button at that point stuff there is this that so for example recently a senior developer on my team asked if anybody would be a rubber duck for him to get in and unstuck on his chest and I volunteered he was working on a deployment bug and I'm not afraid to admit that I have 0 experience of deployments of so start off he quickly gave me background on the issue and walked me through the problem with an expectation of what was causing the bike as he later told me in trying to understand the problem I asked him a lot of white questions I challenge him when he said something worked in a certain way and it seemed fishy domain and all this made him reconsider his assumptions as a result we realize that it was something else entirely causing about and only to be fixed that but the we found and fixed and other 1 spot so the lesson here is to be in sorry the good rubber duck means of stuff but don't just be a rubber duck music he
started by the way this is my actual rubber duck and I wish I could take credit for that great plan but you can buy it on Amazon I thought my final point on this topic the code right for humans sorry yes the code writers for humans are not computers your input can make a code more understandable 9 others made some strange the code is really for other people but it is we were not putting punchcards
into a giant computer it takes an entire room code in the lot higher little languages that we work with is written once and read by people many times in its life so if you understood you don't understand something it can mean that the code is too complicated and should be rewritten in a more understandable way the and that's for you OK that's for other donors to for other developers and let's be honest our future selves the
next don't be afraid to say that you don't understand something I don't know does not equal and stupid it just means that you don't know everything and the truth is that nobody Dutch there's a great visual representation of this I got from my coworker on the left is what you may
think that your pair knows everything that you know and then some but in reality there's so much to learn that nobody knows everything our collective knowledge looks more like the picture on the right a blend of overlapping circles of knowledge and experience but that said don't set a bad
precedent for yourself now if you can't say I don't understand is a junior developer than when can you there is a caveat to those don't just say I don't understand try to ask their questions so you can start out by stating what you may understand and by the way this is gratuitously stolen from a great blog post by Julia Athens which opened which is in the references and you get a lot more tips about asking the questions from there explaining your current understanding has 2 benefits it gives you pair the context so you have so that they can better answer any questions and they can help clear up any misunderstanding of misunderstandings and answer a question before you've even asked next you and ask specific questions as you go along whether that's because it's question about a term unfamiliar with or you don't understand where an where an object passed into a function is coming from you get more out of appearing session if you're clarifying things regularly finally don't be afraid to ask your partner for what you need as of great CV wonder saying if you don't
ask you don't get so the developer appearing with is in doing something I suggested here's the thing would be helpful ask and as I said in the beginning of the talk I know this can be hard to use a bit of selfless shameless self-promotion if too nervous to speak up you can always direct them to the video of the stock the so
thank you very much for being great audience I hope you got some useful tips on making using a pairing sessions and if you'd like to contact me the very unoriginal Twitter handle die and the leave you
with a picture of my dog is a puppy and references thank you very much we thank you you could do
at the high end the
the
Videokonferenz
XML
Binder <Informatik>
Optimierung
Optimierung
Mechanismus-Design-Theorie
Tabellenkalkulation
Mathematisierung
Endogene Variable
Fourier-Entwicklung
Sichtbarkeitsverfahren
Videospiel
Graph
t-Test
Zahlenbereich
Binder <Informatik>
Eins
Homepage
Metropolitan area network
Wechselsprung
Datenmanagement
Prozess <Informatik>
Software
Mereologie
Optimierung
Softwareentwickler
Hilfesystem
Schnelltaste
Perspektive
Softwareentwickler
Bit
Diskretes System
Codierungstheorie
Gasströmung
Information
Optimierung
Fokalpunkt
Übergang
Druckertreiber
Navigieren
Perspektive
Fokalpunkt
Basisvektor
Datentyp
Web-Designer
Information
Inhalt <Mathematik>
Optimierung
Softwareentwickler
Druckertreiber
Analogieschluss
Telekommunikation
Softwareentwickler
Maschinencode
Punkt
Forcing
Rechter Winkel
Mereologie
Zahlenbereich
Telekommunikation
Optimierung
Softwareentwickler
Komplex <Algebra>
Teilbarkeit
Rückkopplung
Gerichtete Menge
sinc-Funktion
Optimierung
Quick-Sort
Eins
Erwartungswert
Rückkopplung
Menge
Rechter Winkel
Mereologie
Vererbungshierarchie
Inverser Limes
MIDI <Musikelektronik>
Softwareentwickler
Optimierung
Größenordnung
Schnelltaste
Subtraktion
Programmiergerät
Momentenproblem
Gruppenoperation
Ordinalzahl
Task
Objekt <Kategorie>
Prozess <Informatik>
Mereologie
Web-Designer
Größenordnung
Figurierte Zahl
Innerer Punkt
Hilfesystem
Umwandlungsenthalpie
Soundverarbeitung
Tropfen
Lineares Funktional
Bit
Punkt
Keller <Informatik>
Analytische Menge
Loop
Last
Erwartungswert
Datenfeld
Pufferüberlauf
Geometrische Frustration
Perspektive
Mereologie
Geometrische Frustration
Projektive Ebene
Strom <Mathematik>
Optimierung
Softwareentwickler
Analytische Fortsetzung
Maschinencode
Perspektive
Punkt
Mathematisierung
Automatische Handlungsplanung
Zahlenbereich
Homepage
Homepage
Perspektive
Surjektivität
Punkt
Optimierung
Softwareentwickler
Informatik
Graph
Elektronischer Programmführer
Vererbungshierarchie
Kontrollstruktur
Elektronischer Programmführer
Softwareentwickler
Fokalpunkt
Schnelltaste
Punkt
Spielkonsole
Gruppenoperation
Formale Sprache
Versionsverwaltung
Hierarchische Struktur
Kartesische Koordinaten
Term
Übergang
Demoszene <Programmierung>
Flächeninhalt
Formale Sprache
Prozess <Informatik>
Datentyp
Web-Designer
Speicherabzug
Wort <Informatik>
Zusammenhängender Graph
Information
Optimierung
Softwareentwickler
Maschinencode
Mereologie
Thumbnail
Codierungstheorie
Gruppenoperation
Zwei
Güte der Anpassung
Thumbnail
Kartesische Koordinaten
Schlussregel
Elektronische Publikation
Datenfluss
Konfiguration <Informatik>
Konzentrizität
Menge
Mereologie
Optimierung
Softwareentwickler
Tabelle <Informatik>
Fehlermeldung
Resultante
Maschinencode
Mereologie
Punkt
Mathematisierung
Gruppenkeim
Automatische Handlungsplanung
Computerunterstütztes Verfahren
Data Mining
Erwartungswert
Domain-Name
Datenverarbeitungssystem
Perspektive
Schwebung
Gruppe <Mathematik>
Maschinencode
Datentyp
Tropfen
Softwareentwickler
Optimierung
Beobachtungsstudie
Perspektive
Güte der Anpassung
Mailing-Liste
Ein-Ausgabe
Sichtenkonzept
Lochkarte
Programmfehler
Arithmetisches Mittel
Rechter Winkel
Ein-Ausgabe
Dreiecksfreier Graph
Mereologie
Maschinencode
Selbstrepräsentation
Computer
Softwareentwickler
Domänenspezifische Programmiersprache
Ganze Funktion
Objekt <Kategorie>
Lineares Funktional
Kreisfläche
Web log
Rechter Winkel
Kontextbezogenes System
Softwareentwickler
Kontextbezogenes System
Bit
Softwareentwickler
Videokonferenz
Mittelwert
Sichtbarkeitsverfahren
Julia-Menge
Klon <Mathematik>
Binder <Informatik>
Perfekte Gruppe
Leistung <Physik>
Gebäude <Mathematik>
RSA-Verschlüsselung
Datentyp
COM
p-Block

Metadaten

Formale Metadaten

Titel Pair Programming as A Mechanism for Growth
Serientitel EmberConf 2018
Autor Eramo, Dianne
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/35694
Herausgeber Confreaks, LLC
Erscheinungsjahr 2018
Sprache Englisch
Produzent Confreaks, LLC
Produktionsjahr 2018

Inhaltliche Metadaten

Fachgebiet Informatik

Ähnliche Filme

Loading...
Feedback