Introduction

Problem Statement

  • Multiple services dependent of each other.
  • New feature available only for specific clients.
  • Deployment strategy

How do we manage and deploy features without affecting the existing system?

Feature Flag

  • Feature flag is a decision point in your code that can change the behavior of your application.
  • Also known as feature toggles—have long been used to trigger “hidden” code or behaviors without having to ship new versions of your software.

Example

do we need Feature Flag?

do we need Feature Flag?

  • Enables businesses to dynamically control the availability of application features to end users.
  • Developing major features in chunks without execution.
  • Cutting development cost and high development responsibility within or outside of application.

do we need Feature Flag?

  • Deploying and testing application empowering features with application control rather than environment control.
  • Easy plug in and play features which are visible to end users and easily configurable by various teams - development and operations engineers to product and marketing managers.

Server Side Implementation

Using Environment Variable

Using YAML/JSON Files

Using Database

client side Implementation

Client Side

Our Previous Attempts

  • Environment variables
  • Application level configuration

Our Previous Attempts - Example

extended version

extended version

do's and don'ts

Don't

  • Temporary flags which can't be removed quickly.
  • Stale Flags and dead codes.
  • No journal on feature flags.

Do

  • Appoint a maintainer for the flag.
  • Set Expiry Dates for flags at the time of creation.
  • Create a branch and PR to remove the flag at the same time when the flag is introduced.

Do

  • Follow Naming Convention for feature flag names and commits for references.
  • Permissions and Role-based Access controls
  • Timely update flags documentation.
  • Organize flags

Ping me if you have questions or concerns ! !

Send me an email @ kelina@kudoway.com


Read Medium Story for Feature Management.

Feature Management — Part I
Feature Management — Part II