{"id":3552,"date":"2020-11-03T02:26:35","date_gmt":"2020-11-03T07:26:35","guid":{"rendered":"https:\/\/blog-alexis.monville.com\/en\/?p=3552"},"modified":"2020-11-03T02:36:37","modified_gmt":"2020-11-03T07:36:37","slug":"what-a-coding-dojo-taught-me-about-agile","status":"publish","type":"post","link":"https:\/\/blog-alexis.monville.com\/en\/2020\/11\/03\/what-a-coding-dojo-taught-me-about-agile\/","title":{"rendered":"What a Coding Dojo taught me about agile"},"content":{"rendered":"\n<p>In their article,&nbsp;<a href=\"https:\/\/opensource.com\/article\/18\/10\/what-agile\" target=\"_blank\" rel=\"noreferrer noopener\">What is agile?<\/a>, Jen Krieger, Daniel Oh, and Matt Takane discuss what we at Red Hat consider the most important sentence of the&nbsp;<a href=\"http:\/\/agilemanifesto.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Agile Manifesto<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u201cWe are uncovering better ways of developing software by doing it and helping others do it.\u201d<\/p><\/blockquote>\n\n\n\n<p>I like this sentence because it helps to understand why we could apply &#8220;agile&#8221; outside of software development. We could replace &#8220;developing software&#8221; in that sentence with something like &#8220;cooking,&#8221; and it would still give us a good idea of the mindset of people who engage in &#8220;agile cooking&#8221;.<\/p>\n\n\n\n<p>Of course, we often associate &#8220;agile&#8221; with specific practices. Let\u2019s take the example of two agile practices that were used together during a&nbsp;<a rel=\"noreferrer noopener\" href=\"http:\/\/codingdojo.org\/\" target=\"_blank\">Coding Dojo<\/a>&nbsp;event. A Coding Dojo is a great way of uncovering better ways of developing\u2026 I\u2019ll stop there; you know the rest of the sentence by now. A Coding Dojo is a great way to get better at something by practicing with others in a safe and controlled environment. The practices I uncovered that day were&nbsp;<em>test-driven development<\/em>&nbsp;and&nbsp;<em>pair programming<\/em>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Test-driven development<\/strong>, or TDD, is a process in which a developer starts by writing an automated test for a function, then writes the code that will make the test pass.<\/li><li><strong>Pair programming<\/strong>&nbsp;is when two coders work together using one computer.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The Coding Dojo&nbsp;experience<\/h2>\n\n\n\n<p>Imagine yourself in a room with 20 coders, one laptop, and one big screen. Two seats are near the computer for the first pair of programmers, and there are enough seats for the other programmer pairs who will observe before taking their turn at the keyboard.<\/p>\n\n\n\n<p>The kata we used that day was the Bowling Game. The goal of the Bowling Game, as explained on the&nbsp;<a href=\"http:\/\/codingdojo.org\/kata\/Bowling\/\" target=\"_blank\" rel=\"noreferrer noopener\">Coding Dojo website<\/a>, is to \u201ccreate a program, which, given a valid sequence of rolls for one line of American Ten-Pin Bowling, produces the total score for the game.\u201d<\/p>\n\n\n\n<p>Each pair of programmers has a five-minute timebox to advance in the resolution of the challenge, using TDD and taking steps that are as small as possible. At the end of the timebox, another pair will follow.These interactions help them express their best in the code they produce.The first coder starts by writing the first test. The test fails to red as there is no code yet (test tools associate green with a passing test and red with a failing test). The second coder writes the smallest possible amount of code to make the test pass green, and he or she then improve the tests. The test goes back to red, and we switch back to the first programmer, who then writes the smallest possible amount of code to make the test pass. And so on. Refactoring is done along the way.<\/p>\n\n\n\n<p>The interaction between the two coders is the kind of magic we all love to see. That&#8217;s because contributors are not submitting a patch hoping for a fast review; they have the review in real time. And because they are progressing in small steps, explaining what they are doing, it is easy for everyone to stay connected, whether you are in the audience or the second coder in the pair.<\/p>\n\n\n\n<p>Writing the test first forces an early understanding of what is required. Focusing on the smallest amount of code possible to make the test pass also helps to keep the design as simple as possible. Refactoring along the way ensures that we keep only the code we need.<\/p>\n\n\n\n<p>Here are the key differences between the Coding Dojo experience and the typical development process:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Developers work in pairs instead of alone to code features and fix bugs<\/li><li>Testing is done before development instead of after code is developed<\/li><li>Code review is done in real time, with the pair, instead of waiting for another developer to review and merge<\/li><\/ul>\n\n\n\n<p>Looking at a larger amount of code makes it more difficult to understand. The process is not only slower but leads to less beneficial interactions between the coder and the reviewer.<\/p>\n\n\n\n<p>Why do we consider pair programming and TDD agile practices? Because they are designed to foster strong interactions between the individual members of the team. These interactions help them express their best in the code they produce.<\/p>\n\n\n\n<p>This brings us to the second sentence of the&nbsp;<a href=\"http:\/\/agilemanifesto.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Agile Manifesto<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u201cThrough this work, we have come to value: Individuals and interactions over processes and tools.\u201d<\/p><\/blockquote>\n\n\n\n<p>You can, of course, have processes and tools. But those processes and tools should foster the expression of individuals and their interactions. The latter has more value than the former.<\/p>\n\n\n\n<p>So the next time you are engaged in a conversation about tools or processes, ask yourself (and others): Are we bringing a tool or a process that will grow individuals and interactions?<\/p>\n\n\n\n<p>Answering yes to that question shows you the agile way.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><em>The article was first published by <a href=\"https:\/\/opensource.com\/article\/18\/10\/what-coding-dojo-taught-me-about-agile\">opensource.com<\/a>.<\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><a href=\"https:\/\/blog-alexis.monville.com\/en\/books\/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"540\" data-attachment-id=\"3555\" data-permalink=\"https:\/\/blog-alexis.monville.com\/en\/2020\/11\/03\/what-a-coding-dojo-taught-me-about-agile\/books-ads\/\" data-orig-file=\"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2020\/11\/Books-Ads.png?fit=960%2C540&amp;ssl=1\" data-orig-size=\"960,540\" 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=\"Books-Ads\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2020\/11\/Books-Ads.png?fit=960%2C540&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2020\/11\/Books-Ads.png?resize=960%2C540&#038;ssl=1\" alt=\"\" class=\"wp-image-3555\" srcset=\"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2020\/11\/Books-Ads.png?w=960&amp;ssl=1 960w, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2020\/11\/Books-Ads.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2020\/11\/Books-Ads.png?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>In their article,&nbsp;What is agile?, Jen Krieger, Daniel Oh, and Matt Takane discuss what we at Red Hat consider the most important sentence of the&nbsp;Agile Manifesto: \u201cWe are uncovering better ways of developing software by doing it and helping others do it.\u201d I like this sentence because it helps to understand why we could apply [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3553,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"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":""},"categories":[1],"tags":[],"class_list":["post-3552","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2020\/11\/pexels-photo-1181472.jpeg?fit=1880%2C1255&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/paNjQG-Vi","jetpack-related-posts":[{"id":1675,"url":"https:\/\/blog-alexis.monville.com\/en\/2013\/11\/07\/richard-et-lopen-source\/","url_meta":{"origin":3552,"position":0},"title":"Richard and Open Source&#8230;","author":"Alexis","date":"November 7, 2013","format":false,"excerpt":"Do you know this guy? It's Richard Stallman , the initiator of the free software movement ( the gnu movement celebrates its 30th anniversary this year ). I use this picture of Richard Stallman in a presentation I gave on several occasions (AgileTour Brussels, Open World Forum, French Scrum User\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/blog-alexis.monville.com\/en\/category\/all\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311rms-bw-scaled.jpeg?fit=1200%2C868&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311rms-bw-scaled.jpeg?fit=1200%2C868&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311rms-bw-scaled.jpeg?fit=1200%2C868&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311rms-bw-scaled.jpeg?fit=1200%2C868&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311rms-bw-scaled.jpeg?fit=1200%2C868&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1643,"url":"https:\/\/blog-alexis.monville.com\/en\/2013\/08\/28\/the-agile-and-open-source-way\/","url_meta":{"origin":3552,"position":1},"title":"The Agile and Open Source Way","author":"Alexis","date":"August 28, 2013","format":false,"excerpt":"This new session about The Agile and Open Source Way received great feedbacks from Open World Forum attendees. Attendees from this conference knew a lot more about open source software than the attendees of my previous session in Brussels. They were not knowing so much about the organization of the\u2026","rel":"","context":"In &quot;Europe&quot;","block_context":{"text":"Europe","link":"https:\/\/blog-alexis.monville.com\/en\/category\/international\/europe\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/20130810052911715_e8ef7012c8_b.jpg?fit=1024%2C683&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/20130810052911715_e8ef7012c8_b.jpg?fit=1024%2C683&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/20130810052911715_e8ef7012c8_b.jpg?fit=1024%2C683&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/20130810052911715_e8ef7012c8_b.jpg?fit=1024%2C683&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2066,"url":"https:\/\/blog-alexis.monville.com\/en\/2015\/05\/21\/ponts-et-hierarchies\/","url_meta":{"origin":3552,"position":2},"title":"Bridges and Hierarchy","author":"Alexis","date":"May 21, 2015","format":false,"excerpt":"Mark McLoughlin delivered the Red Hat Keynote, on the morning of the second day of the Openstack Summit in Vancouver. During the afternoon, he delivered a more intimate talk about the governance of the Openstack project. The main idea is that, the new Big Tent organization model will allow the\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/blog-alexis.monville.com\/en\/category\/all\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/05\/vancouver-bkgd-orange-New.jpg?fit=1200%2C519&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/05\/vancouver-bkgd-orange-New.jpg?fit=1200%2C519&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/05\/vancouver-bkgd-orange-New.jpg?fit=1200%2C519&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/05\/vancouver-bkgd-orange-New.jpg?fit=1200%2C519&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/05\/vancouver-bkgd-orange-New.jpg?fit=1200%2C519&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4233,"url":"https:\/\/blog-alexis.monville.com\/en\/2023\/10\/28\/the-essence-of-leadership-insights-from-agile-tour-bordeaux\/","url_meta":{"origin":3552,"position":3},"title":"The Essence of Leadership: Insights from Agile Tour Bordeaux","author":"Alexis","date":"October 28, 2023","format":false,"excerpt":"At the recent Agile Tour Bordeaux conference, attendees had a unique opportunity on Friday afternoon: a segment dedicated solely to exploring ideas through open space technology. Within this dynamic framework, I had the privilege of conducting a workshop that probed the nature of leadership. The high participation and engagement from\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/blog-alexis.monville.com\/en\/category\/all\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2023\/10\/2023-10-27-16.16.06-scaled-e1698485041542.jpg?fit=1200%2C1012&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2023\/10\/2023-10-27-16.16.06-scaled-e1698485041542.jpg?fit=1200%2C1012&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2023\/10\/2023-10-27-16.16.06-scaled-e1698485041542.jpg?fit=1200%2C1012&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2023\/10\/2023-10-27-16.16.06-scaled-e1698485041542.jpg?fit=1200%2C1012&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2023\/10\/2023-10-27-16.16.06-scaled-e1698485041542.jpg?fit=1200%2C1012&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1671,"url":"https:\/\/blog-alexis.monville.com\/en\/2013\/11\/05\/french-scrum-user-group-google\/","url_meta":{"origin":3552,"position":4},"title":"French Scrum User Group @Google","author":"Alexis","date":"November 5, 2013","format":false,"excerpt":"Only 5 hands went up when I asked the question: \"who already contribute to a free or open source software?\". This French Scrum User Group conference hosted by Google in Paris was really \"agile\", and definitely not \"open source\". The time frame was a little bit short to cover in\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/blog-alexis.monville.com\/en\/category\/all\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311SUG-The-Agile-and-Open-Source-Way.png?fit=1024%2C768&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311SUG-The-Agile-and-Open-Source-Way.png?fit=1024%2C768&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311SUG-The-Agile-and-Open-Source-Way.png?fit=1024%2C768&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2015\/09\/201311SUG-The-Agile-and-Open-Source-Way.png?fit=1024%2C768&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2923,"url":"https:\/\/blog-alexis.monville.com\/en\/2019\/06\/30\/do-cultural-differences-influence-the-adoption-of-agile\/","url_meta":{"origin":3552,"position":5},"title":"Do Cultural Differences Really Block Agile Adoption?","author":"Alexis","date":"June 30, 2019","format":false,"excerpt":"In today\u2019s episode, J\u00e9r\u00f4me Bourgeon and I will explore the question of cultural differences and their influence on the adoption of agile.","rel":"","context":"In &quot;Le Podcast&quot;","block_context":{"text":"Le Podcast","link":"https:\/\/blog-alexis.monville.com\/en\/category\/podcast\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog-alexis.monville.com\/en\/wp-content\/uploads\/sites\/2\/2019\/06\/Le-Podcast-Jerome.png?fit=400%2C400&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/posts\/3552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/comments?post=3552"}],"version-history":[{"count":2,"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/posts\/3552\/revisions"}],"predecessor-version":[{"id":3556,"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/posts\/3552\/revisions\/3556"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/media\/3553"}],"wp:attachment":[{"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/media?parent=3552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/categories?post=3552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog-alexis.monville.com\/en\/wp-json\/wp\/v2\/tags?post=3552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}