{"id":1520,"date":"2020-02-04T11:00:00","date_gmt":"2020-02-04T11:00:00","guid":{"rendered":"http:\/\/www.smharter.com\/blog\/?p=1520"},"modified":"2021-08-02T15:38:38","modified_gmt":"2021-08-02T14:38:38","slug":"agile-simplicity-vs-not-reinventing-the-wheel","status":"publish","type":"post","link":"https:\/\/www.smharter.com\/blog\/2020\/02\/04\/agile-simplicity-vs-not-reinventing-the-wheel\/","title":{"rendered":"Agile simplicity Vs not reinventing the wheel"},"content":{"rendered":"\n<p> Simplicity has always been considered the essence of Agile Software Development. <br>As in the <em>simple design for&nbsp;<\/em>software development, and in the&nbsp;<em>80\/20&nbsp;Pareto principle<\/em>&nbsp;for the scope and&nbsp;the most valuable features of a product. As in the tenth principle of the Manifesto: \u201cSimplicity&#8211;the art of maximizing the amount of work not done&#8211;is essential.\u201d&nbsp; And as in the&nbsp;<em>lightweight<\/em>&nbsp;adjective used for the Agile frameworks. <\/p>\n\n\n\n<p>Recently the Simplicity in Agile has been challenged by the idea that Agile frameworks, especially the \u201cscaled\u201d ones, should include additional practices, techniques, and processes for&nbsp;not having to reinvent the wheel every time a team\/department\/organisation starts using an Agile framework.&nbsp; <\/p>\n\n\n\n<p>The other side of the argument is that the Agile&nbsp;frameworks (Extreme Programming, Scrum, Kanban, &#8230;) are partially incomplete, intentionally, and fit loosely&nbsp;to leave room for adaptation and manoeuvre&nbsp;to those doing the work on the ground, so they can experiment, learn,&nbsp;adapt and evolve their practices, and ways of working, to fit their specific circumstances. One of the values of the Agile manifesto, after all, is&nbsp; \u201cindividuals and interactions over processes and tools.\u201d &nbsp; <\/p>\n\n\n\n<p>So should Simplicity take precedence?<br>Or should not-reinventing-the-wheel come first? <br>Is there a good trade-off between the Agile Simplicity and&nbsp;not having to reinvent the wheel every time? <\/p>\n\n\n\n<h3 class=\"font-colorPrimary wp-block-heading\"><strong>Below is my take on Agile simplicity<\/strong><\/h3>\n\n\n\n<p> My take is based on one principle and one prerequisite of Agility. <\/p>\n\n\n\n<p>John Gall\u2019s principle from 1975 has often inspired Agile: <\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><em>A complex system that works is invariably found to have evolved from a simple system that worked.&nbsp;<\/em><br><em>A complex system designed from scratch never works and cannot be patched up to make it work. <\/em><br><em>You have to start over with a working simple system.<\/em><\/strong><\/p>\n\n\n\n<p> The idea is that you don\u2019t build from scratch a whole airplane just to try it if it flies only at the end, as someone put it (Giovanni Asproni). When tackling a complex problem, it is more effective starting small and iteratively and incrementally experimenting, learning, adapting and evolving. This idea of iterative incremental refinements permeates Agile.&nbsp; <\/p>\n\n\n\n<p>Even more this&nbsp;principle applies to how teams\/departments\/organisations adopt an Agile&nbsp;framework and agile ways of working.&nbsp; <\/p>\n\n\n\n<p> For them, the principle means it is not possible to define, comprehensively and upfront, an effective way of working even using a hypothetical omni-comprehensive all-encompassing Agile framework and the wisdom of the smartest &#8220;Agile luminary&#8221; to configure\/tailor it. <\/p>\n\n\n\n<p>This is because, for example, that in every team\/department\/organisation&nbsp;the&nbsp;fundamental relationships and the interrelations are different and have a huge and unique impact on which ways of working will be&nbsp;effective there. Therefore such effective ways of working can only be discovered by those doing the work on the ground,  starting small with a framework that is partially incomplete, and incrementally adding only what seems to be needed and not more, and only when is needed and not before. And observing what works in practice, and what doesn\u2019t. This will also lead to novel practices or processes that are not included in any existing framework. <br><br><em>An interesting and less obvious&nbsp;consequence is that there cannot be a recipes book that can tell upfront how to scale a company. Not an expert can design upfront a way to scale a specific company.  Instead the path to the journey of scaling an organisation unfold and reveal itself as you go.<\/em><\/p>\n\n\n\n<p>The final part of my take on Agile simplicity is based on Maneuver Agility (also known as C2 Manoeuvre Agility and&nbsp;C2 Maneuverability), a pre-requisite of Agility described by David S. Alberts as follows:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><em><strong>Maneuver Agility&nbsp;Is&nbsp;the ability to recognise the approach appropriate for the circumstances,&nbsp;<\/strong><\/em><br><em><strong>and to transition to this approach in a timely manner. <\/strong><\/em><br><em><strong>It is a function of the set of approaches available.<\/strong><\/em><\/p>\n\n\n\n<p> It is an ability of&nbsp;those on the ground doing the work. An Agile&nbsp;framework that is as simple as partially incomplete, underspecified, challenges those doing the work to improve iteratively and incrementally experimenting, learning, adapting and evolving their ways of working, since the very start. So they develop this ability to maneuver and they can continue to use it to adapt to the changing circumstances. <\/p>\n\n\n\n<p><em>An interesting and less obvious&nbsp;consequence is that a scaling initiative cannot be driven and directed from an &#8220;Ivory Tower&#8221;, instead those doing the work on the ground should be directly involved in shaping and driving the scaling initiative.<\/em><\/p>\n\n\n\n<p>In conclusion, John Gall\u2019s principle (start small and grow your ways of working) and the pre-requisite of&nbsp;Agility called Maneuver Agility (adapt your ways of working to your current circumstances) suggest&nbsp;that simplicity in Agile is still essential.&nbsp; An omni-comprehensive, all-encompassing, framework would violate John Gall\u2019s principle and neglect the Agility pre-requisite where a simple and generative, seed-like, Agile framework would honour both. <\/p>\n\n\n\n<h3 class=\"font-colorPrimary\"><strong>So what about not reinventing the wheel? Recipe books vs Chefs<\/strong><\/h3>\n\n\n\n<p>Simple Agile\u00a0frameworks exist in the context of a lively lean-agile community <strong>constantly innovating, refining and growing<\/strong> a vast and open knowledge base\u00a0of techniques, practices, and processes and open sets of patterns that complement every Agile framework.  See the Present continuous in the \u2018Uncovering\u2019 at the very beginning of the Agile Manifesto. See also this funny video from Breaking Bad: <a href=\"https:\/\/youtu.be\/X4LOuaMb-yI\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/youtu.be\/X4LOuaMb-yI<\/a><br><br>Those doing the work on the ground should have <strong>direct access<\/strong> to the lean-agile community and such knowledge base, <strong>without limitations, intermediation, or filters<\/strong>, where they can find options and inspirations they can use to adapt, and evolve their ways of working, with the awareness that their specific problem may not find an answer there and instead they may need to invent novel practices (read here <a rel=\"noreferrer noopener\" aria-label=\"how to get involved in the lean-agile community (opens in a new tab)\" href=\"http:\/\/smharter.com\/blog\/2020\/02\/03\/how-to-get-involved-in-the-lean-agile-community\/\" target=\"_blank\">how to get involved in the lean-agile community<\/a>). <\/p>\n\n\n\n<p> This is what we did in the beginning, about 20 years ago, and more recently this concept has been reminded to me by Al Shalloway.<\/p>\n\n\n\n<p> These below are a few historical examples of the open knowledge base&nbsp;of solutions and patterns from the lean-agile community: <br>&#8211; Portland Pattern Repository: &nbsp;<a href=\"http:\/\/wiki.c2.com\/?PortlandPatternRepository\">http:\/\/wiki.c2.com\/?PortlandPatternRepository<\/a> <br>&#8211;&nbsp;Scrum Pattern Community:&nbsp;<a href=\"http:\/\/www.scrumplop.org\/\">http:\/\/www.scrumplop.org\/<\/a> <br>&#8211;&nbsp;Top 100 Agile Books:&nbsp;<a href=\"https:\/\/www.goodreads.com\/list\/show\/41715.Top_100_Agile_Books\">https:\/\/www.goodreads.com\/list\/show\/41715.Top_100_Agile_Books<\/a> <br>&#8211; AgileAlliance on Agile:&nbsp;<a href=\"https:\/\/www.agilealliance.org\/agile101\/\">https:\/\/www.agilealliance.org\/agile101\/<\/a> <br>&#8211; &#8230; <br>And here a google doc with similar lists: <a href=\"https:\/\/tinyurl.com\/wholeorg-agile\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tinyurl.com\/wholeorg-agile<\/a><\/p>\n\n\n\n<h3 class=\"font-colorPrimary\"><strong>Closing words<\/strong><\/h3>\n\n\n\n<p>Chet Hendrickson points out that since Agile is simple, a scaled version of Agile should also be that simple, or even simpler. Otherwise, it will no longer be Agile (excerpt from&nbsp;The Nature of Software Development, by&nbsp;Ron Jeffries, 2015). <\/p>\n\n\n\n<p>SAFe and DaD seem to be in a very different place. <br>Other less normative and less paternalistic scaled frameworks seem to violate the idea of simplicity too, even if to a lesser extent.<\/p>\n\n\n\n<p>What are the consequences? What is your take on this matter?<br><br>Do we really need scaled frameworks then? <br>The <a href=\"http:\/\/www.smharter.com\/blog\/how-large-successful-companies-achieve-agility-at-scale\/\">example of these companies<\/a> tells us that we may not.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\">\n\n<img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"397\" src=\"https:\/\/www.smharter.com\/blog\/wp-content\/uploads\/turbocharge.png\" alt=\"\" class=\"wp-image-1974\"><\/figure>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"text-ads\">\n\t<h3>Turbocharge your scaling initiative.<\/h3>\n\t<p>\n\t<br>\n\tSee how we can help.\n\t<br>\n\tYou, your team, your organisation.\n\t<br><br>\n\t<\/p>\n\n\t<div class=\"local-scroll\">\n\t\t<a href=\"\/coaching.html#one_session\" target=\"_blank\" class=\" btn elastic-btn-mod btn-mod btn-dark btn-medium btn-round\" onclick=\"ga('send','event','Blog scaling-ads','Click one_session button','Virtual Mentoring');\" rel=\"noopener noreferrer\">\n\t\tVirtual Mentoring\n\t\t<\/a> \n\n\n\t\t<a href=\"\/coaching.html#coaching_as_a_service\" target=\"_blank\" class=\"btn elastic-btn-mod btn-mod btn-dark btn-medium btn-round\" onclick=\"ga('send','event','Blog scaling-ads','Click coaching_as_a_service button','Virtual Coaching As a Service');\" rel=\"noopener noreferrer\">\n\t\tVirtual Coaching As a Service \n\t\t<\/a>\n\t<\/div>\n<\/div>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Revisiting the trade-off between simplicity and not reinventing the wheel. Finding out if scaled framework are Agile.<\/p>\n","protected":false},"author":2,"featured_media":1679,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1520","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lean-agile"],"_links":{"self":[{"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/posts\/1520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/comments?post=1520"}],"version-history":[{"count":31,"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/posts\/1520\/revisions"}],"predecessor-version":[{"id":2439,"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/posts\/1520\/revisions\/2439"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/media\/1679"}],"wp:attachment":[{"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/media?parent=1520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/categories?post=1520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smharter.com\/blog\/wp-json\/wp\/v2\/tags?post=1520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}