<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ethan Jones</title>
    <description>The latest articles on Forem by Ethan Jones (@ethanjones).</description>
    <link>https://forem.com/ethanjones</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F821792%2F0c73ba45-d5a8-4286-8bef-ca1c6229bc09.png</url>
      <title>Forem: Ethan Jones</title>
      <link>https://forem.com/ethanjones</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ethanjones"/>
    <language>en</language>
    <item>
      <title>What Is Split.io? A Look at Features and Use Cases</title>
      <dc:creator>Ethan Jones</dc:creator>
      <pubDate>Wed, 23 Feb 2022 14:18:05 +0000</pubDate>
      <link>https://forem.com/harness/what-is-splitio-a-look-at-features-and-use-cases-4701</link>
      <guid>https://forem.com/harness/what-is-splitio-a-look-at-features-and-use-cases-4701</guid>
      <description>&lt;p&gt;Split is a SaaS company that offers a tool for managing feature flags. In addition to decoupling release from deploy to allow engineering teams to release new features with more speed, &lt;/p&gt;

&lt;p&gt;Split also contains the ability for users to put any customer into a segment (called “splits”) based on attributes and integrate data from metrics services to use logs to manage and measure flag behavior. Split lets a user create rules based on this data, with basic alerting and kill switch behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Feature Flags/Feature Toggles? How Does Split Help?
&lt;/h2&gt;

&lt;p&gt;Feature Flags (also known as toggles or switches) have a wide variety of use cases and are a powerful tool for engineering and operations teams to turn code off and on in their production environment. Once the new code is hidden behind a feature flag, a developer can turn the specific code on for a subset of your users without impacting the entire user base. &lt;/p&gt;

&lt;p&gt;For example, want a specific feature on your website only available to users who live in New York? No problem. Create a flag, target users living in the New York area, and like magic, your new feature will only be displayed to that particular target group. While feature flags are created by developers in the code base, companies like Split have designed tools to invoke these flags, manage them through a UI, and make the whole process much easier at scale.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NWtnkwjp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/Split.io-Logo-1024x408.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NWtnkwjp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/Split.io-Logo-1024x408.png" alt="Split Logo" width="800" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Split for Feature Flags &amp;amp; Experimentation
&lt;/h2&gt;

&lt;p&gt;Split differentiates itself by using any data source that a team has configured, and leveraging events in this data to define customer experience metrics and respond as users enable and disable flags for various segments.&lt;/p&gt;

&lt;p&gt;Engineering teams can create rules to target customers (which they call a “split”), and once these rules have been created, any split can be used as a target for a feature flag or an experiment. Of the various solutions on the market, Split stands out for its more advanced use of data across its service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Split’s Role in Continuous Delivery &amp;amp; Progressive Delivery
&lt;/h2&gt;

&lt;p&gt;Using data to experiment with features across customer segments using metrics is powerful, and Split has done a good job bringing new ideas to market and advancing flag behaviors.&lt;/p&gt;

&lt;p&gt;By using data in this way, specifically as flags are released in production environments, feature flags move closer to being a part of the software release process rather than being completely limited to an after-the-fact toggle.&lt;/p&gt;

&lt;p&gt;This allows teams to feel secure in the knowledge that every new change in their app has been thoroughly tested in every environment. As flags are enabled on each new target, teams can learn when, and if, it is secure to ramp up traffic for the change – or expand the feature to a new group of users based on these connected data services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YST8eqa8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/image-39-1024x538.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YST8eqa8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/image-39-1024x538.png" alt="Feature Flags: Should You Go With Split?" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Split Pros and Cons
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Robust data integrations.&lt;/li&gt;
&lt;li&gt;Audit log. &lt;/li&gt;
&lt;li&gt;Clean user interface and setup.&lt;/li&gt;
&lt;li&gt;Control behaviors with the Split API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Split is SaaS only. No on-prem solution available.&lt;/li&gt;
&lt;li&gt;Limited RBAC to control access.&lt;/li&gt;
&lt;li&gt;No advanced workflows.&lt;/li&gt;
&lt;li&gt;No YAML editor or GitSync available to extend the developer experience.&lt;/li&gt;
&lt;li&gt;Split offers no shared context with CI/CD.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Split Features &amp;amp; Use Cases
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Progressive Delivery: Risk-Free CI/CD
&lt;/h4&gt;

