18 Apr 2018

Konmari Your Code Base

Konmari is a new name for an old concept—we shouldn’t live with STUFF that isn’t serving a purpose in our lives. It’s championed by Marie Kondo, a woman passionate about throwing things away and organizing what’s left. Her breakout book was titled “The Life-Changing Magic of Tidying Up.”

Though Kondo’s focus leans heavily on physical things, I think her concepts are important for our digital lives as well. Because storage is effectively free, we never feel the pain of being hoarders, at least not directly. Never throwing things away is a personal choice when it’s about blurry pictures of our cats in our own folders, but it’s a different problem when it’s about our code base.

How do you know when you should remove flags from your code base? How do you clean up after all your experiments?

Build for Future Ease

The easiest way to avoid having big messes to clean up is to not make a mess in the first place. We all know that sounds simpler than it is, but I also believe that any improvement is a help. Just as it’s better to put your dirty clothes in a laundry hamper than on the floor, it’s better to tag new features with meaningful identifiers. Here are some best practices for future ease. You may already know them, but just in case:

  • Add comments about what the code is meant to do
  • Add uniform tags for search-ability
  • Use meaningful variable names
  • If a feature is dependent on another function, mention that in the comments
  • Add dates about when something was added, don’t just depend on commit messages to indicate that

Automate Deletion

We have emotions about deleting things. We have to accept that at some point the feature (or picture or paragraph) will no longer serve a purpose. Since the things we delete always represent memory, potential, or work, we are often reluctant to delete them—we know that moment in time will never happen again or that work would have to be repeated.

The solution to this is not to avoid deleting things, but to avoid the emotional impact of making the decision. Automate the deletion of anything that you can. Meeting notices vanish when the meeting is past–deployment flags should evaporate when the feature is fully adopted. By configuring your code to delete outdated elements, you keep the clutter from accumulating in your codebase.

Consider being even more radical—if you have a policy of only supporting a certain number of versions, automatically roll the oldest version off support when you release a new version. If you make it a policy, everyone will know that they must upgrade when a new version is coming out.

Cultivate Tidy Habits

Wash on Monday. Iron on Tuesday. Bake on Wednesday…

This was an old expectation about when housework happened. Have some set times in your development cycle for cleaning up after yourself. What about that hour at the end of the workweek when you don’t want to start anything? Or the day you have mostly blocked off for sprint exit/entry? Those are good natural break points to go in and clean up the things you have been meaning to get to. When the cadence is regular, you’ll better remember what you were doing. Making cleanup a regular chore instead of a “when I get to it” behavior means it’s much less annoying when you do it.

Reward good behavior

Are you the sort of person who internally yells at yourself (or others) for making mistakes? Consider a new way of training yourself to do the right thing. Instead of being angry or frustrated about mistakes, catch yourself doing the right thing and reward it. Deleted some old code? Stand up and look at the sun, or have a hard candy, or trigger a micropayment to a fun account—whatever you find motivational. Associating good behavior with something you enjoy makes it easier to keep doing the good behavior. Even if you know what you OUGHT to do, most people don’t get a dopamine hit from fulfilling obligations.

10 Apr 2018

Launched: Segments, Separate Your Users Into Reusable Segments

One of the core benefits of the LaunchDarkly feature management platform is the ability to target end-users on a granular level. This means you not only have control over when a feature is ‘on’, but can decide who will see/experience it. Teams using LaunchDarkly use targeting rules to perform beta releases, canary launches, test in production, or even manage entitlements like tiered pricing structures.

We’ve gotten feedback that teams often want to target the same group of people for multiple different features. Unfortunately this meant building that list of targeting rules each time for each flag. So to make that process easier, we’ve introduced a new feature called Segments that allow you to build a list of targeting rules that can be used for different feature flags.

Segments are great for dark launchers who are targeting the same group of users for different features. This can be users of a particular technology (e.g. all of your Gmail users), a long-lived beta testing group, a particular department within your organization–you get the idea. Segments makes it easier to consistently reach particular groups that you work with over time. To use this new feature, existing LaunchDarkly customers should make sure you update your SDK (you can read more about that here).

How does this work?

In this example, I describe a set of users called Gmail Users with email addresses ending with @gmail.com.

Then, in a feature flag called Use Rich Formatting for Email I add a rule to include Gmail Users in the list of users receiving this feature flag value.

In another feature flag called Encourage Users to Switch to Gmail I add a targeting rule to  exclude Gmail Users.

That’s all there is.

How are Segments different than Prerequisites?

Our more advanced dark launchers might have noticed that segments appear very similar to prerequisites. Just remember: segments allow you to target users by key or attributes, and prerequisites represent a dependency on a flag value served to a user.

How do I get this new feature?

If you created an account starting March 1, 2018, you have already Segments. Congratulations! If you joined before that, then use of Segments requires that you update your server-side SDKs (you can read more about that here). For specific requirements, see our documentation for building user segments. Contact us at support@launchdarkly.com if you think your application is ready to handle Segments.

27 Mar 2018

Launched: Redesigned Environment Switcher

LaunchDarkly projects make it easy to manage feature flags from all of your software projects in one place. And thanks to environments, you can more easily manage your feature flags throughout your entire continuous delivery pipeline—from local development, to QA, staging, and production.

