{"id":796,"date":"2019-01-22T19:08:49","date_gmt":"2019-01-22T18:08:49","guid":{"rendered":"http:\/\/agilerasmus.com\/wordpress\/?p=796"},"modified":"2019-01-22T12:35:09","modified_gmt":"2019-01-22T11:35:09","slug":"uncovering-better-ways-of-developing-software","status":"publish","type":"post","link":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/","title":{"rendered":"Uncovering better ways of developing software"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Over the years I have helped numerous teams in uncovering new ways of developing software and challenging them in their day-to-day collaboration patterns. One of best setups I have used is called mob-programming. <\/p>\n\n\n\n<p>Mob-programming is pair-programming on steroids: <\/p>\n\n\n\n<ul><li>traditional pair-programming involves two developers; one writing code and one reviewing it.<\/li><li>mob-programming invovles a whole group of team members; one driving the keyboard and mouse while the rest navigates the input<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote\"><p> The basic idea of mob-programming is that ideas must go from your head through someone else&#8217;s hands before getting into the computer.  <\/p><cite>Rasmus Kaae, agile coach<\/cite><\/blockquote>\n\n\n\n<p><\/p>\n\n\n\n<p>Mob-programming consists of two roles:<\/p>\n\n\n\n<ul><li>Driver: The person sitting in front of the keyboard. He types whatever input that the navigators ask of him. <\/li><li>Navigator: The group of people standing behind the driver. They discuss ideas and give input to the driver informing him which way to go and what to write. <\/li><\/ul>\n\n\n\n<p>The roles swap in round-robin style after a period of 10-15 minutes. When everyone has been in the driver role the team conduct a small retrospective to improve the proces for the next round. <\/p>\n\n\n\n<p>A generic agenda for a day of mob-programming could be:<\/p>\n\n\n\n<ul><li>Welcome and introduction to mob-programming<\/li><li>Specify hypothesis for the day<\/li><li>Self-organize into cross-functional groups (1 or more)<\/li><li>Mob-programming rounds of 15 minutes (periodical retrospective)<\/li><li>Demo the output of the work<\/li><li>Agree on what next steps for the work<\/li><li>Discuss lessons learned from mob-programming <\/li><\/ul>\n\n\n\n<p>I use a hypothesis driven development approach to setting up the event. The hypothesis is defined in the beginnig of the day, revisited in retrospectives and evaluated at the end. As such it&#8217;s important to be realistically ambitious when defining the outcome and success measure.  <\/p>\n\n\n\n<p>To define the hypothesis I use this template:<\/p>\n\n\n\n<ul><li>We believe that &lt;this capability><\/li><li>Will result in &lt;this outcome><\/li><li>We will know we have succeeded when &lt;we see a measureable signal><\/li><\/ul>\n\n\n\n<p>An example hypothesis could be: <\/p>\n\n\n\n<ul><li>We believe that <strong>time registration on smartphone \/ tablet<\/strong><\/li><li>Will result in <strong>improved data quality of registrations and less time spent on administration<\/strong><\/li><li>We will know we have succeeded when <strong>we see employees spending less than one hour on administration per week and <\/strong><\/li><\/ul>\n\n\n\n<p>Some of the take aways from running the mob-programming are:<\/p>\n\n\n\n<ul><li>You get to know your colleagues better<\/li><li>You get to work out-side your own domain of expertise<\/li><li>You get to work in a different setting than normal<\/li><li>You help your team &#8220;not being stuck&#8221;<\/li><li>You take shared responsibility of the produced work<\/li><\/ul>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Over the years I have helped numerous teams in uncovering new ways of developing software and challenging them in their day-to-day collaboration patterns. One of best setups I have used is called mob-programming. Mob-programming is&#8230;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":798,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[3,21],"tags":[5,118],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Uncovering better ways of developing software - @agilerasmus<\/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:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uncovering better ways of developing software - @agilerasmus\" \/>\n<meta property=\"og:description\" content=\"Over the years I have helped numerous teams in uncovering new ways of developing software and challenging them in their day-to-day collaboration patterns. One of best setups I have used is called mob-programming. Mob-programming is...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/\" \/>\n<meta property=\"og:site_name\" content=\"@agilerasmus\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-22T18:08:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-22T11:35:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/01\/startup-594091_1920.jpg?fit=1920%2C1280&#038;ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#website\",\"url\":\"https:\/\/agilerasmus.com\/wordpress\/\",\"name\":\"@agilerasmus\",\"description\":\"agile coach, trainer and scrum master\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/agilerasmus.com\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/01\/startup-594091_1920.jpg?fit=1920%2C1280&ssl=1\",\"contentUrl\":\"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/01\/startup-594091_1920.jpg?fit=1920%2C1280&ssl=1\",\"width\":1920,\"height\":1280},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#webpage\",\"url\":\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/\",\"name\":\"Uncovering better ways of developing software - @agilerasmus\",\"isPartOf\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#primaryimage\"},\"datePublished\":\"2019-01-22T18:08:49+00:00\",\"dateModified\":\"2019-01-22T11:35:09+00:00\",\"author\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096\"},\"breadcrumb\":{\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/agilerasmus.com\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Uncovering better ways of developing software\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/agilerasmus.com\/wordpress\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/agilerasmus.com\/wordpress\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Uncovering better ways of developing software - @agilerasmus","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:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/","og_locale":"en_GB","og_type":"article","og_title":"Uncovering better ways of developing software - @agilerasmus","og_description":"Over the years I have helped numerous teams in uncovering new ways of developing software and challenging them in their day-to-day collaboration patterns. One of best setups I have used is called mob-programming. Mob-programming is...","og_url":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/","og_site_name":"@agilerasmus","article_published_time":"2019-01-22T18:08:49+00:00","article_modified_time":"2019-01-22T11:35:09+00:00","og_image":[{"width":1920,"height":1280,"url":"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/01\/startup-594091_1920.jpg?fit=1920%2C1280&ssl=1","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/agilerasmus.com\/wordpress\/#website","url":"https:\/\/agilerasmus.com\/wordpress\/","name":"@agilerasmus","description":"agile coach, trainer and scrum master","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/agilerasmus.com\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"ImageObject","@id":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#primaryimage","inLanguage":"en-GB","url":"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/01\/startup-594091_1920.jpg?fit=1920%2C1280&ssl=1","contentUrl":"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/01\/startup-594091_1920.jpg?fit=1920%2C1280&ssl=1","width":1920,"height":1280},{"@type":"WebPage","@id":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#webpage","url":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/","name":"Uncovering better ways of developing software - @agilerasmus","isPartOf":{"@id":"https:\/\/agilerasmus.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#primaryimage"},"datePublished":"2019-01-22T18:08:49+00:00","dateModified":"2019-01-22T11:35:09+00:00","author":{"@id":"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096"},"breadcrumb":{"@id":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/agilerasmus.com\/wordpress\/uncovering-better-ways-of-developing-software\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/agilerasmus.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Uncovering better ways of developing software"}]},{"@type":"Person","@id":"https:\/\/agilerasmus.com\/wordpress\/#\/schema\/person\/cc0de41731dfcf8697fd64dadadcf096","name":"admin","image":{"@type":"ImageObject","@id":"https:\/\/agilerasmus.com\/wordpress\/#personlogo","inLanguage":"en-GB","url":"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/024753e28bdb374a97740a4d5572755e?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/agilerasmus.com\/wordpress\/author\/admin\/"}]}},"jetpack_featured_media_url":"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/01\/startup-594091_1920.jpg?fit=1920%2C1280&ssl=1","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8dzln-cQ","jetpack-related-posts":[{"id":815,"url":"https:\/\/agilerasmus.com\/wordpress\/mob-programming\/","url_meta":{"origin":796,"position":0},"title":"Mob-programming","date":"February 18, 2019","format":false,"excerpt":"Kender I den situation hvor hverdagen i dit team er blevet lidt for meget brun sovs og kartofler? I refiner p\u00e5 en m\u00e5de I fandt frem til for 6 m\u00e5neder siden, I nedbryder i tasks som I l\u00e6rte da I var p\u00e5 Scrum kursus og I producerer i Sprintet som\u2026","rel":"","context":"In &quot;Dansk&quot;","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/02\/board-3952195_960_720.jpg?fit=960%2C640&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":863,"url":"https:\/\/agilerasmus.com\/wordpress\/from-idea-to-prototype-in-1-day\/","url_meta":{"origin":796,"position":1},"title":"From idea to prototype in 1 day?","date":"May 22, 2019","format":false,"excerpt":"What would be the best way to take a whole-team approach to creating a prototype, refining and planning a Sprint? I'd say a hackathon. Read on to learn more. Before we start, let's define what a hackathon is: \"A hackathon (also known as a hack day, hackfest or codefest) is\u2026","rel":"","context":"In &quot;English&quot;","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2019\/05\/111.jpg?fit=1200%2C1200&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":55,"url":"https:\/\/agilerasmus.com\/wordpress\/doing-scrum-or-being-agile\/","url_meta":{"origin":796,"position":2},"title":"Doing Scrum or being agile?","date":"September 11, 2014","format":false,"excerpt":"Did you know that it is possible to perform Scrum without being Agile - and being Agile is not about following Scrum?I recently participated in a discussion about the differences between the two concepts: Agile and Scrum. Many falsely assume that they are Agile simply due to the fact that\u2026","rel":"","context":"In &quot;English&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2016\/12\/img_4432.jpg?fit=374%2C562&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":360,"url":"https:\/\/agilerasmus.com\/wordpress\/history-of-agile\/","url_meta":{"origin":796,"position":3},"title":"History of &#8220;agile&#8221;","date":"December 19, 2016","format":false,"excerpt":"The term \u201cagile\u201d is a widely used term both in the real world and in software development. But what does it actually mean? Let\u2019s dig in: According to the Merriam-Webster\u2019s thesauraus the word \u201cagile\u201d means \u201chaving a quick resourceful and adaptable character\u201d and \u201cability to move with quick easy grace\u201d.\u2026","rel":"","context":"In &quot;English&quot;","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2016\/12\/lost-places-1719531_1920.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":78,"url":"https:\/\/agilerasmus.com\/wordpress\/agile-manifesto-and-common-sense\/","url_meta":{"origin":796,"position":4},"title":"Agile manifesto and common sense?","date":"August 23, 2013","format":false,"excerpt":"Every time I perform a Kanban or Scrum training session, I introduce them to the agile manifesto. This has been defacto in the training material for a couple of years now, but lately I\u2019ve been getting mixed reactions to the content. In the early years people were arguing that it\u2026","rel":"","context":"In &quot;English&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2016\/12\/graph.png?fit=500%2C375&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":454,"url":"https:\/\/agilerasmus.com\/wordpress\/what-happens-after-scrum\/","url_meta":{"origin":796,"position":5},"title":"What happens after Scrum?","date":"June 3, 2017","format":false,"excerpt":"\u00a0 At Scrumday 2017 held in Simcorp I presented parts of the work that I have been involved in and the thoughts that follows an agile transformation. On a personal level \u2013 the journey with Bankdata already started back at Scrumday 2016 where my colleague Claus gave a talk on\u2026","rel":"","context":"In &quot;English&quot;","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/agilerasmus.com\/wordpress\/wp-content\/uploads\/2017\/06\/Slide1.png?fit=960%2C540&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts\/796"}],"collection":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/comments?post=796"}],"version-history":[{"count":2,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts\/796\/revisions"}],"predecessor-version":[{"id":799,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/posts\/796\/revisions\/799"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/media\/798"}],"wp:attachment":[{"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/media?parent=796"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/categories?post=796"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agilerasmus.com\/wordpress\/wp-json\/wp\/v2\/tags?post=796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}