{"id":6966,"date":"2020-12-17T12:15:58","date_gmt":"2020-12-17T10:15:58","guid":{"rendered":"https:\/\/www.synthesis.co.za\/?p=6966"},"modified":"2020-12-17T12:15:58","modified_gmt":"2020-12-17T10:15:58","slug":"principles-of-flow-how-to-move-fast-and-not-break-things","status":"publish","type":"post","link":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/","title":{"rendered":"Principles of flow: How to move fast and not break things"},"content":{"rendered":"<h4>Source: ITWeb<\/h4>\n<h4 class=\"itw-blurb mt-4\">By Jonty Sidney, Synthesis Senior Cloud &amp; DevOps Engineer<\/h4>\n<p class=\"itw-blurb mt-4\"><strong>By automating the software build and deployment process, a team can truly begin to move quicker, reducing the number of catastrophic errors in their applications.<\/strong><\/p>\n<p>Dr Eliyahu Goldratt developed the theory of constraints in his 1984 book \u201cThe Goal\u201d. The goal, in terms of this theory, is to identify and eliminate the process(es) in a system that hold the overall system back.<\/p>\n<p>Often known as a bottleneck or a constraint, when identified and corrected, we create a more streamlined and effective process, and we start delivering value quicker to our customers.<\/p>\n<p>How does this relate to DevOps and deploying software? Surely a discussion of constraints hardly seems relevant. Can software development be viewed as a factory floor in which different processes take place in a specific order to deliver a product to our end customer?<\/p>\n<p>While there is no physical product to show, the modern development process could resemble a factory\u2019s assembly line.<\/p>\n<p>If so, what are the bottlenecks and constraints in the software development lifecycle? Anyone who has been involved in a software project will most likely answer that the process of moving code from a developer\u2019s computer to a usable system delivering value to end-users is the longest part of a project. This process is known by many names: deployment, going-live, promoting, to production and others. However, to paraphrase Shakespeare, \u201cWhat&#8217;s in a name?\u201d That which we call installing software.By any other name would be just as painful and dangerous.<\/p>\n<p>To understand how this process became the bottleneck in most projects, it would be useful to understand the traditional approach to building software.<\/p>\n<p>Historically, a developer would simply write code. Once completed, they would hand that code over to a tester to validate functionality. Once the tester had concluded their suite of tests, the results would be handed back to the developer(s) to correct.<\/p>\n<p>This backwards and forwards would continue until all bugs, issues or improvements had been made. Next, the code would be given to the operations team to install and configure on the correct set of servers. Again, more issues are discovered that need fixing. This back-and-forth process continues until finally the system was stable and could be released to users.<\/p>\n<p>Most would reasonably feel that the process above seems time-consuming, laborious and difficult to follow. This is exactly the point \u2013 and what is wrong with this approach of developing software. If the theory of constraints is applied \u2013 as it is applied in the DevOps Handbook \u2013 the following causes of this bottleneck can be identified:<\/p>\n<ul>\n<li><b>Multiple handovers:<\/b>\u00a0Code is passed between various personnel (eg: testers, operations, etc).<\/li>\n<\/ul>\n<ul>\n<li><b>Large amounts of re-work and correction:\u00a0<\/b>Whenever a problem is found, the code needs to be handed back to the developer for them to fix it. This happens often and repeatedly.<\/li>\n<\/ul>\n<ul>\n<li><b>Large amounts of work in progress:<\/b>\u00a0Since a new feature cannot truly be said to be \u2018done\u2019 until all the handoffs and rework is complete, development teams are always going back to work done weeks ago. Consequently, the number of open tasks grows exponentially, and developers are forced to jump between them.<\/li>\n<\/ul>\n<ul>\n<li><b>Large batch sizes:<\/b>\u00a0The result of all these painful experiences is that software teams avoid deployments until they are necessary. Consequently, more and more features are included in each deployment. The upshot of this is that deployments affect larger sections of a system and have a larger chance of unexpected problems. As time goes on, deployments become less and less frequent because of these unexpected problems. This just creates a bigger issue \u2013 a negative feedback loop that simply amplifies the pain of deployments.<\/li>\n<\/ul>\n<div>\n<div class=\"itw-image-article mb-3\">\n<div class=\"itw-content-image\"><picture><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w320-h108\" media=\"(max-width:320px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w360-h121\" media=\"(max-width:360px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w375-h126\" media=\"(max-width:375px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w415-h139\" media=\"(max-width:415px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w768-h257\" media=\"(max-width:768px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w816-h273\" media=\"(max-width:970px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w671-h225\" media=\"(max-width:971px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w724-h243\" media=\"(max-width:1024px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w800-h268\" media=\"(max-width:1100px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w816-h273\" media=\"(max-width:1200px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w816-h273\" media=\"(max-width:1280px)\" \/><source srcset=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk=w816-h273\" media=\"(min-width: 1280px)\" \/><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/lUOS780z4pt0OnPcUtVPlU0Adfqi-d-NQJ6LQWmmmej0Kg2b-f5W0WtKymsSBnJr-ttGXm6MrE9QOUMWTe_59zk\" alt=\"\" \/><\/picture><\/div>\n<\/div>\n<\/div>\n<p>This all sounds laborious, but can it be changed? The answer is the \u201cFirst way of DevOps \u2013 the principles of flow\u201d.<\/p>\n<p>It may seem optimistic, but by automating the software build and deployment process, a team can truly begin to move quicker, reducing the number of catastrophic errors in their applications and increase the availability of their systems. This can be achieved in the following ways:<\/p>\n<ul>\n<li><b>Automate testing:<\/b>\u00a0If developers begin to take personal responsibility for ensuring their code is correct, they begin to write their own tests which they include in their automated build pipelines. They no longer solely rely on the work of dedicated testers. When this happens, bugs and other errors are discovered and fixed sooner.<\/li>\n<\/ul>\n<ul>\n<li><b>Practise automated deployments:<\/b>\u00a0With the advent of tools such as Jenkins, CircleCI, Travis and others, it has become very possible to rebuild and redeploy our applications more and more often. No longer are developers beholden to operations teams to deploy new code to testing environments. This allows quick and immediate feedback from a version of the application if anything is wrong. While there is still re-work required, it is achieved at a much quicker pace with smaller amounts of code.<\/li>\n<\/ul>\n<ul>\n<li><b>Enable and architect for low-risk releases:<\/b>\u00a0As developers embrace more and more automation, the team at large can deploy code to production more often. Additionally, since the code has been extensively tested at every point, there is much less risk involved in releasing the code to production.<\/li>\n<\/ul>\n<p>When the above is achieved, then the features, fixes and new applications will flow to customers and users with much less resistance and much less pain. This can be attributed to two key reasons. Firstly, the rigorous, automated testing guarantees that the code is not broken. Secondly \u2013 and more significantly \u2013 the deployment process has been run so many times that the entire team understands how it works. This allows the team to identify and resolve any (unlikely) problems.<\/p>\n<p>At the time of writing, South Africa is once again struggling with a period of load-shedding and blackouts caused by a lack of maintenance of old, legacy systems. It is infuriating when fixes, repairs and updates take longer than expected.<\/p>\n<p>Yet, we forget that we create the exact same experience for the users of our systems. We ignore our bottlenecks and create large batches of work and our systems become brittle and difficult to fix. Our systems are \u2013 often \u2013 as sensitive and fragile as the power grid in South Africa.<\/p>\n<p>If we \u2013 the entire software development community \u2013 embrace the first way of DevOps, changes and updates to our system will no longer be fraught with danger. With the power of continuous builds, testing and deployments, teams can be confident that their systems can easily be updated and fixed.<\/p>\n<p><strong><a href=\"https:\/\/www.synthesis.co.za\/the-principles-of-feedback-taking-monitoring-to-the-next-level\/\">Read the next article in this series:<\/a> <a href=\"https:\/\/www.synthesis.co.za\/the-principles-of-feedback-taking-monitoring-to-the-next-level\/\">The principles of feedback: Taking monitoring to the next level<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Source: ITWeb By Jonty Sidney, Synthesis Senior Cloud &amp; DevOps Engineer By automating the software build and deployment process, a team can truly begin to move quicker, reducing the number of catastrophic errors in their applications. Dr Eliyahu Goldratt developed the theory of constraints in his 1984 book \u201cThe Goal\u201d. The goal, in terms of [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":6967,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"episode_type":"","audio_file":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[34],"tags":[],"ptype":[11],"sectors":[],"class_list":["post-6966","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conversation","ptype-articles"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Principles of flow: How to move fast and not break things - Synthesis<\/title>\n<meta name=\"description\" content=\"Principles of flow: How to move fast and not break things. By automating the software build and deployment process, a team can truly begin to move quicker.\" \/>\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.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Principles of flow: How to move fast and not break things\" \/>\n<meta property=\"og:description\" content=\"Principles of flow: How to move fast and not break things. By automating the software build and deployment process, a team can truly begin to move quicker.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/\" \/>\n<meta property=\"og:site_name\" content=\"Synthesis\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-17T10:15:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1594\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Synthesis Staff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Synthesis Staff\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/\"},\"author\":{\"name\":\"Synthesis Staff\",\"@id\":\"https:\/\/www.synthesis.co.za\/#\/schema\/person\/a1cde004c078942c45be61a61cd6ae2c\"},\"headline\":\"Principles of flow: How to move fast and not break things\",\"datePublished\":\"2020-12-17T10:15:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/\"},\"wordCount\":1102,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.synthesis.co.za\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg\",\"articleSection\":[\"Conversations\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/\",\"url\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/\",\"name\":\"Principles of flow: How to move fast and not break things - Synthesis\",\"isPartOf\":{\"@id\":\"https:\/\/www.synthesis.co.za\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg\",\"datePublished\":\"2020-12-17T10:15:58+00:00\",\"description\":\"Principles of flow: How to move fast and not break things. By automating the software build and deployment process, a team can truly begin to move quicker.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage\",\"url\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg\",\"contentUrl\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg\",\"width\":2560,\"height\":1594,\"caption\":\"Principles of flow: How to move fast and not break things\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.synthesis.co.za\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Principles of flow: How to move fast and not break things\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.synthesis.co.za\/#website\",\"url\":\"https:\/\/www.synthesis.co.za\/\",\"name\":\"Synthesis\",\"description\":\"Specialized Software Development\",\"publisher\":{\"@id\":\"https:\/\/www.synthesis.co.za\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.synthesis.co.za\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.synthesis.co.za\/#organization\",\"name\":\"Synthesis, a Leading Software Development Company\",\"url\":\"https:\/\/www.synthesis.co.za\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.synthesis.co.za\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2016\/03\/Synthesis-logo.jpg\",\"contentUrl\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2016\/03\/Synthesis-logo.jpg\",\"width\":1036,\"height\":220,\"caption\":\"Synthesis, a Leading Software Development Company\"},\"image\":{\"@id\":\"https:\/\/www.synthesis.co.za\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.synthesis.co.za\/#\/schema\/person\/a1cde004c078942c45be61a61cd6ae2c\",\"name\":\"Synthesis Staff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.synthesis.co.za\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/03\/cropped-favicon-1-96x96.png\",\"contentUrl\":\"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/03\/cropped-favicon-1-96x96.png\",\"caption\":\"Synthesis Staff\"},\"url\":\"https:\/\/www.synthesis.co.za\/author\/staff\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Principles of flow: How to move fast and not break things - Synthesis","description":"Principles of flow: How to move fast and not break things. By automating the software build and deployment process, a team can truly begin to move quicker.","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.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/","og_locale":"en_US","og_type":"article","og_title":"Principles of flow: How to move fast and not break things","og_description":"Principles of flow: How to move fast and not break things. By automating the software build and deployment process, a team can truly begin to move quicker.","og_url":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/","og_site_name":"Synthesis","article_published_time":"2020-12-17T10:15:58+00:00","og_image":[{"width":2560,"height":1594,"url":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg","type":"image\/jpeg"}],"author":"Synthesis Staff","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Synthesis Staff","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#article","isPartOf":{"@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/"},"author":{"name":"Synthesis Staff","@id":"https:\/\/www.synthesis.co.za\/#\/schema\/person\/a1cde004c078942c45be61a61cd6ae2c"},"headline":"Principles of flow: How to move fast and not break things","datePublished":"2020-12-17T10:15:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/"},"wordCount":1102,"commentCount":0,"publisher":{"@id":"https:\/\/www.synthesis.co.za\/#organization"},"image":{"@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage"},"thumbnailUrl":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg","articleSection":["Conversations"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/","url":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/","name":"Principles of flow: How to move fast and not break things - Synthesis","isPartOf":{"@id":"https:\/\/www.synthesis.co.za\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage"},"image":{"@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage"},"thumbnailUrl":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg","datePublished":"2020-12-17T10:15:58+00:00","description":"Principles of flow: How to move fast and not break things. By automating the software build and deployment process, a team can truly begin to move quicker.","breadcrumb":{"@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#primaryimage","url":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg","contentUrl":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/12\/pexels-viktoria-goda-1107495-scaled-1.jpg","width":2560,"height":1594,"caption":"Principles of flow: How to move fast and not break things"},{"@type":"BreadcrumbList","@id":"https:\/\/www.synthesis.co.za\/principles-of-flow-how-to-move-fast-and-not-break-things\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.synthesis.co.za\/"},{"@type":"ListItem","position":2,"name":"Principles of flow: How to move fast and not break things"}]},{"@type":"WebSite","@id":"https:\/\/www.synthesis.co.za\/#website","url":"https:\/\/www.synthesis.co.za\/","name":"Synthesis","description":"Specialized Software Development","publisher":{"@id":"https:\/\/www.synthesis.co.za\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.synthesis.co.za\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.synthesis.co.za\/#organization","name":"Synthesis, a Leading Software Development Company","url":"https:\/\/www.synthesis.co.za\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.synthesis.co.za\/#\/schema\/logo\/image\/","url":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2016\/03\/Synthesis-logo.jpg","contentUrl":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2016\/03\/Synthesis-logo.jpg","width":1036,"height":220,"caption":"Synthesis, a Leading Software Development Company"},"image":{"@id":"https:\/\/www.synthesis.co.za\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.synthesis.co.za\/#\/schema\/person\/a1cde004c078942c45be61a61cd6ae2c","name":"Synthesis Staff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.synthesis.co.za\/#\/schema\/person\/image\/","url":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/03\/cropped-favicon-1-96x96.png","contentUrl":"https:\/\/www.synthesis.co.za\/wp-content\/uploads\/2020\/03\/cropped-favicon-1-96x96.png","caption":"Synthesis Staff"},"url":"https:\/\/www.synthesis.co.za\/author\/staff\/"}]}},"_links":{"self":[{"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/posts\/6966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/comments?post=6966"}],"version-history":[{"count":0,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/posts\/6966\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/media\/6967"}],"wp:attachment":[{"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/media?parent=6966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/categories?post=6966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/tags?post=6966"},{"taxonomy":"ptype","embeddable":true,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/ptype?post=6966"},{"taxonomy":"sectors","embeddable":true,"href":"https:\/\/www.synthesis.co.za\/wp-json\/wp\/v2\/sectors?post=6966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}