A Case Study in Balancing Control and Freedom
Introduction
Every large engineering organization eventually runs into the same wall. As the number of teams grows, from a handful of squads to hundreds of independent engineering units, the way software gets built, reviewed and released starts to fragment. One team merges code one way, another team has a completely different release checklist and a third team may have no checklist at all. Security reviews happen inconsistently. Compliance becomes a game of chasing down evidence after the fact instead of having it built into the process.
This is not a hypothetical problem. It’s the exact situation one of BuildPiper’s enterprise customers found itself in and the case study below walks through how its Platform team solved it using BuildPiper.
The Challenge: Standardization Without Slowing Teams Down
At the scale of a large enterprise, engineering isn’t a single team – it’s an ecosystem of teams, each responsible for different services, microservices, mobile applications, and infrastructure components. The Platform team’s mandate was clear but difficult to execute: standardize delivery mechanisms across the entire organization so that security, compliance, and governance controls aren’t scattered guidelines, but templated, enforceable, and consistent no matter which team is releasing what. Consistency also had to extend to how releases actually reached production: every deployment, from every team, needed to go out with minimal downtime, which meant adopting canary rollouts as the default release strategy organization-wide rather than leaving gradual, low-risk rollout as a practice only a few careful teams followed.
The difficulty is that standardization, if done wrong, becomes a bottleneck. Lock everything down too tightly and engineering velocity collapses, teams wait on approvals for things that shouldn’t require approval, and shipping software becomes slower, not safer. Leave things too loose, and you’re back to the original problem: inconsistent security postures, untracked releases, and compliance gaps that only surface during an audit or worse, an incident.
The Platform team needed a system that could do both at once: enforce non- negotiable controls where risk is highest, while preserving the autonomy that lets engineering teams move fast.
Why BuildPiper
This is where BuildPiper’s core templating framework became the deciding factor. The model rests on two distinct components that work together:
- Pipelines are the delivery mechanism – the actual sequence of stages a release moves through, from build to test to deployment.
- Global Templates are what plug into those pipelines to enforce security, quality, and compliance checks at each stage.
The two are separate but tightly related: a pipeline defines how a release moves; a template defines what it must pass along the way. The Platform team defines global templates once, centrally and any pipeline built using one automatically inherits the required security, compliance and quality checks, nothing has to be re-added by hand each time a team spins up a new pipeline.
That single architectural decision unlocked the design pattern the Platform team needed:
- Global templates standardize what every pipeline must enforce. The Platform team owns and defines these templates, pre-approved and centrally maintained, so any pipeline built from one carries the same required security, compliance and governance checks.
- Every production release is required to run through a pipeline built on a global template, with proper security and quality checks built in. There is no alternate path to production – this is enforced at the platform level, not just requested via policy.
- Non-production teams retain full independence. For development and testing workflows, teams can build their own pipelines and choose their own templates, tailored to how they actually work.
Because templates aren’t tied to any one stack, the Platform team can build them technology-wise – a Java template, a Node.js template, a Python template, a mobile build template, and so on each pre-configured with the right scans, checks and gates for that technology, but all inheriting the same underlying governance model. A team building a Java microservice and a team building a mobile app both run pipelines that are equally rigorous, equally enforced, just built on templates tailored to what they’re actually shipping.
The outcome is a system that is deliberately rigid exactly where it matters – production and deliberately flexible everywhere else. Teams aren’t waiting on approvals to experiment, iterate, or test. The guardrails only engage at the one moment that matters most: when code is about to reach real users on a live network.
The Right Mix of Freedom and Control
Throughout the rollout, one phrase captured the design philosophy better than any other: “the right mix of freedom and control.” In practice, this maps directly onto environments: UAT and Production carry strict control, while lower environments – dev and test – carry freedom. It’s worth breaking down what this actually meant for the two groups whose needs had to be balanced.
What Control Looks Like for Risk Managers and Governance Owners
For the people accountable for organizational risk, control isn’t a policy document sitting in a shared drive – it’s a set of rules enforced directly inside the release pipeline itself, specifically as a release approaches UAT and Production:
- A release ticket must exist before any release can proceed
- Explicit approvals are required before any release is promoted to Production
- Branches must merge following defined rules, in a specific, consistent pattern
- Code reviews are mandatory and evidence of that review is captured automatically, not manually attached
- Every step of the release process is fortified, meaning it’s structurally impossible to skip, bypass, or work around
- Governance stays agile through integrations with tools teams already use for tracking and approvals, like Jira and ServiceNow
None of this depends on someone remembering to follow the rules. The rules are the pipeline.
What Freedom Looks Like for Engineering Teams
For the teams actually building and shipping features, freedom means they aren’t micromanaged in the lower, nonproduction environments – dev and test – where oversight doesn’t add value:
- They can build and use their own templates in dev and test environments
- They can iterate, test, and experiment without waiting on approvals for internal changes
- They retain ownership over how they work day-to-day in lower environments, as long as the path to UAT and Production goes through the governed template
The genius of this design is that it doesn’t force a trade-off. Governance teams get the control they need where it matters most – UAT and Production; engineering teams get the autonomy they need in the environments where speed matters most – dev and test. Neither group has to compromise on what matters most to them.

Inside BuildPiper: The Features That Make This Real
Design philosophy only matters if the tooling can actually deliver it. Several BuildPiper capabilities work together to turn “the right mix of freedom and control” from a principle into daily operational reality:
| Feature | What It Does |
|---|---|
| Global Templates | Ensures every production release is only possible through a verified, pre-approved pipeline |
| Compliance Dashboard | Lets governance teams centrally define and track compliance rules across the organization |
| Code Freeze Windows | Controls precisely when releases are permitted, preventing risky releases during sensitive periods |
| Canary-Based Production Releases | Rolls out production changes gradually and in a controlled manner, rather than all at once |
| Defined Workflows | Standardizes tickets, approval stages, and process steps into one consistent, predictable path |
| Violation Handling | Automatically surfaces non-compliant releases in dashboards and reports — nothing slips through silently |
| Velocity Reporting | Gives leadership real-time visibility into which teams are compliant and how release velocity compares across the org |
| Maturity Insights | Surfaces DORA metrics (lead time to change, deployment frequency), along with code quality reports pulled from tools like OWASP, SonarQube, Trivy, and Veracode |
| Rego Policies | Codifies governance rules as policy-as-code, so compliance checks are enforced consistently and automatically at every stage of the pipeline |
| Observability via Monitoring Dashboard | Gives teams and governance owners real-time visibility into release health and system behavior post-deployment, not just at release time |
Together, these features mean governance isn’t something that happens after a release, through audits and after thefact reviews. It happens during the release, automatically, as a byproduct of teams simply using the platform.
Conclusion
What makes this Platform team’s approach worth studying isn’t any single feature – it’s the underlying design decision that ties everything together: separating how a release moves (the pipeline) from what it must satisfy along the way (the global template), and then drawing a clear line between environments – strict control in UAT and Production, real freedom in dev and test.
That one decision cascades into everything else. It’s why production releases can be non-negotiable about security and compliance without engineering teams feeling boxed in. It’s why governance can stay centrally owned without becoming a bottleneck. And it’s why the organization can standardize on canary rollouts, technology-wise templates, and policy-as-code governance without any of it feeling like extra process bolted on top — it’s simply how releases work here.
For a Platform team operating at this scale, that’s the real win: not more control, and not more freedom, but a system where both are structurally guaranteed at the same time.




