{"id":1741,"date":"2016-05-25T22:42:06","date_gmt":"2016-05-25T21:42:06","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=1741"},"modified":"2018-07-31T13:02:06","modified_gmt":"2018-07-31T12:02:06","slug":"is-pair-programming-really-worth-it","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/","title":{"rendered":"Is Pair Programming worth it?"},"content":{"rendered":"<p>Every now and then I get asked how to convince ones team members that Pair Programming is worthwhile. Often the person asking, or people I did pair programming with, while obviously enthusiastic about the practice, and willing to give it plenty of chance, are themselves not really convinced that it actually is worth the time. In this short post I share how I look at it, in the hope it is useful to you personally, and in convincing others.<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Extreme_programming\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1743\" data-permalink=\"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/xp\/\" data-orig-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg\" data-orig-size=\"721,541\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Extreme Programming\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg\" class=\"alignnone wp-image-1743 size-full\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg\" alt=\"Extreme Programming\" width=\"721\" height=\"541\" \/><\/a><\/p>\n<h2>The cost of Pair Programming<\/h2>\n<p>Suppose you are new to the practice and doing it very badly. You have one person hogging the keyboard and not sharing their thoughts, with the other paying more attention to twitter than to the development work. In this case you basically spend <strong>twice the time<\/strong> for the same output. In other words, the development cost is multiplied by two.<\/p>\n<p>Personally I find it tempting to think about Pair Programming as doubling the cost, even though I know better. How much more total developer time you need is unclear, and really depends on the task. The more complex the task, the less overhead Pair Programming will cause. What is clear, is that when your execution of the practice is not pathologically bad, and when the task is more complicated than something you could trivially automate, the cost multiplication is <strong>well below two<\/strong>. An <a href=\"http:\/\/c2.com\/cgi\/wiki?PairProgrammingCostsBenefits\">article on c2 wiki<\/a> suggests 10-15% more total developer time, with the time elapsed being about 55% compared to solo development.<\/p>\n<p>If these are all the cost implications you think about with regards to Pair Programming, it&#8217;s easy to see how you will have a hard time to justify it. Let&#8217;s look at what makes the practice actually worthwhile.<\/p>\n<h2>The cost of not Pair Programming<\/h2>\n<p>If you do Pair Programming, you do not need a dedicated code review step. This is because Pair Programming is a <strong>continuous application of review<\/strong>. Not only do you not have to put time into a dedicated review step, the quality of the review goes up, as communication is much easier. The involved <strong>feedback loops are shortened<\/strong>. With dedicated review, the reviewer will often have a hard time understanding all the relevant <strong>context and intent<\/strong>. Questions get asked and issues get pointed out. Some time later the author of the change, who in the meanwhile has been working on something else, needs to get back to the reviewer, presumably forcing <strong>two mental context switches<\/strong>. When you are used to such a process, it becomes easy to become blind to this kind of waste when not paying deliberate attention to it. Pair Programming eliminates this waste.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p dir=\"ltr\" lang=\"en\">Pair Programming is not a &#8220;go faster&#8221; strategy, it is a &#8220;waste less&#8221; strategy (which often results in going faster)<\/p>\n<p>\u2014 Kent Beck (@KentBeck) <a href=\"https:\/\/twitter.com\/KentBeck\/status\/565921158025842688\">February 12, 2015<\/a><\/p><\/blockquote>\n<p><script src=\"\/\/platform.twitter.com\/widgets.js\" async=\"\" charset=\"utf-8\"><\/script><\/p>\n<p>The shorter feedback loops and enhanced documentation also help you with design questions. You have a fellow developer sitting next to you who you can bounce ideas off and they are even up to speed with what you are doing. How great is that? Pair Programming can be a lot of <strong>fun<\/strong>.<\/p>\n<p>The above two points make Pair Programming pay more than for itself in my opinion, though it offers a number of additional benefits. You gain true <strong>collective ownership<\/strong>, and build <strong>shared commitment<\/strong>. There is <strong>knowledge transfer<\/strong> and Pair Programming is an excellent way of <strong>onboarding<\/strong> new developers. You gain higher quality, both internal in the form of <strong>better design<\/strong>, and external, in the form of <strong>fewer defects<\/strong>. While those benefits are easy to state, they are by no means insignificant, and deserve thorough consideration.<\/p>\n<h2>Give Pair Programming a try<\/h2>\n<p>As with most practices there is a reasonable learning curve, which will slow you down at first. Such investments are needed to become a better programmer and contribute more to your team.<\/p>\n<p>Many programmers are more introverted and find the notion of having to pair program rather daunting. My advice when starting is to <strong>begin with short sessions<\/strong>. Find a colleague you get along with reasonably well and sit down together for an hour. Don&#8217;t focus too much on how much you got done. Rather than setting some performance goal with an arbitrary deadline, focus on <strong>creating a habit<\/strong> such as doing one hour of Pair Programming every two days. You will automatically get better at it over time.<\/p>\n<p>If you are looking for instructions on how to Pair Program, there is plenty of google-able material out there. You can start by reading the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Pair_programming\">Wikipedia page<\/a>. I recommend paying particular attention to the listed non-performance indicators. There are also many videos, be it conference tasks, or dedicated explanations of the basics.<\/p>\n<h2>My own experience<strong><br \/>\n<\/strong><\/h2>\n<p>I am a big believer in leading by example. Why would you follow advice if the person dispensing it does not follow it themselves? Hence I feel that I should address why I myself do nearly all of my programming work &#8220;on my own&#8221;.<\/p>\n<p>There is a cost beyond the ones mentioned so far, at least for some people. I already alluded to it by mentioning introversion. Personally I am quite introverted and prefer to not have more than two hours of active engagement with people per day. If the day already contains meetings or personal activities of certain kinds, not much extroversion is left for Pair Programming.<\/p>\n<p>As much as I like habits as a powerful way to save willpower and make things happen, I can&#8217;t follow my own advice here either. This due to me having an unusual sleeping schedule, which prevents planning of recurring meetings with colleagues.<\/p>\n<p>Pair Programming sits at or near the logical extreme of things such as knowledge sharing and short feedback loops. Hence when not Pair Programming it becomes all the more important to pay attention to those.<\/p>\n<p>I&#8217;m a big fan of creating small commits and having them reviewed fast and I like briefly talking to a colleague about a task before starting on it, both as a sanity check and to steal their good ideas. Likewise I like talking to a colleague when I run into a scenario where the solution is not so obvious or the trade-offs are not that clear. All of this helps with getting feedback quickly. Another thing I really like is leaving work in a state that colleagues can continue with it, and encouraging people to continue with work their colleagues started. This creates collective ownership and collective understanding of the code.<\/p>\n<p>So if for whatever reason you do not do Pair Programming, you can still benefit from keeping in mind the benefits it provides and trying to approach these in other manners. Have a look at this list of <a href=\"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/\">Best Practices<\/a> for inspiration. And better yet, even if you are introverted, at least give Pair Programming a try!<\/p>\n<h2>Extreme Pair Programming<\/h2>\n<p><a href=\"http:\/\/julianoribeiro.com.br\/extreme-pair-programming\/\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1748\" data-permalink=\"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/extremepairprogramming\/\" data-orig-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/ExtremePairProgramming.jpg\" data-orig-size=\"1600,1196\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Extreme Pair Programming\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/ExtremePairProgramming.jpg\" class=\"wp-image-1748 alignleft\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/ExtremePairProgramming.jpg\" alt=\"Extreme Pair Programming\" width=\"600\" height=\"449\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every now and then I get asked how to convince ones team members that Pair Programming is worthwhile. Often the&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[330,367,421,197,365],"class_list":["post-1741","post","type-post","status-publish","format-standard","hentry","category-programming","tag-agile","tag-extreme-programming","tag-pair-programming","tag-planet-wikimedia","tag-software-craftsmanship"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Is Pair Programming worth it? - Blog of Jeroen De Dauw<\/title>\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.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Is Pair Programming worth it? - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"Every now and then I get asked how to convince ones team members that Pair Programming is worthwhile. Often the&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-25T21:42:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-07-31T12:02:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Is Pair Programming worth it?\",\"datePublished\":\"2016-05-25T21:42:06+00:00\",\"dateModified\":\"2018-07-31T12:02:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/\"},\"wordCount\":1141,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/xp.jpg\",\"keywords\":[\"Agile\",\"Extreme Programming\",\"Pair Programming\",\"Planet Wikimedia\",\"Software Craftsmanship\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/\",\"name\":\"Is Pair Programming worth it? - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/xp.jpg\",\"datePublished\":\"2016-05-25T21:42:06+00:00\",\"dateModified\":\"2018-07-31T12:02:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/xp.jpg\",\"contentUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/xp.jpg\",\"width\":721,\"height\":541,\"caption\":\"Extreme Programming\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2016\\\/05\\\/25\\\/is-pair-programming-really-worth-it\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Is Pair Programming worth it?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jeroendedauw\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Is Pair Programming worth it? - Blog of Jeroen De Dauw","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.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/","og_locale":"en_US","og_type":"article","og_title":"Is Pair Programming worth it? - Blog of Jeroen De Dauw","og_description":"Every now and then I get asked how to convince ones team members that Pair Programming is worthwhile. Often the&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2016-05-25T21:42:06+00:00","article_modified_time":"2018-07-31T12:02:06+00:00","og_image":[{"url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg","type":"","width":"","height":""}],"author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Is Pair Programming worth it?","datePublished":"2016-05-25T21:42:06+00:00","dateModified":"2018-07-31T12:02:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/"},"wordCount":1141,"commentCount":1,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg","keywords":["Agile","Extreme Programming","Pair Programming","Planet Wikimedia","Software Craftsmanship"],"articleSection":["Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/","url":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/","name":"Is Pair Programming worth it? - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg","datePublished":"2016-05-25T21:42:06+00:00","dateModified":"2018-07-31T12:02:06+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#primaryimage","url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg","contentUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/xp.jpg","width":721,"height":541,"caption":"Extreme Programming"},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/25\/is-pair-programming-really-worth-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Is Pair Programming worth it?"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-s5","jetpack-related-posts":[{"id":1392,"url":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/11\/socrates-2014\/","url_meta":{"origin":1741,"position":0},"title":"SoCraTes 2014","author":"Jeroen","date":"2014-08-11","format":false,"excerpt":"Last week I attended SoCraTes 2014, the 4th International Software Craftsmanship and Testing Conference in Germany. Since this was the first time I went there, I did not really know what to expect, and was slightly apprehensive. Turns out there was no need for that, the conference was the most\u2026","rel":"","context":"In &quot;Events&quot;","block_context":{"text":"Events","link":"https:\/\/www.entropywins.wtf\/blog\/category\/events\/"},"img":{"alt_text":"socrates","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/socrates.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":1703,"url":"https:\/\/www.entropywins.wtf\/blog\/2016\/05\/24\/i-t-a-k-e-2016\/","url_meta":{"origin":1741,"position":1},"title":"I T.A.K.E. 2016","author":"Jeroen","date":"2016-05-24","format":false,"excerpt":"Last week I attended the I T.A.K.E. unconference in Bucharest. This unconference is about software development, and has tracks such as code quality, DevOps, craftsmanship, microservices and leadership. In this post I share my overall impressions as well as the notes I took during the uncoference. Conference impression This was\u2026","rel":"","context":"In &quot;Events&quot;","block_context":{"text":"Events","link":"https:\/\/www.entropywins.wtf\/blog\/category\/events\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/you_down_wit_OPC-yeah_you_know_me.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/you_down_wit_OPC-yeah_you_know_me.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/you_down_wit_OPC-yeah_you_know_me.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2016\/05\/you_down_wit_OPC-yeah_you_know_me.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1496,"url":"https:\/\/www.entropywins.wtf\/blog\/2015\/12\/10\/only-smart-people-can-learn-to-code\/","url_meta":{"origin":1741,"position":2},"title":"Only smart people can learn to code","author":"Jeroen","date":"2015-12-10","format":false,"excerpt":"I've just read the interesting blog post Learn To Code, It\u2019s Harder Than You Think. This post outlines two mistakes the author thinks are made in the general thinking on where the difficulties lie in making more people become professional programmers. Firstly that it requires wealth or special privilege to\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2877,"url":"https:\/\/www.entropywins.wtf\/blog\/2022\/09\/21\/advice-for-junior-developers\/","url_meta":{"origin":1741,"position":3},"title":"Advice for junior developers","author":"Jeroen","date":"2022-09-21","format":false,"excerpt":"Over the 15+ years of my development career, I have learned several things that significantly increase my effectiveness. In this post, I share those learnings with you. Structure: Generic Advice -- Important context and motivation for the technical advice Technical Advice -- The main course Recommended Reading -- Links to\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2022\/09\/code.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2022\/09\/code.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2022\/09\/code.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2022\/09\/code.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2022\/09\/code.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":637,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/12\/31\/a-deconstruction-of-object-orientated-time\/","url_meta":{"origin":1741,"position":4},"title":"A deconstruction of object orientated time","author":"Jeroen","date":"2009-12-31","format":false,"excerpt":"I just finished watching the recording of a keynote at the JVM Languages Summit 2009 titled \"Are we there yet? A deconstruction of object orientated time\", which I think is one of the most interesting presentations about programming languages, and what they could be doing better, lately. \"In his keynote\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/cas-as-time-construct.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/cas-as-time-construct.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2009\/12\/cas-as-time-construct.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2184,"url":"https:\/\/www.entropywins.wtf\/blog\/2018\/02\/22\/collaboration-best-practices\/","url_meta":{"origin":1741,"position":5},"title":"Collaboration Best Practices","author":"Jeroen","date":"2018-02-22","format":false,"excerpt":"During 2016 and 2017 I worked in a small 3 people dev team at Wikimedia Deutschland, aptly named the FUN team. This is the team that rewrote our fundraising application and implemented the Clean Architecture. Shortly after we started working on new features we noticed room for improvement in many\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=1741"}],"version-history":[{"count":10,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1741\/revisions"}],"predecessor-version":[{"id":2190,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1741\/revisions\/2190"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=1741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=1741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=1741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}