DEV Community

Discussion on: Feature-Flag Driven Development (FFDD)

Collapse
 
sirseanofloxley profile image
Sean Allin Newell

:/ plugin architecture doesn't always work; if it's the right tool for the job, use it.

Also, assuming a plugin system + FF:

  • What if there's a bug in the core system?
  • What if there's a bug in a plug-in?
  • What if a new feature necessarily just changes how an existing plugin works?
  • What stops a combinatorial explosion of FF and test cases?
  • How do you do system wide FFs?

An idea some large companies do to alleviate conflicts is trunk based development, that in addition to FF can really help. Obviously modularization helps, but that goes beyond a plug-in arch and into macro and micro servifes.

Collapse
 
alexbunardzic profile image
Alex Bunardzic

Feature flags are used to control the access to the newly deployed code. For example, it could only allow access to a certain username. Then when the new code goes live, only the person who logs in with that username can get access to the code.

There is very little that can go wrong in the above scenario. It's just a simple conditional branch. It replaces the physical branch that usually gets created upstream (i.e. in the dev environment).

Of course, feature flag development must be coupled with comprehensive system observability.