Customer Snapshot
The Norwegian Customs Agency guards the country’s borders at sea, on land, and in the air, where millions of goods, packages, and travelers cross every year. Its operation spans the second-longest coastline in the world and a 2,562-kilometer land border, with multiple ports and airports and around 70 land crossings. How an officer works on a snowmobile in the frozen north has very little in common with how one works at a postal sorting facility, a ferry terminal, or a ship at sea.
Shipping software into that environment is less about raw speed and more about coordination. When a feature changes how officers do their jobs, you cannot simply flip a switch for the whole country at once. This is how FeatureOps on Unleash lets the agency roll out change safely, gradually, and on its own terms.
Results
- Deployments decoupled from releases, so the team deploys far more frequently.
- Trunk-based development now works. No more long-lived feature branches. The team works to main and hides new features behind toggles.
- Instant rollback for a security-critical government operation, at the push of a button.
- Synced, coordinated releases across four interdependent apps, which the old setup could not do.
- Gradual rollout by geography, starting at one location in Northern Norway and expanding nationwide as confidence grows.
The challenge: change that reaches the frontline
The agency runs several internal systems on its own platform. Two of them matter here: one for planning, executing, and documenting control activities, and one warehouse solution for tracking seized goods. They are built by different teams for different users, but they cover the same process, because a control activity can lead to seized goods.
In practice this is four interdependent apps. An officer logs a control in the control assignment app. If someone brings in more alcohol than the limit allows, the agency confiscates the excess, issues a fine through a separate app, manages that legally binding document in a back office app, and stores the bottles in a secure warehouse tracked by a fourth app. Until recently, the warehouse officer had to read data from the other apps by hand and re-enter it, a manual and tedious job. The goal was to automate that flow so the warehouse officer only verifies the information.
The hard part is that automating it changes how people work.
“Officers on the border had worked the same way for over twenty years, and now they suddenly have to work differently. As a product team, we cannot just flip the switch whenever we want.” — Bo Aanes, Frontend lead
A new feature touches dozens of people across the agency and the country, and frontline routines have to change with it. That requires coordination the old release process simply could not provide.
Why FeatureOps
Decoupling deployment from release gave the team the foundations it needed.
“Our deployments are now decoupled from releases, so we can deploy a lot more frequently. Trunk-based development now actually works. Instead of long-lived feature branches, we work towards main and hide new features behind toggles.” — Bo Aanes, Norwegian Customs Agency
Just as important for a government agency, the ability to reverse a change builds the trust needed to ship it at all.
“Whenever you do something new, just knowing you can turn it off again helps build trust, and makes it easier for those who give the go-ahead to accept the change.” — Bo Aanes, Norwegian Customs Agency
Why Unleash
Three things made Unleash the right fit. The first is one that matters enormously in the public sector and is easy to underestimate.
“Unleash is considered safe for use in the agency, which is not something to take lightly. Every third-party tool we use has to go through a bureaucratic security process to be approved.” — Bo Aanes, Norwegian Customs Agency
The second is custom activation strategies, which the team needs to coordinate a phased national rollout.
The third is a UI simple enough that product owners can operate it themselves.
From duct tape to product-owner control
The old way was, in Bo’s words, the duct-tape version of feature toggling. Each app had a back end and a front end running in a Kubernetes cluster, with toggles defined as environment variables in config map manifests. Flipping a toggle meant committing a change, which restarted services and risked the front end and back end falling out of sync, causing bugs. The chain of hand-offs to enable a single feature was long, and it left the team with no timed releases, no targeted features, and no synced releases across the four apps. Those three capabilities were exactly what the coordination required.
With Unleash, the product owner tests a feature in any environment, including production, and toggles it themselves, synced instantly.
“The development team can work at its own pace, without timing everything with the officers on the border. The product owner handles all that coordination without needing us developers.” — Bo Aanes, Norwegian Customs Agency
The effect is significantly less cognitive load, more team autonomy, faster development, and no more timing bottleneck. And no more being woken up to flip a switch.
“Previously, with a manual commit to toggle a flag, it was a pain toggling something at 3am. Now it’s developer-independent. Product owners don’t have to rely on us being up at 3am to push a button.” — Bo Aanes, Norwegian Customs Agency
For the agency’s domain experts, that means an overview of upcoming and past releases in one UI, and fully customizable release strategies, which Bo calls the alpha and omega of the whole effort.
Safe, gradual, nationwide
For the officers on the border, the payoff is predictability, zero downtime, and no big bang.
“We can start small at a location in Northern Norway and coordinate with the people working there. They’re the test group, they report if anything goes wrong, and we gradually expand from there until we cover the entire country.” — Bo Aanes, Norwegian Customs Agency
The mechanism behind that is location-aware targeting. The team connects activation strategies to attributes for Norway’s different location types, so a feature can be switched on or off for one site, one region, or one kind of border crossing at a time.
That phased approach minimizes risk, which matters when the work is governmental and security-critical.
Why now
The agency is rolling out digital products across the whole organization while complexity grows alongside an increasingly uncertain world. More products lead to more dependencies, which demand more advanced release strategies. With many interdependent apps and a long chain of dependencies, the team is clear that none of this coordination would be possible without FeatureOps and Unleash.