{"id":167,"date":"2019-05-16T00:00:58","date_gmt":"2019-05-15T23:00:58","guid":{"rendered":"https:\/\/blog.drovio.com\/?p=167"},"modified":"2021-11-25T17:50:19","modified_gmt":"2021-11-25T16:50:19","slug":"reasons-for-pair-programming","status":"publish","type":"post","link":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/","title":{"rendered":"Reasons for Pair Programming"},"content":{"rendered":"\n<p>What most effective teams have in common is certainly their ability to work together. When it comes to software development, one way to work together is pair programming.<\/p>\n\n\n\n<p>Pair programming is a technique where two developers sit at the same desk and code together. The purpose is to spread knowledge over the team, share good practices and sometimes overcome technical challenges by combining two people experiences to solve a problem. At any time, one developer is coding while the other one reviews each line as they are typed and thinks ahead. They must engage with the task to perform for this exercice to be beneficial. Thus, no place for procrastination.<\/p>\n\n\n\n<p>From the point of view of a manager, two developers working on a single task may appear like a waste of resources. However, studies have shown that for a 15% longer development time, pair programming improves code quality, reduces massive show-stopper bugs and enhances team communications (see \u201cThe Costs And Benefits of Pair Programming\u201d: <a href=\"https:\/\/collaboration.csc.ncsu.edu\/laurie\/Papers\/XPSardinia.PDF\">https:\/\/collaboration.csc.ncsu.edu\/laurie\/Papers\/XPSardinia.PDF<\/a>).<\/p>\n\n\n\n<p>Let\u2019s see when to pair and how to do it effectively.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L<strong>earn<\/strong><\/h2>\n\n\n\n<p>Even though the ultimate goal is to produce a fully working piece of code, pair programming can be employed for various reasons. Generally, it depends on the skill level of the participants.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Onboard a junior developer<\/h3>\n\n\n\n<p>The most common usage is a junior programmer pairing with a senior one. The former types while the latter instructs on what to do or help the junior figure it out without giving the solution beforehand. In this case, pair programming is used as a learning and on-boarding tool.&nbsp;<\/p>\n\n\n\n<p>Roles are not exchanged at first. Junior programmers can\u2019t learn by only watching someone else type lines of code they might not even understand. Either because they don\u2019t know the code base yet or because they\u2019re lacking experience. They have to experiment a bit their ideas and make their own mistakes to learn.<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" src=\"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2019\/05\/pair_programming_with_annoyed_dev.mp4\"><\/video><figcaption>Pair programming with an annoyed senior developer<\/figcaption><\/figure>\n\n\n\n<p>Thus, senior devs have to resist the urge to always take over the keyboard control and even show any sign of irritation. Patience is the key here. Sure you would have done the task in a minute, but would that serve any purpose? You don\u2019t want juniors to be discouraged and leave the team. Instead, senior devs should progressively bring juniors to the path that lead to success.&nbsp;<\/p>\n\n\n\n<p>To make this happen, the junior dev speaks their mind aloud as they type. When the senior dev disagrees, they let them reach a dead end then explain why it was not working. Another approach is to ask questions as the junior dev tries to describe what they\u2019re going to do. They\u2019ll inevitably doubt about the proposed solution. This way, they can understand by themselves it would not work and will actually learn. It requires a lot of patience and sessions should be definitely kept short, the exercice being so exhausting for both parties. At the end though, junior devs will be way more engaged and motivated.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Who's benefiting?<\/h3>\n\n\n\n<p>The junior dev, mostly. Yet we all have different visions when it comes to problem solving and juniors can bring a breath of fresh air to a project you should not underestimate. Also, senior devs who\u2019ve been part of the team for a long time well often share the same point of view on a code base and how things should generally be done. A junior dev, however, usually ask questions that force the veterans to explain what some portions of code actually do. This helps to detect design flaws early on that you wouldn\u2019t have suspected at all. You onboard a new team member and at the same time review what has been done before, making sure it\u2019s understandable and that it won\u2019t all fall apart someday. Win-win.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Build up self-confidence<\/strong><\/h2>\n\n\n\n<p>Two juniors pairing together is generally considered a bad combination. They can\u2019t rely on an experienced developer to help them sort their minds. On a complex story, when dealing with agile projects, they\u2019ll lose time investigating each dead end. That generally leads to frustration and failure, also potentially increasing project risk.<\/p>\n\n\n\n<p>A senior dev should approve the stories they pick, generally simple stories. It can work if the team is ready to accept errors and if the juniors already had prior pair programming experiences with a senior dev. They\u2019ll be able to share with each other what they\u2019ve learnt from their past pairing experience. <\/p>\n\n\n\n<p>Also, there are always trade-offs to be made when dealing with development. When they have no senior dev around at disposal, junior devs have to take their own decisions. Something they could be reluctant to do when pairing with a senior, too worried to seem somehow dumb. Taking decisions is an essential part of the learning process when coding. It allows devs to build up their self-confidence.<\/p>\n\n\n\n<p>Pair programming is a good practice to grow as a cohesive dev team. You want juniors to be more effective and expect someday they\u2019ll be able to handle stories by their own, without systematically requiring you to fix everything afterwards. For this to happen, they first need to feel they are key elements of the project and team.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Share the knowledge<\/strong><\/h2>\n\n\n\n<p>The last scenario I\u2019ve not tackled yet is two senior devs pairing together. Although a senior programmer might be able to handle any story of a project, there are a few cases where pair programming can help: learn a new framework together, resolve bugs implying multiple code portions written by each parties or increase the bus factor.<\/p>\n\n\n\n<p>Bus factor refers to the number of people in a team that can put a project in trouble if they disappear (literally by being hit by a bus but more seriously for vacation, illness or leave). Having a good bus factor value ensures the project will eventually come to an end. The rest of the team can easily take over the work done without being lost or having to restart from ground zero.<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" src=\"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2019\/05\/main_dev.mp4\"><\/video><figcaption>Bus factor experience during the last Sprint<\/figcaption><\/figure>\n\n\n\n<p>Pair programming helps to spread knowledge over the team and allows to increase the bus factor value. People involved on a project are no longer isolated on specific corners of the project and code duplication is avoided.<\/p>\n\n\n\n<p>We often pair at USE Together just for the sake of increasing our bus factor. As developers, we have our own preferences when it comes to technologies, programming languages, frameworks. Pairing allows us to move out of our comfort zones, understand quickly how some piece of code is articulated and get ready to take it over when people are on vacation or simply working on other urgent stuffs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Reduce code defects<\/strong><\/h2>\n\n\n\n<p>There are numerous flaws we can potentially write when coding solo. We sometimes lack that step back that would have permitted us to quickly realize something will not really work as intended. When implementing a solution, developers have most of the time different approaches based on their experience. Two minds combined will help reducing massive show-stopper bugs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Improve code quality<\/strong><\/h2>\n\n\n\n<p>Pair programming allows to share consistent coding practices between team members. When you expose some new way to arrange the project\u2019s code during a meeting, people might not be as receptive as you thought they were. Pairing with them on a task that would, at some point, involve following your good practices will help them remember and understand the why.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pair programming techniques<\/strong><\/h2>\n\n\n\n<p>Multiple techniques can be used to pair program. At any time, there are always one developer typing and one observing.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Driver\/Navigator<\/h4>\n\n\n\n<p>A classic one. The driver takes the keyboard and mouse control, writes code, navigates between files and mainly focuses on the current step to be done. The navigator, on the other hand, is responsible for reviewing each line of code being written and thinks more about the big picture: are we on the right track? Will that cause some bugs to emerge? What\u2019s the next step? Driver and navigator often switch roles every 5, 20 minutes or each hour. It mostly depends on the pair but that should happen. Otherwise, the driver will feel exhausted quickly and the navigator will be bored and tempted to procrastinate.<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" src=\"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2019\/05\/driver_navigator.mp4\"><\/video><figcaption>Can I type now?<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Backseat navigator<\/h4>\n\n\n\n<p>This variant works best for senior-junior\/newcomer pair programming. Basically, it\u2019s analogous to driving lessons. The junior or newcomer dev is the driver and is responsible for writing the code. The senior dev is the navigator and gives clear instructions on what to do next, sometimes how to do it when the junior has absolutely no clues. After some lessons, the driver should have build up more self-confidence and know the main parts of the code base. The navigator then only gives a few tips when necessary. It\u2019s important that the navigator resists the urge to take over the keyboard control. They should instead help the driver to figure out by themselves how things should be done.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ping pong<\/h4>\n\n\n\n<p>In combination with test-driven development (TDD), a programmer is responsible for writing a failing test while the other implements the minimum needed for the test to pass. After a bit of refactoring, they exchange role: the person that made the test pass now writes a new failing test and the other one codes an implementation. Going back and forth, as a ping pong game.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Few <strong>tips to do it right<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Keep the chat going<\/h3>\n\n\n\n<p>The driver should speak their mind at any moment by explaining their approach. This way, the navigator can validate or suggest a better way to solve the problem. It requires some practice to rubber duck to a real person when you\u2019re only used to speak with your brain. At the end, you will improve your own coding process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Take often breaks<\/h3>\n\n\n\n<p>Rest your eyes, drink, check emails, whatever but take breaks at regular intervals like 30 minutes or 1 hour. Constantly chatting and conveying your mind is exhausting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Be patient<\/h3>\n\n\n\n<p>We don\u2019t think the same way, you should show some tolerance when your pair is taking too much time to solve an obvious problem. Maybe your pairing partner is thinking ahead about other issues that might arise or simply confused because of your irritation. Irritation is the first cause of bad pair programming experiences.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Search together<\/h3>\n\n\n\n<p>An essential skill for a programmer is the ability to search effectively on Google for docs, examples or similar issues as the one you\u2019re having and possible ways to solve it. As the navigator, you might just be tempted to do that off-screen, say on your mobile phone, because the driver is indeed not searching for the right keywords and it's exasperating you. Don\u2019t. That's an open door to distraction (oh I've received 6 emails). Instead, wait for them to find nothing relevant. Then, suggest new keywords and explain why you would search for that. Remember, pairing is learning and requires patience.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Don't insist on every mistake<\/h3>\n\n\n\n<p>As the navigator, don\u2019t insist too often on every mistake. The driver will figure out by themselves that a semicolon is missing or a variable is misspelled. Doing this too often makes the driver focus more on the code style than on the task itself.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Adjust your display scaling<\/h3>\n\n\n\n<p>Or zoom text. Especially when using high resolution screens. Hard to read when not exactly in front of the screen. If you can, plug in another one and mirror your desktop.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use two mice and two keyboards<\/h3>\n\n\n\n<p>Use two mice and two keyboards to switch roles smoothly and at regular intervals (5, 20 minutes or 1 hour). But keep in mind you have one role at any time. Resist the urge to take over the control if you're the navigator.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pair remotely<\/h3>\n\n\n\n<p>Keep the comfort of your own desk and overcome the last two points by pairing remotely with <a href=\"https:\/\/www.use-together.com\">USE Together<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What most effective teams have in common is certainly their ability to work together. When it comes to software development,...<\/p>\n","protected":false},"author":2,"featured_media":437,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-167","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pair-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Reasons for Pair Programming - Drovio Blog<\/title>\n<meta name=\"description\" content=\"There&#039;s always a good reason to pair program, wether you&#039;re a junior or a self-accomplished developer. This article exposes some of them and gives few tips.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reasons for Pair Programming - Drovio Blog\" \/>\n<meta property=\"og:description\" content=\"There&#039;s always a good reason to pair program, wether you&#039;re a junior or a self-accomplished developer. This article exposes some of them and gives few tips.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"Drovio Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DrovioHQ\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-15T23:00:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-25T16:50:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/03\/Reasons-for-Pair-Programming.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Julien Lehuraux\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DrovioHQ\" \/>\n<meta name=\"twitter:site\" content=\"@DrovioHQ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julien Lehuraux\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/\"},\"author\":{\"name\":\"Julien Lehuraux\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#\\\/schema\\\/person\\\/5c29ee5bd759fe45e1098bb3181e7f68\"},\"headline\":\"Reasons for Pair Programming\",\"datePublished\":\"2019-05-15T23:00:58+00:00\",\"dateModified\":\"2021-11-25T16:50:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/\"},\"wordCount\":1998,\"publisher\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Reasons-for-Pair-Programming.jpg\",\"articleSection\":[\"Pair Programming\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/\",\"url\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/\",\"name\":\"Reasons for Pair Programming - Drovio Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Reasons-for-Pair-Programming.jpg\",\"datePublished\":\"2019-05-15T23:00:58+00:00\",\"dateModified\":\"2021-11-25T16:50:19+00:00\",\"description\":\"There's always a good reason to pair program, wether you're a junior or a self-accomplished developer. This article exposes some of them and gives few tips.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Reasons-for-Pair-Programming.jpg\",\"contentUrl\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Reasons-for-Pair-Programming.jpg\",\"width\":1080,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/reasons-for-pair-programming\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reasons for Pair Programming\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/\",\"name\":\"Drovio Blog\",\"description\":\"Bring your remote team together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#organization\",\"name\":\"Drovio\",\"url\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/logo.svg\",\"width\":1,\"height\":1,\"caption\":\"Drovio\"},\"image\":{\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/DrovioHQ\",\"https:\\\/\\\/x.com\\\/DrovioHQ\",\"https:\\\/\\\/www.instagram.com\\\/droviohq\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/drovio\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCOtSKKJ-exMqgyLH63_i-Bg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/#\\\/schema\\\/person\\\/5c29ee5bd759fe45e1098bb3181e7f68\",\"name\":\"Julien Lehuraux\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Untitled-design-1-96x96.png\",\"url\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Untitled-design-1-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Untitled-design-1-96x96.png\",\"caption\":\"Julien Lehuraux\"},\"url\":\"https:\\\/\\\/www.drovio.com\\\/blog\\\/author\\\/jlehuraux\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reasons for Pair Programming - Drovio Blog","description":"There's always a good reason to pair program, wether you're a junior or a self-accomplished developer. This article exposes some of them and gives few tips.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/","og_locale":"en_US","og_type":"article","og_title":"Reasons for Pair Programming - Drovio Blog","og_description":"There's always a good reason to pair program, wether you're a junior or a self-accomplished developer. This article exposes some of them and gives few tips.","og_url":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/","og_site_name":"Drovio Blog","article_publisher":"https:\/\/www.facebook.com\/DrovioHQ","article_published_time":"2019-05-15T23:00:58+00:00","article_modified_time":"2021-11-25T16:50:19+00:00","og_image":[{"width":1080,"height":720,"url":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/03\/Reasons-for-Pair-Programming.jpg","type":"image\/jpeg"}],"author":"Julien Lehuraux","twitter_card":"summary_large_image","twitter_creator":"@DrovioHQ","twitter_site":"@DrovioHQ","twitter_misc":{"Written by":"Julien Lehuraux","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/#article","isPartOf":{"@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/"},"author":{"name":"Julien Lehuraux","@id":"https:\/\/www.drovio.com\/blog\/#\/schema\/person\/5c29ee5bd759fe45e1098bb3181e7f68"},"headline":"Reasons for Pair Programming","datePublished":"2019-05-15T23:00:58+00:00","dateModified":"2021-11-25T16:50:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/"},"wordCount":1998,"publisher":{"@id":"https:\/\/www.drovio.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/#primaryimage"},"thumbnailUrl":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/03\/Reasons-for-Pair-Programming.jpg","articleSection":["Pair Programming"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/","url":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/","name":"Reasons for Pair Programming - Drovio Blog","isPartOf":{"@id":"https:\/\/www.drovio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/#primaryimage"},"image":{"@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/#primaryimage"},"thumbnailUrl":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/03\/Reasons-for-Pair-Programming.jpg","datePublished":"2019-05-15T23:00:58+00:00","dateModified":"2021-11-25T16:50:19+00:00","description":"There's always a good reason to pair program, wether you're a junior or a self-accomplished developer. This article exposes some of them and gives few tips.","breadcrumb":{"@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/#primaryimage","url":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/03\/Reasons-for-Pair-Programming.jpg","contentUrl":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/03\/Reasons-for-Pair-Programming.jpg","width":1080,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.drovio.com\/blog\/reasons-for-pair-programming\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.drovio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Reasons for Pair Programming"}]},{"@type":"WebSite","@id":"https:\/\/www.drovio.com\/blog\/#website","url":"https:\/\/www.drovio.com\/blog\/","name":"Drovio Blog","description":"Bring your remote team together","publisher":{"@id":"https:\/\/www.drovio.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.drovio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.drovio.com\/blog\/#organization","name":"Drovio","url":"https:\/\/www.drovio.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.drovio.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/10\/logo.svg","contentUrl":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/10\/logo.svg","width":1,"height":1,"caption":"Drovio"},"image":{"@id":"https:\/\/www.drovio.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DrovioHQ","https:\/\/x.com\/DrovioHQ","https:\/\/www.instagram.com\/droviohq\/","https:\/\/www.linkedin.com\/company\/drovio","https:\/\/www.youtube.com\/channel\/UCOtSKKJ-exMqgyLH63_i-Bg"]},{"@type":"Person","@id":"https:\/\/www.drovio.com\/blog\/#\/schema\/person\/5c29ee5bd759fe45e1098bb3181e7f68","name":"Julien Lehuraux","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/11\/Untitled-design-1-96x96.png","url":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/11\/Untitled-design-1-96x96.png","contentUrl":"https:\/\/www.drovio.com\/blog\/wp-content\/uploads\/2021\/11\/Untitled-design-1-96x96.png","caption":"Julien Lehuraux"},"url":"https:\/\/www.drovio.com\/blog\/author\/jlehuraux\/"}]}},"_links":{"self":[{"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/posts\/167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":31,"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"predecessor-version":[{"id":217,"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions\/217"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/media\/437"}],"wp:attachment":[{"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.drovio.com\/blog\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}