&lt;p&gt;Progressive delivery is a practice that allows organizations to control how and when new software features or changes are delivered. It builds on the capabilities and practices of flag management and &lt;a href="https://harness.io/blog/blue-green-canary-deployment-strategies/"&gt;deployment strategies&lt;/a&gt; like blue-green and canary deployments. Ultimately, progressive delivery combines software development and delivery practices allowing organizations to deliver with control once rules have been created.&lt;/p&gt;

&lt;h4&gt;
  
  
  Beta Testing and Qualitative Feedback
&lt;/h4&gt;

&lt;p&gt;Feature flags are a great way to test features to a beta tester group of target customers, collect user input, and evaluate performance before releasing a feature to the entire user base. In this area of progressive delivery, it’s critical that developers get feedback on performance, usability, and functionality from the consumer before it’s ready for prime time. Flags give you the granular control you need to target specific groups or individuals and gather feedback on their experience.&lt;/p&gt;

&lt;h4&gt;
  
  
  Kill Switches
&lt;/h4&gt;

&lt;p&gt;A kill switch is exactly what it sounds like: a mechanism to instantly stop something whenever an engineering team is able to identify a quality issue. In the context of flags, this could mean that we suddenly get a bunch of bug reports about a feature. Instead of having to roll back and possibly affect other features in the release, we can simply switch the one buggy feature off. We have two great &lt;a href="https://harness.io/blog/kill-switches/"&gt;kill switch examples&lt;/a&gt; in a prior article. &lt;/p&gt;

&lt;h4&gt;
  
  
  A/B Testing
&lt;/h4&gt;

&lt;p&gt;This is a more common use case of flags, so let’s go with a very simple explanation. Let’s say we add a new button to our site and we want to see if it gets a better response if it’s red or blue. For example, with the help of flags, release Change A (the red button) to 50% of our users, and release Change B (the blue button) to the other 50%. We’d then be able to collect data and see if A or B performed better. &lt;/p&gt;

&lt;h4&gt;
  
  
  Faster Incident Resolution
&lt;/h4&gt;

&lt;p&gt;We don’t often think about it, but flags can help us gain faster incident resolution. In fact, flags can even completely prevent issues from ever arising. In our article specifically on &lt;a href="https://harness.io/blog/faster-incident-resolution/"&gt;faster incident resolution&lt;/a&gt;, we provide real-world use cases/examples that feature flags can solve. You can think of flags in this context as a first line of defense to disable a change in a secure way the moment your engineering team realizes something is wrong in your critical environments. &lt;/p&gt;

&lt;h2&gt;
  
  
  Split Pricing
&lt;/h2&gt;

&lt;p&gt;Split offers the standard 3 tiers of pricing most software companies offer, with basic functionality on the starter plan and full functionality at enterprise level. &lt;/p&gt;

&lt;p&gt;Several of their most advertised features are available only on the high-end enterprise plans, including data export capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sFm1tqoa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/image-40-1024x578.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sFm1tqoa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/image-40-1024x578.png" alt="Split Pricing Screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Split Ratings
&lt;/h2&gt;

&lt;p&gt;Usability ⭐⭐⭐&lt;/p&gt;

&lt;p&gt;Likeness to Renew ⭐⭐&lt;/p&gt;

&lt;p&gt;Onboarding ⭐⭐&lt;/p&gt;

&lt;p&gt;Performance ⭐⭐⭐&lt;/p&gt;

&lt;p&gt;Verifications ⭐⭐⭐&lt;/p&gt;

&lt;p&gt;Integrations ⭐⭐⭐⭐&lt;/p&gt;

&lt;p&gt;SDKs ⭐⭐⭐&lt;/p&gt;

&lt;p&gt;Support ⭐⭐⭐&lt;/p&gt;

