<\/figure>\n\n\nFeature Flags Are a CI\/CD Enabler<\/h3>\n\n\n We\u2019ve covered the mechanisms developers can use to disable portions of their codebase in production without having to touch the code. This capability is powerful and enables techniques such as A\/B testing and canary releases, which are all hallmarks of a modern, agile-based software development process.<\/p>\n\n\n\n
The names for the techniques might vary\u2014feature flags, feature toggles, feature flipper, and so on. The way in which the techniques are implemented can also vary\u2014from a humble if statement to sophisticated cloud-based solutions.<\/p>\n\n\n\n
But no matter what you call them, you can\u2019t overstate the benefit these mechanisms offer. They\u2019re an enabler of Continuous Integration, which is essential for any modern software organization that wants to stay afloat.<\/p>\n","protected":false},"excerpt":{"rendered":"
The following is a guest post written by Carlos Schults. Being able to disable code in production is a power that many developers aren\u2019t aware of. And that\u2019s a shame. The ability to switch off some portions\u2014or even complete features\u2014of the codebase can dramatically improve the software development process by allowing best practices that can […]<\/p>\n","protected":false},"author":2508,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"c2c_always_allow_admin_comments":false,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":[]},"categories":[508],"tags":[],"jetpack_publicize_connections":[],"acf":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":262483,"url":"https:\/\/css-tricks.com\/how-to-disable-links\/","url_meta":{"origin":312675,"position":0},"title":"How to Disable Links","date":"November 17, 2017","format":false,"excerpt":"The topic of disabling links popped up at my work the other day. Somehow, a \"disabled\" anchor style was added to our typography styles last year when I wasn't looking. There is a problem though: there is no real way to disable an link (with a valid href attribute) in\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":340343,"url":"https:\/\/css-tricks.com\/creating-stylesheet-feature-flags-with-sass-default\/","url_meta":{"origin":312675,"position":1},"title":"Creating Stylesheet Feature Flags With Sass !default","date":"May 14, 2021","format":false,"excerpt":"!default is a Sass flag that indicates conditional assignment to a variable\u2009\u2014\u2009it assigns a value only if the variable was previously undefined or null. Consider this code snippet: $variable: 'test' !default; To the Sass compiler, this line says: Assign $variable to value 'test', but only if $variable is not already\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2021\/05\/sass-default.jpg?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":275719,"url":"https:\/\/css-tricks.com\/new-mobile-chrome-feature-would-disable-scripts-on-slow-connections\/","url_meta":{"origin":312675,"position":2},"title":"New mobile Chrome feature would disable scripts on slow connections","date":"August 31, 2018","format":false,"excerpt":"This is a possible upcoming feature for mobile Chrome: If a Data Saver user is on a 2G-speed or slower network according to the NetInfo API, Chrome disables scripts and sends an intervention header on every resource request. Users are shown a UI at the bottom of the screen indicating\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2018\/08\/chrome-brackets.jpg?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":373100,"url":"https:\/\/css-tricks.com\/when-is-it-ok-to-disable-text-selection\/","url_meta":{"origin":312675,"position":3},"title":"When is it OK to Disable Text Selection?","date":"September 14, 2022","format":false,"excerpt":"Using CSS, it\u2019s possible to prevent users from selecting text within an element using user-select: none. Now, it\u2019s understandable why doing so might be considered \u201ccontroversial\u201d. I mean, should we be disabling standard user behaviors? Generally speaking, no, we shouldn\u2019t be doing that. But does disabling text selection have some\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/10\/browser-text-selection.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":286449,"url":"https:\/\/css-tricks.com\/using-parcel-as-a-bundler-for-react-applications\/","url_meta":{"origin":312675,"position":4},"title":"Using Parcel as a Bundler for React Applications","date":"April 25, 2019","format":false,"excerpt":"You may already be familiar with webpack for asset management on projects. However, there\u2019s another cool tool out there called Parcel, which is comparable to webpack in that it helps with hassle-free asset bundling. Where Parcel really shines is that it requires zero configuration to get up and running, where\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/04\/parcel-react.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":296585,"url":"https:\/\/css-tricks.com\/stop-animations-during-window-resizing\/","url_meta":{"origin":312675,"position":5},"title":"Stop Animations During Window Resizing","date":"October 14, 2019","format":false,"excerpt":"Say you have page that has a bunch of transitions and animations on all sorts of elements. Some of them get triggered when the window is resized because they have to do with size of the page or position or padding or something. It doesn't really matter what it is,\u2026","rel":"","context":"In "Article"","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/css-tricks.com\/wp-content\/uploads\/2019\/09\/browser-resize.png?fit=1200%2C600&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"featured_media_src_url":null,"_links":{"self":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/312675"}],"collection":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/users\/2508"}],"replies":[{"embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/comments?post=312675"}],"version-history":[{"count":4,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/312675\/revisions"}],"predecessor-version":[{"id":312758,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/posts\/312675\/revisions\/312758"}],"wp:attachment":[{"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/media?parent=312675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/categories?post=312675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/css-tricks.com\/wp-json\/wp\/v2\/tags?post=312675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}