Feature Toggles - Why and How to Add to Your Software

Поделиться
HTML-код
  • Опубликовано: 19 ноя 2024

Комментарии • 54

  • @RahulChoudhary-jr7mu
    @RahulChoudhary-jr7mu 3 года назад +8

    Awesome! Notification from this channel makes my day! Thanks for the great work you do!

  • @mykalimba
    @mykalimba 3 года назад +6

    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.

    • @vickylance
      @vickylance 3 года назад

      What do you think that this open source solution lacks?

    • @mykalimba
      @mykalimba 3 года назад

      @@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.

    • @vickylance
      @vickylance 3 года назад

      @@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.

    • @xwdarchitect
      @xwdarchitect 3 года назад +1

      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.

    • @increasingsun
      @increasingsun 2 года назад

      "Switching" context is hard to imagine. Now you are looking at learning curve, configurations and what not.
      But if the organisation wants to adopt the open source (again there are two versions, free and paid. As he said 95% of code is online, it is difficult to understand what 5% is not there apart from admin controls (top down) etc) and if it is free, it is as headache as building one.
      Paid version does solve your problem to a certain degree and when the sprint contains a lot of developers maintain the paid or homwgrown would be obviously difficult --> Again you might put restrictions on number of pushes to do and what not.
      Feature toggles per say is a good concept, provided used in smaller use cases and used hygienly.
      Set up for the same where you copy a prod set up, restrict the users based on IP or logged in status or country, maintaining a dashboard of active and inactive sessions, having approval mechanism, is a big project in itself, which is better when outsourced is what I feel.

  • @CodeWithSahand
    @CodeWithSahand 3 года назад +2

    This video is absolutely priceless ✅

  • @increasingsun
    @increasingsun 2 года назад +1

    There is a difference between phased roll outs and feature toggles.
    Feature toggles never works for large deployment or monolith. Ofcourse you would have copy of prod setup and deploy it first there, iterate there and then push the master. But with so many devs pushing to prod, creating versions, testing and then managing it is a herculean task.
    With sprints, this goes nuts even more --> Mainly because the lagness in stakeholders testing and providing feedback, this creates versioning issues and creats a mountain to climb and prod push.
    This works for small pushes with phased manner and a/b at the end. Its a great combo.

  • @rogerpetruki4759
    @rogerpetruki4759 3 года назад +2

    Loved the course, Good job!

  • @MIDNightPT4
    @MIDNightPT4 Год назад

    Exactly what I was looking for!!

  • @dark9615
    @dark9615 3 года назад

    U r a hero.......a gods avatar....🙏🏻🙏🏻🙏🏻🙏🏻

  • @thiagorossato2846
    @thiagorossato2846 2 года назад

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

  • @silentspectator123
    @silentspectator123 3 месяца назад

    Hey, How can I get the source code of the client application that you've created?

  • @sulamoon777
    @sulamoon777 2 года назад

    Great! Thanks for the video! What’s your vscode theme BTW?

  • @papa_ethan
    @papa_ethan 2 года назад

    THIS IS SO NICE.

  • @boontawatkumpiroj5595
    @boontawatkumpiroj5595 Год назад

    It is good for client side feature toggle which you can't control the version, you can just turn off the flag without waiting for app store review or cache reset on web. Moreover client side can just release without waiting for server side deployment.
    But I don't think it would be great to be our new workflow, what will happen if you release an app with feature that is not done yet? If users don't update their app when you turn on the flag it's still break on the old version.

    • @dputra
      @dputra 6 месяцев назад

      Just add a prerequisite for that flag, e.g. app version. Sophisticated feature flag will even allow you to set how many users see the enabled feature, allowing gradual release.

  • @kzayman2952
    @kzayman2952 3 года назад +1

    I am sorry but i can't unsee the among us crew in the thumbnail

  • @JanDalhuysen
    @JanDalhuysen 3 года назад +2

    awesome 🔥🔥🔥

  • @saplay3372
    @saplay3372 3 года назад

    Great sir

  • @rssbasdf
    @rssbasdf 2 года назад

    Great!

  • @_vs04
    @_vs04 3 года назад +1

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

  • @ariseamazing8095
    @ariseamazing8095 3 года назад +1

    I am 12 yrs and love this channel follow this channel

  • @JanDalhuysen
    @JanDalhuysen 3 года назад +2

    epic 🔥🔥🔥

  • @matthewgreen3107
    @matthewgreen3107 2 года назад +7

    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.

    • @SolomonTheStoryTeller
      @SolomonTheStoryTeller 2 года назад

      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

    • @dinoscheidt
      @dinoscheidt 2 года назад +4

      If you look at large teams doing this successfully, you’ll see that you have groom phases cleaning up feature flags. Also what many people don‘t tell you, you need to maintain feature flags in parallel to permission flags. Overtime the feature flags will be removed but the permission toggles will stay. I.e. every feature in your code base should have CRUD permission levels that later are assigned to roles (take a look at CERBOS as a new solution). Than it is very easy to delete stale feature flags from all places where also permission flags are used. If the point of the code you want to change is not a CRUD logic branch (I want to show something, create data, serve data, update data, delete data), don‘t try to put feature toggles at some random places within that block of your code but go upward to the next CRUD logic branch.

  • @afrasiab8576
    @afrasiab8576 3 года назад +2

    Well

  • @samuellotz8304
    @samuellotz8304 Год назад

    the font is so unreadable :(

  • @LouSipher
    @LouSipher 3 года назад +4

    What in god's name is that font :(

  • @orinsoncarranza3459
    @orinsoncarranza3459 3 года назад

    Tremendo

  • @youssefkhedher3313
    @youssefkhedher3313 3 года назад

    ❤️🚀🔥

  • @zxxczczczcz
    @zxxczczczcz 3 года назад +3

    1 hour for just that

  • @kiellsv
    @kiellsv 3 года назад +1

    Toggle who?

  • @williamsuarez8853
    @williamsuarez8853 Год назад

    56:00

  • @SolomonTheStoryTeller
    @SolomonTheStoryTeller 2 года назад

    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

    • @SolomonTheStoryTeller
      @SolomonTheStoryTeller 11 месяцев назад

      @@AndreiGeorgescu-j9p we still do it lol and it is getting much worse. Most teams don't clean them up fast enough. so ya, maybe you are right. lol!

  • @ariseamazing8095
    @ariseamazing8095 3 года назад +1

    I wanna become ceo of Microsoft :)

  • @silversurfer1967
    @silversurfer1967 3 года назад +1

    First here 😀

  • @mayankvikash
    @mayankvikash 3 года назад +2

    I didn't understood what is the use of these toggles, can anyone just tell me, what to do with this? (I haven't watched the full video)

    • @AbstractCard
      @AbstractCard 3 года назад +4

      Watch the full video.

    • @disrael2101
      @disrael2101 3 года назад +1

      Same , intro sucks as wel

    • @youssefkhedher3313
      @youssefkhedher3313 3 года назад

      watch this section 0:14:36

    • @disrael2101
      @disrael2101 3 года назад

      @@youssefkhedher3313 still sucks explanation, can u try eli5 it

    • @hafidzrahman328
      @hafidzrahman328 2 года назад

      Sometimes u need to turn off new features in production when something happens on the run, that's the function

  • @JanDalhuysen
    @JanDalhuysen 3 года назад +2

    first 😉