{"id":596,"date":"2013-06-07T12:21:40","date_gmt":"2013-06-07T16:21:40","guid":{"rendered":"http:\/\/blog.agilityfeat.com\/?p=596"},"modified":"2013-06-07T12:21:40","modified_gmt":"2013-06-07T16:21:40","slug":"why-continuous-deployment-is-important-for-you","status":"publish","type":"post","link":"http:\/\/34.200.113.64\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/","title":{"rendered":"Why Continuous Deployment is important for you"},"content":{"rendered":"<p>Last week I went to the Lean Start-up Meetup in Boston where\u00a0Florian Motlik of <a href=\"https:\/\/www.codeship.io\/\">Codeship<\/a> lead a discussion with Amos Benninga from <a href=\"http:\/\/grabcad.com\/\">GrabCad<\/a>, Dan Rowe from <a href=\"http:\/\/www.etsy.com\/\">ETSY <\/a>and Ken Eimer from <a href=\"http:\/\/www.insightsquared.com\/\">InsightSquared<\/a> on Continuous Deployment. The presentation was excellent, a great mix of best practices and practical application. Their comments rang true with our experiences too so I&#8217;ve summarized below why Continuous Deployment should matter to you as well.<\/p>\n<h2>What is Continuous Deployment<\/h2>\n<p><a href=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2013\/06\/WhirlingDervish.jpeg\"><img loading=\"lazy\" class=\"size-full wp-image-597 alignleft\" alt=\"Lean Startup, Continuous Deployment, Agilityfeat\" src=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2013\/06\/WhirlingDervish.jpeg\" width=\"180\" height=\"180\" \/><\/a><\/p>\n<p>Continuous\u00a0 Deployment\u00a0 is a software development practice\u00a0 is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily &#8211; leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. After those integrations are automatically tested and approved, they are deployed to production immediately.<\/p>\n<h2><\/h2>\n<p><br clear=\"left\"><\/p>\n<h2>Why Continuous Deployment<\/h2>\n<ol>\n<li><strong>Shortens feedback loop with the customer:<\/strong> This is the most obvious and \u201cLean Start-upy\u201d reason for Continuous Deployment. By pushing features out to customers multiple times a day, you are decreasing the time required to find out how customers are using the code. When code sits in an unpublished branch, it\u2019s not doing your business much good.<\/li>\n<li><strong>Bug prevention improved:<\/strong> Continuous Deployment means implementing rigorous automated testing. Developers must write test scripts before coding and are constantly enhancing the library of tests for a system that must be passed in order for code to be merged. Developers enhance their skills be improving against tests over time and deliver higher quality code via automated testing. Furthermore, because code is pushed to production more quickly rather than sitting in a branch, conflicts from merging branches are minimized.<\/li>\n<li><strong>Bug fixing made more simple:<\/strong> By practicing Continuous Deployment, you are sending smaller changes into production more frequently. This means that these changes are easier to examine and pinpoint issues because you have fewer people working on each deployment (it\u2019s easier to talk through the issues with only a few hands on the code) and because the changes are smaller, they can be analyzed more quickly. Furthermore, Continuous Deployment, by it\u2019s nature demands shorter deploy times so fixes can be pushed quickly once a solution is found. Rather than rolling back problem code, in Continuous Deployment, you&#8217;re rolling pre-tested code forward(via automated tools).<\/li>\n<li><strong>Developers love it:<\/strong> Continuous Deployment has the attribute of pushing more responsibility and ownership to developers. In Continuous Deployment, developers must commit their code to the main branch after passing thorough, automated testing. And since their code is not being released with a bunch of changes from other developers, developers can truly have full responsibility for the impact of their code. This responsibility leads to more ownership for developers. Equally important however, is the fact that developers can see their code working in production faster and get the satisfaction of seeing their work in the wild (instead of languishing in a branch).<\/li>\n<\/ol>\n<h2>Tips for getting started with Continuous Deployment<\/h2>\n<p><strong>Continuous Deployment isn\u2019t easy.<\/strong> It requires changes for developers as well as product owners. You may encounter resistance from all parts of the business. One of the best ways to counter this resistance and to get started is by continuously deploying to your staging environment. As development teams work through the process of building tests for their code and product owners get used to working in smaller chunks, some of the resistance to continuous deployment should begin to subside. Establishing Continuous Deployment practices with internal users and stakeholders is a great way to leave the training wheels on and build confidence in the tests that you have built to verify your code.<\/p>\n<p>Another great step to take is to create <a href=\"http:\/\/code.flickr.net\/2009\/12\/02\/flipping-out\/\">feature flags<\/a> in the code. Feature flags are used to disable functionality for some or all users. Said another way, feature flags allow developers to turn features on or off at runtime to test out new functionality. They provide a option to remove a feature that is causing problems for a site without the dreaded \u201croll back\u201d.<\/p>\n<p>Continuous Deployment is not a silver bullet in and of itself. However, when coupled with monitoring and visibility, it can be a powerful tool for driving innovation and delivering high value (and quality) code. Performance monitoring is critical to identifying code that may have passed automated testing standards but is overloading the system. Similarly, business metrics must be monitored (and delivered in a near real time manner) to ensure that new features aren\u2019t hurting the business.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Last week I went to the Lean Start-up Meetup in Boston where\u00a0Florian Motlik of Codeship lead a discussion with Amos Benninga from GrabCad, Dan Rowe from ETSY and Ken Eimer from InsightSquared on Continuous Deployment. The presentation was excellent, a great mix of best practices and practical application. Their comments rang true with our experiences [&hellip;]<\/p>","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":""},"categories":[4,88],"tags":[5,65,66,39,35],"jetpack_featured_media_url":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Why Continuous Deployment is important for you - AgilityFeat Panama Software Test Center<\/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:\/\/agilityfeatpanama.com\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why Continuous Deployment is important for you - AgilityFeat Panama Software Test Center\" \/>\n<meta property=\"og:description\" content=\"Last week I went to the Lean Start-up Meetup in Boston where\u00a0Florian Motlik of Codeship lead a discussion with Amos Benninga from GrabCad, Dan Rowe from ETSY and Ken Eimer from InsightSquared on Continuous Deployment. The presentation was excellent, a great mix of best practices and practical application. Their comments rang true with our experiences [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agilityfeatpanama.com\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/\" \/>\n<meta property=\"og:site_name\" content=\"AgilityFeat Panama Software Test Center\" \/>\n<meta property=\"article:published_time\" content=\"2013-06-07T16:21:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2013\/06\/WhirlingDervish.jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"4 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/34.200.113.64\/#website\",\"url\":\"https:\/\/34.200.113.64\/\",\"name\":\"AgilityFeat Panama Software Test Center\",\"description\":\"AgilityFeat Panama offers customized, multilevel web and mobile software testing for a variety of industries.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/34.200.113.64\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2013\/06\/WhirlingDervish.jpeg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/#webpage\",\"url\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/\",\"name\":\"Why Continuous Deployment is important for you - AgilityFeat Panama Software Test Center\",\"isPartOf\":{\"@id\":\"https:\/\/34.200.113.64\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/#primaryimage\"},\"datePublished\":\"2013-06-07T16:21:40+00:00\",\"dateModified\":\"2013-06-07T16:21:40+00:00\",\"author\":{\"@id\":\"https:\/\/34.200.113.64\/#\/schema\/person\/bbe32c701c50634fc286a690736c113b\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/agilityfeatpanama.com\/en\/blog\/2013\/06\/why-continuous-deployment-is-important-for-you\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/34.200.113.64\/#\/schema\/person\/bbe32c701c50634fc286a690736c113b\",\"name\":\"Ford\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/34.200.113.64\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"Ford\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/posts\/596"}],"collection":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/comments?post=596"}],"version-history":[{"count":0,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/posts\/596\/revisions"}],"wp:attachment":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/media?parent=596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/categories?post=596"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/tags?post=596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}