FeatureFlagTech is a fully managed feature flag service inspired by the way you work and integrate with other professional digital services.
With us you pay only for what you use. We also offer a generous free tier.
* Total flag file size cannot exceed 10Kb.
FeatureFlagTech will be ready soon. Sign up now to get access first:
One of the ways you can use FeatureFlagTech is to launch new features within your code base quickly and easily. Here's how you would do it.
We are a privately owned business based in the UK with a joint experience of 20 years building software. We're a young company that believes that all dev teams should have the ability to quickly and efficiently to take advantage of feature flags when building software.
Our focus is on providing a first class feature flag service at the best possible price. A rich, easy to use control panel that provides unlimited usage combined with a first class fast and reliable API available over HTTP.
Our highest priority is performance and reliability. As we are based on AWS cloud infrastructure, we can provide the highest level of reliability all around the globe.
We are Alex Lethuillier and Tom Maslen. Alex is a trilingualist (fluent Spanish, French and English) with a masters degree in European business. She has a wealth of experience working in sales, marketing and exports roles. Tom has been programming since childhood, has lead many cloud based programming teams creating high profile online experiences and is a keen advocate of building performant software.
Feature flags, feature toggles, feature switches, feature flippers: this idea goes by quite a few names.
What we mean by feature flags is a technique that allows you to change how your software behaves without updating any code. By deploying a file containing all your feature flags seperately from your main codebase, you can use it to quickly alter the features in your program.
At its most basic level a feature flag will provide your code with a boolean value to branch logic off of. Want to try a new version of an algorithm? Use a boolean feature flag to let your code decide whether to use the new or old version. You can then switch between these by updating the value of the flag.
You can also use a feature flag for fine control of a value. Want to be able to quickly change the distance of a floating element from the top of a webpage? Then using a feature flag to hold that value will enable you to quickly adjust that position without a code redeploy.
Feature flags also enable you to work on new features of your software without having to create branches in your code repo. By wrapping the bit of your code in a feature flag - turned off by default - you can work directly on the master branch, commiting when you're ready to (safe in the knowledge that your unfinished feature won't be seen in production). No more mega branches, no more merge conflict hell. Instead of doing a big scary commit you simply switch the feature flag. If you find an issue with the new feature, quickly disable it by switching the feature flag again.
The examples above all involve a feature flag that changes when you want it to. It's essentially just a file that you edit. This is referred to as a static feature flag.
There is a more powerful type of feature flag called a dynamic feature flag. Dynamic feature flags will change the value based on who your end user is. This enables you to do much more powerful things, like A/B testing or personalising the service based on individual, or cohorts of users.
Dynamic feature flags need to be hosted by a service rather than just a static file. They won't provide you with everything you need to do A/B testing (you still need to collect and report on the metrics), but a dynamic feature flag service will provide you with the hardest part of A/B testing: determistically and randomly splitting users into groups.
A dynamic feature flag needs the following parameters:
As long as your user definitely has a unique ID (for example, create a cookie on a user's browser - cookie IDs are UUIDs) then you can hash that value and turn it into a percentage. The percentage can then be grouped depending on whether it is higher or lower than 50. You can think of this service as acting like a deterministic algorithm.
The feature will now randomly return one of the two values to your code. This does mean that the service you provide can't sit behind any kind of public caching, as you will want each user to get a different response based on their unique ID.
Certain feature flag services will even let you choose values for each flag dependant on certain cohorts the user is in: the country they are in, values assigned to their unique ID. This is where a feature flag service starts to blend into CRM territory.
Hopefully we've managed to convey just how powerful feature flags are. Recently (January, 2018) Mark Zuckerberg said this about Facebook:
"Already last quarter, we made changes to show fewer viral videos to make sure people's time is well spent. In total, we made changes that reduced time spent on Facebook by roughly 50 million hours every day."
Facebook did this just by combining feature flags with data science. There would have been no changes to features, the UX or the front end. Just the use of constant iteration by changing a flag value, measuring the result, and feeding that back into the product.
For more information on feature flags, we recommend "Feature Toggles" by the respected Martin Fowler (Chief Scientist at ThoughtWorks).