Talentech provides an automated ecosystem that integrates human resource data, systems, and applications in a single hub. Its product is designed to streamline the full talent journey, from employer branding through employee offboarding.
“Roughly 2200 customers use our products,” shares Henning Støverud, Chief Architect at Talentech. “Our application tracking systems handle around 6 million job applications for our customers every year. More than 300.000 candidates are hired through the same systems.”
Talentech is a large company, and during its rapid growth its business has evolved. This brought a number of complexities to its development teams.
“Talentech has transitioned from being multiple separate companies with their own monolithic applications to being one company with several applications and a growing number of microservices,” says Henning. “Before using feature toggles, each team needed to do more coordination of deployments to handle dependencies between systems.”
With the full scope of HR in one product, Talentech often releases new features. Using traditional software release cycles, these features were tied tightly to software deployments. Test phases before releases were quite long, which often led to delays in releasing key features.
“The old release process included a code freeze, and a 2 week test phase before production deployment,” says Henning. “Most releases would have some incident/issue that needed either a full rollback or stressful hotfixes.”
The company experimented with a simple feature toggle setup, but found that it needed a more robust solution than it could create in-house.
After hearing about Unleash at a local tech company, Talentech experimented with Unleash’s open-source offering. The company prioritized a user-friendly experience.
“At that time, alternate feature flag solutions seemed unnecessarily complex and feature-rich,” shares Henning. “We needed something simple.”
For Henning, the ability to self-host was also appealing.
“When we first got started, it was also a plus that we could get up and running with our own self-hosted instance in a Docker container.”
The company soon implemented Unleash through several development teams working on different products that are part of Talentech’s product suite offering.
“We use Unleash to streamline our development process, coordinate releases and make sure our product development can be done in an agile and efficient manner,” Henning shares.
The company used the self-hosted open source offering for a few years before transitioning to Enterprise.
“We had already used the open source, self hosted version of Unleash for a few years but needed some more features like SSO and access control,” says Henning.
After starting with Unleash, Henning quickly saw that more testing in production led to fewer serious incidents.
“By deploying more frequently, the size of each deployment has been drastically reduced and new functionality can be tested early and more gradually thanks to Unleash and feature toggles,” says Henning. “It allows developers to be more confident that their gradual changes do not cause any big issues and it allows product managers and other stakeholders to help test new functionality early.”
The company found that the introduction of feature toggles made coordination between teams easier, as activating and deactivating dependencies could be conducted from one central place.
“One example was when we introduced a new user management API,” says Henning. “Multiple teams could prepare the necessary code to start using the new API while still keeping the old one working. When each team was ready, they could gradually enable the new one at their own pace.”
Talentech was able to use Unleash to streamline its development process. One of its teams moved from a release cycle of once per quarter to a new release every week.
“This change is primarily achieved by introducing automated builds and deployments via Azure DevOps,” says Henning. “One of the key ingredients for making this happen is to make sure new features can be hidden behind feature toggles so they can be deployed to production without being exposed to customers before they are ready.”
This team’s success became a model for other development teams.
“This team uses trunk-based development and short-lived feature branches, and their master branch is always in a deployable state,” shares Henning. “Several teams now use this approach.”
Unleash is now a large part of Talentech’s development process. Henning expects that to grow even more:
“We now have five developer teams and 16 different apps and projects using Unleash,” says Henning. “We are hoping to onboard five or six more teams soon. In total, we have 184 feature toggles at the moment, but this is probably a lot higher than it should be. We try to get rid of toggles as soon as we can so it does not become a configuration tool.”
Henning’s advice to companies who are new to feature flags
“Make sure to define the difference between deployments and releases. You want to rig your setup to enable frequent deployments and use feature flags for releasing new features when needed.”
“Do not use feature flags as permanent configuration management, but rather as a temporary tool to help release new features. Remove the flags from the code base when the feature is fully released.”
“Keep the logic for feature toggles simple and understandable. We have found that it works best to implement the toggle logic as close to the UI as possible. If you start adding the toggle further into the business logic or in other parts of the code, it quickly gets too complex to reason about and you will run into problems.”