Feature Management — Part II

Delivering product features with safeguards — Assurance and Deployments

Kelina
3 min readFeb 13, 2021

Deployments

Canary releases, ring deployments, and percentage rollouts are different patterns for safely testing in production by progressively increasing the exposure of any new change.

Canary Deployment

Limited Exposure

Rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody.

Percentage Deployment

Limited Exposure

Small numbers of users are selected randomly to experience the new feature.

Ring Deployment

Gradual Exposure

Starts with small groups of low-risk users and expands through larger, higher-risk populations.

Assurance of Features

In order to assure your features working in production, you need to establish some base rules to compare what is going to be in release.

Monitoring/Baselines

Establish important baselines for your product. Measuring your new features against existing baselines helps to reduce the risk of change.

A/B Testing

Validating new ideas against the old ones. Serve multiple variations of a feature to different user segments.

User Feedback

The ability to release changes to a limited set of users makes it much easier to gather feedback about your product.

Dynamic Configuration Management

Customizing how users experience your application can be a powerful way to improve engagement and increase conversions, sales, and other business objectives.

Scaling to Large Teams

Rolling out feature flags across an entire development organization is not easy until and unless there are standard protocols to be followed.

Once you have standardized the protocols in all the teams, you will be able to enforce feature flags dividing the responsibilities among the different teams.

Permissions and RBACs

The feature management console is the source of truth, and it’s useful for anyone in your organization to be able to see the current, accurate state of the world for your application for any given customer. You can control just who can modify a feature flag using role-based access controls (RBAC).

Collaboration

  1. Document changesMaintain a log of flag updates.
  2. Make updates visibleCommunicate flag changes in real-time.
  3. IntegrateConnect your feature management platform to your other collaboration tools, like issue trackers or code repositories.

Organizing Flags

  1. Separate concerns — Divide your flags into smaller, related chunks based on functionality, microservice, or application tier or projects.
  2. Name your flags well — Divide your flags into smaller, related chunks based on functionality, microservice, or application tier or projects.

Adopt a naming convention that makes it clear at first glance what a flag is for, what part of the system it affects, and what it does.

Design

Design for Scale

Consider how information is delivered quickly to where it’s needed and how that information is updated when states change.

Design for Failure

Resilient to momentary interruptions, be able to re-establish a connection to your platform, and resynchronize to the true state of the world, all while the application is running.

Design for Collaboration

Assign an owner or maintainer with permissions and Role-Based Access Controls, keep an audit trail of changes made to each flag.

Maintenance

Appoint a Maintainer.

Responsible for recording the purpose of the flag, ensuring that it has a well-defined rollout plan, and eventually cleaning it up..

Set Expiration Dates

Give feature flags expiration dates at the time of creation. When a flag reaches its expiration date, you can be notified that it’s time to delete that flag.

Flag Removal Branches and Pull Requests

Create a branch and pull request (PR) to remove the flag at the same time the flag is introduced.

Finding Flag References

Use a naming convention that makes feature flag strings stand out. Name feature flags in commit messages.

Hope this helps in managing your product delivery and ease the process of continuous delivery!

Voila!!

Haven’t read Part I? Read here.

--

--

Kelina
Kelina

Written by Kelina

Life is a journey of learning...

Responses (1)