‘Continuous Delivery’ has been on everyone's lips for some time now. At OTTO, we moved our focus away from repetitive manual activities some years ago already, in order to focus on topics that deliver greater benefit to the customer. Many other companies have also recognized the advantages of this and are planning to implement Continuous Delivery, or are already doing it.
The aim is to fully automate the deployment or ‘continuous delivery’ of new software to the end-user, among other goals. This automation saves time that can then be dedicated to other topics. As a result, new features and other software changes can be presented to the end-user more quickly. Time-to-market, i.e. the time it takes for a feature to reach and be adopted by the end-user, is determined by the quality of automation and the elimination of manual steps.
In addition to automating build and deployment, there are also changes to the working approach that will reduce development-cycle time. One such change is replacing working with feature branches with working on the master branch in combination with feature toggles. At OTTO we use the feature toggles library Togglz, where we are also actively involved as maintainers of this open source project (1).
Togglz is an implementation of the toggle pattern feature (4). You can think of toggles as switches that turn features on as well as off in operation whenever required. They are an alternative to ‘feature branches’ as they’re known from open source projects on Github, or from working with other versioning services. However, feature toggles are not located at the versioning level but at the application level. We use the Togglz library ourselves daily at OTTO in several development teams, as we believe it offers many advantages.
Working with feature toggles as well as the Togglz library allows us to develop new features asynchronously from other teams, for example. Additionally, toggles mean deployments and product backlogs no longer have to be so closely coordinated with other teams. Similarly, merge conflicts are minimized, because feature toggles completely dispense with feature branches. This in turn reduces the communication effort and goes easy on the nerves of product managers/product owners and developers 😉 – just a few of the many reasons why we rely on feature toggles.
You can find out more about further advantages via the current issue of Java Magazine (10.2020) (3),
available from the kiosk since this week and wherever magazines are on sale. In addition to the use of feature toggles and the associated organizational implications, in the article we also discuss how to integrate and use the Togglz library with a spring boot application, what using feature toggles means for developers’ everyday work – and much more. So it's worth buying the current issue of Java Magazine ;-)
We hope we have sparked your curiosity about Togglz and the magazine article, and would be very happy to receive your feedback. Besides this we will of course also be happy to hear about issues and pull requests on GitHub. (2)
Should you have any questions, requests or suggestions, feel free to get in touch!
Sources, links and further reading
----------
1. https://www.togglz.org/
2. https://github.com/togglz/togglz
3. https://kiosk.entwickler.de/java-magazin/java-magazin-10-2020/
4. https://martinfowler.com/bliki/FeatureToggle.html
We have received your feedback.