Feature Toggles – Why and How to Add to Your Software

Ecommerce Empire Academy

Learn why and how to add feature toggles (aka feature flags) to your software. We go through the basics of what feature toggles are, how you can use them and how they can help you to improve the workflow of your development team to accelerate time to delivery. We start off by interviewing Ivar Østhus, the founder of Unleash — an open source feature toggle system — and then continue to look into basic feature toggle use cases and how you can set up Unleash open source to tackle more advanced use cases and scenarios.

Feature toggling resources
🔗
🔗

✏️ Instructor: Fredrik Strand Oseberg
🐦 Twitter: @foseberg
🔗 Youtube Channel:

🎤 Interview subject: Ivar Østhus
🐦 Twitter: @ivarconr

Thanks to Unleash for providing a grant to make this course possible. If you want to learn more about Unleash here are some useful links:
🔗 Homepage:
🔗 Documentation:
🔗 Github:
🔗 Slack community:

⭐️ Course Contents ⭐️
⌨️ (0:00:00) Introduction to feature toggling with Ivar Østhus
⌨️ (0:14:36) Basic feature toggle implementation
⌨️ (0:24:49) Basic feature toggle pitfalls
⌨️ (0:27:22) Implementing an external feature toggle configuration
⌨️ (0:47:07) Feature toggle vendors
⌨️ (0:51:19) Unleash architecture
⌨️ (0:56:00) Setup unleash open source with docker
⌨️ (1:00:06) Create an API key
⌨️ (1:01:59) Setup unleash proxy with docker
⌨️ (1:01:59) Application overview and creating a feature toggle
⌨️ (1:10:20) Using feature toggles in a real application
⌨️ (1:12:26) Connecting to unleash with the react proxy sdk
⌨️ (1:16:57) Understanding stickiness and unleash context
⌨️ (1:26:03) Using strategies for segmentation
⌨️ (1:31:23) Introduction to Experimentation
⌨️ (1:33:49) Understanding variants
⌨️ (1:37:08) Implementing variants in our codebase
⌨️ (1:43:14) Using analytics providers to understand experiment data
⌨️ (1:47:31) Usage metrics
⌨️ (1:49:22) Technical debt and cleaning up feature toggles
⌨️ (1:52:00) Outro

🎉 Thanks to our Champion and Sponsor supporters:
👾 Raymond Odero
👾 Agustín Kussrow
👾 aldo ferretti
👾 Otis Morgan
👾 DeezMaster

Learn to code for free and get a developer job:

Read hundreds of articles on programming:

And subscribe for new videos on technology every day:

27 thoughts on “Feature Toggles – Why and How to Add to Your Software”

  1. Vidya Sagar Singh

    @freecodecamp, please make API development course using spring/ spring boot (just like fast Api course)

  2. I understand the need for having a feature toggle system in a product. Nearly every product I’ve worked on over the past decade has used a system like this (some more complicated than others).

    What I don’t understand is how there’s an open source solution for this, as every implementation I’ve ever used has been hand-rolled and purpose-built specifically for its respective project. I don’t see myself ever switching to an external package to solve this problem.

    1. @Vickylance Truthfully, I don’t know what it lacks, because I’m not interested enough in it to look into it. I look at this the same way that I would view an “open source solution” for the customer database or the product catalog of my project. In my opinion, each of these things really needs to be specialized for the project, and will therefore be designed and implemented from the ground up. That’s just the way I choose to do things like this.

    2. @mykalimba We use this tool in production for one of the largest banking applications and we did modify it a bit to suit to our needs and lifecycle. I think its very easily customizable for any needs as required rather than building from scratch.

    3. Jaroslav Danilov

      My thoughts exactly. The argument given in the video is that every code you write is something you’d need to maintain. However adding a 3rd party dependency to manage feature toggles (unleash) adds an external dependency to learn and maintain plus a potential point of failure which is btw somewhat out of your control. So there are trade-offs. And for simple sub-systems such as feature toggle management I’d stick with writing a custom solution. Especially in crucial infrastructures or banking apps.

  3. Great video. You’ve reminded me of what someone once said💖
    “The mind is the man, the poor is in it and the rich is it too”.
    This sentence is the secret of most successful investors. I once attended similar and ever since then I have been waxing strong financially and I most tell you the truth.

    1. @Charles Blake You’re right dear currently I’m investing with expert Steven Lawson and ever since then, he has never failed to deliver and to be honest I would say he is the most sincere broker I have ever known.

    2. For me bitcoin trading has been most successful because I got involve in trading with a working strategy/daily signal backed by expert Steven Lawson who happened to be a pro trader.

  4. Awesome video, lots of content. But I don’t understood how can I deploy the proxy to some place like heroku

  5. Terrible in practice with more than a small team. We tried this with over 100 devs the amount of random breaking changes that held people up shot up through the roof. We went back to smaller features which were significantly better controlled releases and quality. Notice all the examples are simple UI / display outputs? Try it when some numpty adds a feature flag for a domain object that they have updated and removed a field that you was still using. The overhead of understanding the code paths and flags jumps through the roof! If you join a big team with long running work and they do this expect a headache, update your CV and leave. You will end up with a zillion API versions, you name it. Terrible.

    1. Well said, we started doing this for every story/big ticket with our gigantic monolith at work to reduce bugs and oh boy, having nearly 100 devs do this with maintaining old path and new path is a nightmare. The code has become bloated after one sprint. in addition, you have to revisit the same code a sprint or two later to clean up the old path.
      I was searching online to find out where this insanity came about and I came across this video

  6. What an awful way to maintain a project. we started doing this for every story/bug ticket with our gigantic monolith at work to reduce bugs and oh boy, having nearly 100 devs do this with maintaining old path and new path is a nightmare. The code has become bloated after one sprint. in addition, you have to revisit the same code a sprint or two later to clean up the old path.
    I was searching online to find out where this insanity came about and I came across this video

Comments are closed.