Switchover is a Software As A Service Solution (SaaS) that companies in every industry can use to accelerate their software development processes. Modern development processes mean fast release cycles. To ensure this, teams must be able to merge their development status back into the main branch at any time. But what if parts of the code are not yet functional or unfinished? The solution - feature toggles!
Thanks to switchover, teams get full control using feature toggles including framework support for easy integration into their software. This means that software can be released on demand, regardless of the status of the function. Long open feature branches and difficult merging into the main branch at the time of integration are belonging to the past. Simply toggle the function!
This is a common question. The difference lies primarily in the project approach. Imagine the way your teams currently work. The customer wants to have several new features developed. Now each team starts from the main development branch and creates a branch for the development of the features.
Depending on the feature branch, the desired features can be very large and thus take a long time to develop, on the other hand, of course, they can also be small and quickly integrated. You as a requester naturally want to make the new features available to the end customer as fast as possible.
Team A, now finished with the feature, therefore integrates the new code into the main development branch and deploys it to the customer. Team B, which unfortunately is not yet finished, keeps the branch open. This would not be a problem, if Team A would not develop new features again.
The longer Team B keeps the branch open, the further away they are from the main development branch. The result - merge conflicts, duplicate code development and missing package dependencies. The integration turns into a nightmare and also causes the problem that code adjustments made by Team B have a negative impact on Team A's features.
Try it! Its free 😊
Feature Flags support the teams to switch functions on and off without having to make code changes. Already during development, functions are written into blocks which can be switched on/off at runtime. This procedure does not replace the branching model, but supports the teams to integrate the branches back into the master in much shorter intervals. This significantly reduces the integration effort and finished functions do not have to wait for other unfinished functions because they can be easily switched off.
The almost perfect combination! Why? Putting code blocks into if/else blocks only tends to solve the problem.
What is missing is a system to influence the configuration from outside. This can be done in several ways - in the simplest case via a configuration file which is deployed together with the application. This approach solves the problem in smaller projects, but the more feature flags are used, the more difficult and error-prone the maintenance of the configuration becomes and requires the ability of the team members to handle complex configurations "correctly".
An error in the configuration, e.g. a forgotten quotation mark, leads to serious errors in the application. With the help of Switchover, configurations can be created comfortably via web interface and feature flags and the associated conditions can be controlled comfortably via web frontend.
A faulty operation is almost impossible, so that the configuration can also be carried out by non-developers without problems. If a Product Owner wants to show a new function for a moment, he can switch the function in real time without code adjustments with a few clicks.