FeatBit

Feature Flag: A Solution to Software Delivery Nightmares

Software Delivery Story

In the shadowed corners of a tech office, a team of engineers gathered around glowing monitors, embarking on their nocturnal ritual: deploying a new version. The air vibrated with tension, not just from the task at hand, but from the inevitable arrival of an unwelcome guest—the Bug.

This Bug was a master of chaos, turning seamless code into a battlefield, pushing the team into unwanted overtime, invading their evenings and weekends. As the clock struck midnight, the silent anticipation was shattered by the familiar sound of an alarm—the Bug had struck again.

With a mix of determination and dread, the engineers dove into the fray, their camaraderie deepening in the face of adversity. Yet, beneath their resolve, a question lingered: "Why must we always pay the price of our time?"

The battle raged through the night, a cycle of code, coffee, and shared stories of digital duels. By dawn, victory was theirs, but it was a hollow triumph. The team, weary but united, made a pact: No more. They resolved to streamline processes, advocate for automation, and most importantly, reclaim their right to a life outside code.

As they stepped out into the dawn, their spirits were buoyed not just by the defeat of the Bug, but by a newfound determination to change the game. They were more than engineers; they were guardians of their own time, ready to face the future together.

A Fast, Scalable, and Open Source Feature Flag Management Service. Designed to Delivery Risk Mitigation and Foster Business Growth. The guardian of your own time

Software Delivery Nightmares

Delivering and innovating not only faster, but also safer is a challenge:

  • Low Deployment Frequency
  • Long Lead Time to Change
  • High Mean Time to Repair
  • High Change Failure Rate

Revenue loss

Delivering new features faster can lead to more delivery failures, which can result in lost revenue if they impact critical business functions or poor user experience. The longer it takes to fix the issue, the more revenue is lost. Nightmare for company.

Rollback Difficulties

You release new features in a deployment, and one of them has a bug. To rollback only bug feature requires a lot of work: code reversion, retesting, re-deployment, and so on, all of which takes time (even evenings and weekends) and foster negativity within the team. A nightmare for the dev team.

Delayed Feature Releases

If we have to roll back all features due to a bug in just one, this will delay their availability to customers. Such a delay can hinder the team's ability to meet strategic goals and timelines, posing significant challenges for the business.

Complicated Issue Diagnosis

Removing the bug from production by reverting and redeploying code can increase the time it takes to restore the bugged feature. Because it is usually difficult for developers to find the root cause in development or test environments.

Solution: Feature Flag Management Tool

Feature Flag Management Tool

  1. Use a feature flag/toggle to decouple feature release from code deployment. If a single feature fails, you can turn it off without affecting other features.
  2. Testing each feature in production then rolling it out to a small percentage of users can help identify problems early, reduce the impact radius, and ultimately mitigate revenue loss.
  3. The ability to granularly roll back features with issues and keep them in production helps to quickly identify and resolve root causes.
  4. Feature flags isolate issues, preventing blockages in the planned development and deployment schedule and ensuring that overall development velocity is not compromised.
  5. Use feature flags to migrate infrastructure/database smoothly and incrementally. Keep the old and new systems running in parallel and migrate to the new system incrementally.
  6. Use the Feature Management tool to empower all teams to release and control software, fostering collaboration and innovation across the organization.
  7. And so on.

Decouple feature release from code deployment

Decouple feature release from code deployment

Use a feature flag to decouple feature release from code deployment. If a single feature fails, you can turn it off without affecting other features. This allows you to test each feature in production and roll it out to a small percentage of users to catch problems early.

Advanced Targeting and Segmentation

Using advanced targeting and segmentation that you can target based on user behavior, geography, device type, age, and other customized properties. This allows you to target the right audience for your features and test them in production.

Decouple feature release from code deployment

Real-time Rollout and Rollback

Real-time feature's kill switch, rollout and rollback can be critical, such as a malfunction in the new checkout process in a e-commerce platform,  incorrect transactions which resulting in financial loss in a financial service, and so on.

Real-time Rollout and Rollback

A feature flag implemented in multiple pods backend service, a polling (or long-polling) mechanism may involve an inconsistent state, which may lead to a potential risk.

Automate your feature release processs

Use FeatBit’s rich webhook, scheduling, change approval, trigger and Rest APIs to automate your feature release process.

  • Use FeatBit Scheduling to release new features at a predefined date and time.
  • Use FeatBit Change Approval to allow other team members (e.g. product owner) to approve the release.
  • Enable/disable a feature using an automatic trigger, such as a webhook from your CI/CD pipeline.
  • Combine the above features to create a complex release schedule.
  • Update a feature's flag release configuration using a Rest API sent from another system.
  • And so on.

Automate your feature release processs 001

A Rich WebHook system in feature flag platform can enhance the automation of your feature release process.

Automate your feature release processs with webhook

  • When a feature flag config changes, we need to receive a notifications in our working tools to get the latest state of a feature.
    • Chat tool, such as Slack, Microsoft Teams, etc.
    • Project management tool, such as Jira, Trello, etc.
    • Other tools that need to receive notification.
  • When a feature flag or segment changes, the webhook will send your customized message to the endpoints you want to receive it.

Rich webhook can help integrate feature flag with observablity tool (like New Relic, Grafana, Datadog, and so on) to detect issue, target the related feature flag, and disable it automatically.

  1. Send feature flag rollout / rollback event to the APM tool. For example, configure the event in New Relic One as a deployment event.
  2. Observability tool detect issue during the rollout and showing the issue graph and figure out the related feature flag.
  3. APM tool sends an alert to the team or calls a prepared endpoint such as FeatBit Trigger or FeatBit Rest API.
  4. Feature is disabled or rolled back by you, the Rest API, or a program endpoint.

Observability

End of Software Delivery Story

In the aftermath of their decision to use FeatBit, the engineering team's work life was transformed. By adopting feature flags, they deployed updates more safely and efficiently, significantly reducing the chaos caused by bugs. This strategic shift not only cut down on stressful, unplanned overtime but also improved their work-life balance. Gradual rollouts became the norm, allowing for easy monitoring and quick rollbacks without widespread disruptions. The dreaded midnight alarms faded into memory, replaced by a newfound confidence in their deployment process.

The positive changes went beyond technical improvements. The team now enjoyed more personal time and less stress, fostering an environment ripe for innovation and growth. FeatBit wasn't just a tool; it was a catalyst for a healthier, more balanced approach to engineering. As they embraced this new way of working, the engineers became advocates for change, sharing their success story with the broader tech community. In doing so, they not only reclaimed their own time but also set a new standard for software development practices.


For more information, download FeatBit's whitepaper on how to use feature flags to improve your software delivery process.

Ready to use feature flag to innovate your service faster without risk?