As your company grows, so do the number of projects and environments. We heard feedback from customers that it can be difficult to navigate between environments of the same project, or even between environments in different projects. Another frequently-heard problem is that not everyone cares about all projects and environments in the same account.

Today we’re excited to launch our vastly-improved environment switcher. It’s now easier find any environment you’re looking for, no matter how many projects or environments you have. Select a project on the left to find all its environments on the right. Click an environment on the right to switch over to it.

We’ve also introduced favorites. Clicking the star on an environment will toggle whether that environment is a favorite or not. And, if you have any favorites, they’ll be listed by default, so you can quickly navigate to the environments you work with the most.

04 Dec 2017

LaunchDarkly, #1 Feature Management Platform, Gets $21M in Series B Funding

As founder and CEO of the leading feature management platform, I’ve seen how our customers use LaunchDarkly to help them innovate more quickly, reduce risk, and break down the barriers between developer, product, marketing, and sales. Ultimately, LaunchDarkly helps our customers around the world help their own customers succeed. We take the feature flagging platform that the biggest tech giants (Facebook, Amazon, Netflix, Google) build in-house, and provide it as a service for everyone else. Thanks to a tremendous response—we serve over 10 Billion (with a B) features EVERY DAY— I’m pleased to announce that we’ve raised $21M in our Series B to accelerate our own growth in engineering, customer success, and category education.

Feature flagging/toggling is a deceptively simple idea—by separating code deployment from release with a “flag” or ”toggle”, companies can control who gets what feature in their software. LaunchDarkly allows customers to manage their feature flags at scale, giving them the in-house platform that the big tech giants have. Companies start by using LaunchDarkly for an initial “dark launch” by selectively releasing a feature to a group of their customers. This is something tech giants like Facebook and Netflix do constantly, and it allows them to manage what features we see and use in their products with minimal risk to their business. Once they become comfortable with our platform and services, the product team is able to use LaunchDarkly feature flags for fast feedback, marketing team can use LaunchDarkly for betas and launches, and sales can use us for contract management.  

LaunchDarkly is a unified platform where developer, product, marketing, sales, and customer success teams can manage code in real time. Our three main types of customers are:

These startups want the same feature management superpowers Facebook and Netflix have. We’ve worked with startups as they’ve grown from four people to thriving successful businesses, like Troops.AI. They’ve used us for every feature, usually starting with risk mitigation, then moving into limited rollouts, and then allowing everyone in the business to control their own features. As one startup company’s CEO told me, “We originally started using you as an “oh shoot” button, now we use you everywhere.” Another VP Product said, “Using LaunchDarkly for feature development is like night and day.”

These customers built their own feature management infrastructure and are tired of maintaining it. When companies like Lanetix and a leading ecommerce car buying portal made the switch to our platform, suddenly their developers could do all the things they wanted, like role based authorization and complex rule sets. And what’s more, the rest of the company can also use our tools. Now developers can focus on building and the entire company benefits from access to control and flexibility. When I was in Australia, the company told me “now when we build a feature, everyone asks ‘did you LD it?’”

These modernizing companies know they need to move faster to innovate. They are at the forefront of their industry and know that constantly iterating will help them stay competitive. Last year, I gave a talk at NDC Sydney on how to use feature flags. An engineer from a huge IOT conglomerate immediately asked me for a demo and became a customer. This year, he gave a talk on how he’d moved from annual releases to weekly releases.

It’s extremely gratifying for our entire team at LaunchDarkly to see how much customers rely on us to run their own businesses. Customers small and large are looking to us not just as a developer tool, but as a platform that their entire company can use to deliver functionality to the right person at the right time.

While we were in Sydney, a customer’s CEO sent me a personal thank you note for a sales person visiting them and educating them on how best to use feature flags. If you’ve been in enterprise developer software, like I have, you know that usually the reaction to a salesperson visit is not kudos. However, our customers view us as a trusted advisor for expertise in feature management. I am so proud of our team and I hope our funding will help us continue to be the #1 trusted feature flag management platform, as well as invest in more education for our customers and broader market. Want to join our team? We’re hiring!

We found perfect partners in Scott Raney (Redpoint) and Jonathan Heiliger (Vertex). Scott has been a long time friend of LaunchDarkly, giving me advice and guesting on my podcast, “To Be Continuous”. Jonathan is a cloud infrastructure pioneer who is very familiar with the value LaunchDarkly provides from his time at Facebook. I’m looking forward to working closely with them both through the next chapter of LaunchDarkly.

So what’s next? LaunchDarkly has an incredibly broad base of cross-industry customers, from banking to insurance to shipping to ecommerce to hardware. The appeal of feature management is truly game-changing. Instead of code being a static object that’s changed only once a year or quarter, suddenly, code is a living, evolving power. Developers can build, marketing can launch, product can iterate, and sales can sell. Equipping businesses with the ability to move at the speed of every deploy allows an entire company to learn rapidly, deliver value to their customers faster, and produce more value. With this funding, we hope to support more customers and teach the world that there is a better way to build software—feature flagging.

*Header image credit: NASA astronaut Sunita Williams, Expedition 32 flight engineer.

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.