&lt;p&gt;CI/CD Integration ⭐&lt;/p&gt;

&lt;p&gt;Scalability ⭐⭐⭐&lt;/p&gt;

&lt;p&gt;Security ⭐⭐⭐&lt;/p&gt;

&lt;p&gt;Price ⭐⭐⭐&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking for More? Check Out Harness Feature Flags
&lt;/h3&gt;

&lt;p&gt;Split does a great job with integrations. However, it doesn’t integrate with your &lt;a href="https://harness.io/blog/what-is-ci-cd/"&gt;CI/CD&lt;/a&gt; (Continuous Integration/Continuous Delivery) pipelines – so if you’re looking for a feature management platform that does it all (and provides governance, security, and amazing automation and reporting capabilities to boot), we invite you to check out &lt;a href="https://harness.io/products/feature-flags/"&gt;Harness Feature Flags&lt;/a&gt;. Harness makes software development teams’ lives easier by helping deliver software in a safe, simple, repeatable, and reliable way.&lt;/p&gt;

&lt;p&gt;Still evaluating tools? Take a look at our comparison pages. We have good info on &lt;a href="https://harness.io/learn/comparison-guide/split-vs-harness/"&gt;Split&lt;/a&gt;, &lt;a href="https://harness.io/learn/comparison-guide/launchdarkly-vs-harness/"&gt;LaunchDarkly&lt;/a&gt;, &lt;a href="https://harness.io/learn/comparison-guide/optimizely-vs-harness/"&gt;Optimizely&lt;/a&gt;, and &lt;a href="https://harness.io/learn/comparison-guide/cloudbees-vs-harness/"&gt;Cloudbees Feature Management&lt;/a&gt;. In these pages, we go over important feature comparisons like security, governance, reporting, SDKs, and more. Additionally, we have another blog post on the &lt;a href="https://harness.io/blog/feature-flag-management-tools/"&gt;Top 6 Feature Flag Management Tools&lt;/a&gt;. We hope this gets you started on your FF journey!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://harness.io/blog/feature-flags/split-io/"&gt;What Is Split.io? A Look at Features and Use Cases&lt;/a&gt; appeared first on &lt;a href="https://harness.io"&gt;Harness&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>harness</category>
      <category>featureflags</category>
      <category>continuousdelivery</category>
    </item>
    <item>
      <title>What Is a Multivariate Flag?</title>
      <dc:creator>Ethan Jones</dc:creator>
      <pubDate>Wed, 09 Feb 2022 14:00:00 +0000</pubDate>
      <link>https://forem.com/harness/what-is-a-multivariate-flag-3kfl</link>
      <guid>https://forem.com/harness/what-is-a-multivariate-flag-3kfl</guid>
      <description>&lt;p&gt;When people think about feature flags, they think about on or off, true or false. These are called &lt;em&gt;boolean flags&lt;/em&gt;, and they have only two states. However, there are other types of flags, known as &lt;em&gt;multivariate&lt;/em&gt; flags, with a potentially unlimited number of states.&lt;/p&gt;

&lt;p&gt;In this post, we’ll take a look at what multivariate flags are and how to use them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Boolean vs Multivariate
&lt;/h2&gt;

&lt;p&gt;A boolean flag is relatively easy to understand, although there are tons of potential &lt;a href="https://harness.io/blog/feature-flag-use-cases/"&gt;use cases&lt;/a&gt; beyond the obvious ones. There is a true state and a false state, essentially a default and a change. In simpler terms, an &lt;em&gt;on&lt;/em&gt; and &lt;em&gt;off&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Multivariate flags, by contrast, have an unlimited number of states.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cSu7HQaE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/image-14-1024x876.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cSu7HQaE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://blog.harness.io/wp-content/uploads/2022/02/image-14-1024x876.png" alt="Multivariate Flags in Action" width="800" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The benefit is that you can expand the way you use flags to cover a wide range of scenarios. The most obvious is referred to as A/B testing (even though it says A/B, it’s usually more than 2 options). But beyond that, there are lots of other ways to think about multivariate flags.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Types in Multivariate
&lt;/h2&gt;

