20 Jul 2017

Feature Toggling On, Three Years In

Wow, three years goes by in a blink of an eye. Three years ago John (LaunchDarkly co-founder) and I both started working full time on LaunchDarkly. We had an idea that we could draw on both of our experiences in software development to help make better software. Funnily, John and I had wanted to start a company together for a long time, but thought we didn’t know enough about any field. So, in the meantime, we’d both continued to work in software for decades. As it turned out, we know a lot about software development lifecycle and managing features effectively.

Now we have customers all over the world (literally) who use our software to eliminate risk and for feature management. One of the favorite parts of my job is to visit customers – I love hearing how they’re using LaunchDarkly and how we can help them manage features. Just in the last four weeks I’ve visited customers in Singapore and Switzerland. And amazing to me, their use cases were very similar – moving away from long lived branches, getting code out more quickly. A CTO in Hong Kong made a brilliant analogy of feature toggling to “lean manufacturing”. The idea of lean came from Toyota; if you circulate through your inventory more quickly, you can be more productive. The same can be applied to code – the quicker you can get it out to the real world, the more effective you can be in validating your ideas and honing its quality. I’m proud that not only do customers love us with a high NPS, but we were also recognized by Gartner this year as a Cool Vendor in DevOps.

Also, the company itself has grown. We have our own office now in Oakland! It’s in a beautiful Art Deco tower, and we are still able to enjoy eating lunch together every day. One of the happiest things the team did lately was rotate all the lunch tables so we had one long table (Hogwarts style). The team didn’t want anyone to have to sit alone if there was no room at a table. Adam Zimman, our VP Product, summed up why he liked working here with “I feel like I can bring my whole self to work; and I’d like to build a culture where everyone feels that way.”

What’s next for LaunchDarkly? We’ve got more functionality coming to help you with effective feature management. We’re hiring! And we’ll also be on the road more – we’ll be at NDC Sydney and Atlassian Summit. I recently met Jeff Lawson from Twilio – he mentioned to me he tries to meet with three customers a week, a worthy goal. My goal for the next year is to meet with at least two customers a week. Come by, say “hi!” We’d love to hear how you’re doing feature management.

23 May 2017

Risk Elimination and The LaunchDarkly Value-Add

My first week at LaunchDarkly brought me out of the shadows in a hurry.  It began at an offsite strategy session at DFJ, our lead investor, where I learned valuable details about Waterfall vs. Agile software development methodologies. I also gained important insights into a key industry trend affecting the development community: the transition from Waterfall to Continuous Integration/Continuous Delivery (CI/CD).

What I’ve learned as a marketer has deepened my appreciation for what makes the LaunchDarkly solution so unique.

For starters, there are three main categories of customers who will benefit from partnering with LaunchDarkly:

  1. Companies interested in switching from Waterfall to CI/CD
  2. Companies currently switching/recently switched from Waterfall to CI/CD but not yet feature flagging
  3. Companies that are currently engaged in CI/CD, and using a homegrown feature management system

What’s clear is that all three of these customer segments experience different challenges. But all fall into to what our VP of Product and Platform, Adam Zimman, calls “The Risk Gap.”

What is The Risk Gap?

In software development, there is inherent risk in launching new releases. Risk in this case can be broken down into two categories:

  • Risk of losing product value
  • Risk of losing time

The longer it takes an engineering team to launch a new software release, the greater the risk of feature obsolescence. Another risk factor is competitor time to market; those companies that don’t enjoy “first mover advantage” can suffer from demoralized developers who lose interest because they can’t ship quickly enough.

The Risk Gap also means that there is greater operational risk associated with feature releases that carry greater value. The more value associated with a feature update, the greater the risk to your Ops team, because of changes made to your code base.

The Risk Gap is closely linked to the Iron Triangle concept that suggests the following:  while teams should strive to release high value features at a quick pace, the reality is that they’re often forced to pick one or the other (speed vs. quality).

The Iron Triangle mantra is “Fast, good, or cheap. Pick two.”

Let’s see how this affects the three customer categories who will benefit from using LaunchDarkly by examining the Risk Gap/Iron Triangle framework.

CategoryPainDoes Have Does Not Have
Companies interested in switching from Waterfall to CI/CDTakes Dev team a long time to launch releases.-High Quality
-Low Cost - traditional Waterfall methodology
Fast Delivery
Companies switching/recently switched from Waterfall to CI/CD but not yet feature flaggingQuality of releases is at risk.-Fast Delivery via CI/CD
-Lower Costs - not using a feature management platform
High Quality
Companies doing CI/CD + using a homegrown feature management systemA homegrown feature management system is costly to develop and maintain.-Fast Delivery - quick release cycle
-High Quality - continuous feedback loop
Lowest Cost

Each customer category is missing one of the three components of the Iron Triangle: either quality, speed, or lowest cost.

LaunchDarkly’s value-add

LaunchDarkly exists to close the Risk Gap – enabling the largest software engineering teams in the world to responsibly employ the CI/CD methodology, accelerate development cycles, eliminate the risk associated with large releases, and cut costs of developing/maintaining homegrown feature management systems.

For the first time, you don’t have to make tradeoffs with LaunchDarkly.

When you combine the great team here, a revolutionary product, and the opportunity to learn from brilliant minds every day, I am very much so looking forward to bringing our product to market.

14 Oct 2016

The Future of Feature Flags: Managing Dynamic Applications

LaunchDarkly Multivariate Feature Flags / Toggles

Traditionally, software teams have used feature flags/toggles to control simple rollouts and enable kill switches.  Boolean values were used for “on” or “off”, “true” or “false”.  With the introduction of multivariate flags, developers have been experimenting with serving rich values via these flags: strings, numbers, JSON objects, and JSON arrays. This has opened up a whole new world of dynamic application management.

Use Cases

Using feature flags to manage dynamic applications opens up many powerful and interesting use cases, for example:

  • Manage features in a pricing plan
  • Customize pricing based on user segment Apply coupons and discounts based on user actions or holiday sales
  • Allow users to personalize their own experiences
  • Manage CSS styling to test colors, layouts, and elements
  • Control conditional logic separately from your code base

The Multivariate Flag

A multivariate feature flag has two primary benefits: you can customize the number and type of variations returned.

LaunchDarkly Multivariate Feature Flags / Toggles

Let’s first look at a simple example. This feature flag calls the variation method to determine which variation the user should get for a “checkout.flow” feature flag.

Here, the user “bob@example.com” will either see a one-click, two-click, or original checkout based on the string value returned by the feature flag:

Serving Dynamic Values

Now, let’s use a feature flag to insert prices into a pricing page based on some attributes of a the user. We’ll call this feature flag “plan.price”.

LaunchDarkly Managing Dynamic Content with Feature Flags / Toggles

Here, the user will receive a price of $20, $50, or $75 depending on whether they match a particular targeting rule.

For a more advanced use case, these values (20, 50, 75) could be used to populate other pricing dependencies, like a customer invoice and account limits.

Best Practices

Of course, you should not use feature flags as a secondary database, but they could be useful as a way to personalize feature targeting without tying that logic into your codebase. This allows you to rapidly change pricing models, test color schemes, and configure complex features without having to redeploy.