Harness Feature Flags is the newest addition to the Harness Software Delivery Platform. This module allows organizations to deliver features faster, with less risk.
Software Delivery Always Gets Faster
Companies constantly develop new software features for their customers. Traditionally, these features are made available via a software deployment and become visible to all users at the same time.
As a result, every time a new feature is deployed, there is a risk that customers will have a less than stellar experience due to a poorly-implemented feature. The only way to fix a poorly-implemented feature is to immediately roll back to the prior version, or to create a fix as quickly as possible and roll forward by deploying a new version.
Within this traditional release process, many problems become apparent:
- The risk associated with new feature releases ends up slowing down developers since they have to thoroughly validate design and implementation before releasing.
- Often, there are multiple possible versions of how a new feature will look and function, and it’s up to the developer to choose one (not always the right one) and implement it.
- The decision of when to release new software features is controlled by developers instead of the business.
- Sunsetting old features introduces risk to newer features that might have dependencies on the old code.
- It’s all or nothing – a feature is rolled out to everyone at the same time instead of incrementally rolled out for verification purposes.
- When teams are beholden to engineering release cycles (e.g. once a month), multiple features are released simultaneously, introducing complexity and risk that can result in deployment war rooms, large rollbacks, and dissatisfied customers.
Said simply, it comes down to two things:
- Organizations need to deliver features faster while minimizing risk.
- Current tools and processes aren’t fast enough, yet still require a huge investment.
So how does an organization achieve higher engineering velocity without breaking existing processes, and indeed, reducing deployment risk even further?
Old Tools Can’t Solve New Problems
Companies today primarily try to solve these problems by repurposing their existing release processes. This means that they’re using mature and oftentimes complex methodologies to release features piecemeal or faster. Think of trying to use a cannon to kill a fly – it can work, but it’s probably overkill. While repurposing existing tooling can compensate in some ways, it ends up being very expensive and may miss on the specific requirements for an individual feature release.
Most companies are still not using feature flags. It is still not a universally-adopted practice, although it’s on its way to being so. Clearly, repurposing existing tools is not cutting it. And so teams need to find new ways to solve the problem. Quickly.
Issues on the Feature Flag Maturity Journey
The primary problem teams have is simply getting started fast and realizing value. Teams can get bogged down in figuring out how to start, they can design flags in counterproductive ways, and they can create future problems due to this immaturity in the beginning.
For teams who are more mature with feature flags, there is a “best practices” and management problem. Once a team has dozens or hundreds of flags, that means there is a lot of stale code, not a lot of process for managing it, and teams often struggle operationally to deal with this as part of a healthy workflow.
For some of the most mature teams, feature flags are often closely tied to their software delivery process, but fundamentally disconnected from it due to the existing vendors all being stand-alone tools. This means teams have to invest a lot of time in wiring up feature flags with metrics systems, build systems, etc. because the tools are not integrated natively. It also introduces significant maintenance overhead to ensure all these systems continue to work together over time.
So clearly, there are working solutions out there, but it seems they all have their own problems…
Harness Feature Flags = More Speed, Less Risk
Harness Feature Flags started as an internal project to use feature flags with our own software. The lessons learned from that project were applied to building the customer-facing Harness Feature Flags – everyone gets to benefit from our successes and failures.
In particular, Harness Feature Flags focuses on the following key concepts:
- Developer Experience – Putting heavy emphasis on the developer experience to ensure the setup process is fast and intuitive, and that teams are able to get started and see value from feature flags right away.
- Management & Governance – Letting teams build rules and processes and automating cleanup and flag lifecycle management. Ensuring teams can keep their systems secure, compliant, and standardized wherever possible is critical to their goals.
- 2+2=5 – Leveraging the Harness platform, making it easy to build workflows that are otherwise very difficult and manual to build. While users don’t need to use other Harness products, they create a whole greater than the sum of the parts.
What Makes Harness Feature Flags Unique?
While there are a variety of strong feature flag solutions in the market, including in-house builds, they tend to miss the mark on some key requirements for customers. Harness Feature Flags meets customers where they are in these areas:
- Simple UI-Based Feature Release Workflows – Customers have the ability to create templates and processes that they can standardize across feature flags that have the same operational needs. Feature flags are now included in a visual pipeline that includes steps related to governance and verification.
- Governance & Verification – Customers can ensure production pushes always meet defined organizational standards, and that they can minimize the negative impact of any issues in prod. Harness gives customers the ability to create controls in their feature release process, including mandating approvals and creating audit trails. In addition, customers can automate service verification once a feature is live, ensuring that if an issue occurs, the feature is turned off to minimize impact.
- Integration Into CI/CD – Many feature flag tools separate feature flags from the rest of the software development lifecycle. This creates a problem for customers, who inherently view feature flags as just another stage of that lifecycle (many companies even repurpose their existing software release processes to mimic the functionality of feature flags). By representing feature flags as a pipeline, feature flag management becomes a natural step in the everyday workflow of development teams and is integrated into CI/CD as a unified pipeline.
How To Get Started
To get started with Harness Feature Flags, just sign up for a demo and a Harness specialist will get you going.
Better yet, you’ll soon be able to get started with Harness Feature Flags in an entirely self-service manner. Check back in a couple of weeks for even more developer goodness!
You can also check out this video that walks through how Harness Feature Flags is designed specially for developers.