&lt;p&gt;Before digging into specific sample use cases, it’s worth noting that in Harness, multivariate flags contain different data types. This is because no matter what the &lt;em&gt;value&lt;/em&gt; of a boolean flag is, the actual evaluation is the single data type of boolean. Multivariate flags, on the other hand, need a data type &lt;em&gt;and&lt;/em&gt; a value since they are more open-ended.&lt;/p&gt;

&lt;p&gt;We allow for strings, JSON, and integers, and likely will allow for more in the future based on your feedback. By allowing for additional data types, there are more powerful use cases that can be engineered into your product. &lt;/p&gt;

&lt;h2&gt;
  
  
  Common Multivariate Use Cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A/B Testing
&lt;/h3&gt;

&lt;p&gt;A/B testing is usually focused on user behavior. It most often is about determining statistical significance of a behavior-modifying change. For example: Does a red, green, or blue ‘cancel’ button reduce churn the most?&lt;/p&gt;

&lt;p&gt;A/B testing leverages multivariate flags by allowing you to test many options at once. Test your trial lengths (3 days vs 7 days vs 30 days), or test your wording (“exciting” vs “advanced” vs “innovative”).&lt;/p&gt;

&lt;p&gt;A/B testing combines feature flags with behavior analytics tools such as Amplitude to let you see what users are doing and learn as you adjust.&lt;/p&gt;

&lt;h3&gt;
  
  
  System Behavior
&lt;/h3&gt;

&lt;p&gt;One of the benefits of the string and JSON data types can be using multivariates as permanent configurations, or for testing, in the backend of your application. &lt;/p&gt;

&lt;p&gt;Here’s a real-world example. Let’s say you have an archiving system that needs to fetch user data from cache and put it in cold storage. 98% of the time, this service needs to run every 5 minutes. But occasionally, with load issues or due to other engineering changes, you may want to change that. &lt;/p&gt;

&lt;p&gt;By using a multivariate flag, you could easily key in longer and shorter term intervals – or even a full pause – available at the click of a button. All this without the need for core application changes when you need to delay or pause your archiver.&lt;/p&gt;

&lt;p&gt;These potential use cases live in the heads and runbooks of your Ops, SREs, and Architecture teams. Go have a conversation with all of them. See where wiring up these types of behaviors to multivariate flags may save time and increase resiliency. &lt;/p&gt;

&lt;h3&gt;
  
  
  Geographic-Specific Behavior
&lt;/h3&gt;

&lt;p&gt;For folks working in regulated industries, or in countries with differing consumer regulation, you may have common prompts where text needs to change.&lt;/p&gt;

&lt;p&gt;A multivariate flag is a great way to do this. If you’re in a logistics business, show different tax rates to different states with a single flag. Or, if you handle data, show California, the rest of the US, the EU, and the UK different privacy messages as required by law. All centrally controlled under a single multivariate flag.&lt;/p&gt;

&lt;p&gt;Frequently, teams wire this logic up in an application similar to a flag, but with the application deciding automatically. This seems great on the surface, but the reality is that you lose the visibility, easy auditing, and controls that you get by using a feature flag solution instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Are you using multivariate flags in novel ways? If so, we want to &lt;a href="//mailto:ethan.jones@harness.io"&gt;hear from you&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Multivariate flags are more powerful than “just” A/B testing, although A/B testing is a critical capability they provide for. The scenarios above are a few common examples, but there are a lot more out there. As you mature with flags, you will uncover new ways to use them to bring control and visibility to your app.&lt;/p&gt;

&lt;p&gt;As you go into your feature flagging journey, discuss with your team how to go beyond the simple yes or no flag. Additionally, discuss where you may want to learn from multiple options (and sidestep a debate in the process. Why argue over which choice is best when you can ship them all with a flag and settle it with real data?), or connect your application ops task to flags for more control.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://harness.io/blog/feature-flags/multivariate-flag/"&gt;What Is a Multivariate Flag?&lt;/a&gt; appeared first on &lt;a href="https://harness.io"&gt;Harness&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>featureflags</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
