Skip to content
Guilherme Nogueira
Go back

FinOps Is a Practice, Not a Hire

7 min read

The bill goes up, and two ideas show up in the same meeting: buy a cost platform, or hire someone to own FinOps. Both feel like progress. Both are usually premature.

I once watched a team add a cost platform because the bill had become hard to explain. Within weeks we had dashboards for every account, service and trend anyone could ask for. The bill did not move. What moved it was far less impressive: someone started opening the numbers on a schedule, asking why they changed, and assigning the work that followed. The dashboard had the answers the whole time. Nobody owned the question.

That is the pattern. FinOps did not fail because the tool was bad. It failed because FinOps is not a tool, and at most companies it is not a hire either. It is a practice, and you can run it with structure you already have.

On the left, a greyed-out cost dashboard and a FinOps name badge struck through, the tools and titles you buy. On the right, an active cycle of three icons connected by arrows: account structure, a tag, and a calendar, the practice you run instead.

Table of contents

Open Table of contents

The short version

The reflex, and why it misfires

When the bill surprises someone, the instinct is to buy visibility or buy a person. Both feel decisive, and both can skip the step that actually changes the number.

A dashboard nobody acts on is not FinOps. It is a more expensive way to feel informed. And a FinOps hire dropped onto a team with no cost structure inherits the same fog everyone else has, plus a title and an expectation. The thing that was missing was rarely data or headcount. It was a practice: a place where cost lives, a person who owns it, and a decision that follows the number instead of admiring it.

The account is your first cost dimension

The cheapest cost tool you already own is a good account structure. When meaningful boundaries such as production, staging, development, or shared security tooling live in separate accounts, the linked account becomes a reliable cost dimension before you tag a single resource. “Why did the cloud get expensive” turns into “why is staging running at 62 percent of production,” which is a question someone can actually answer.

A tree from an AWS Organization node branching into four account boxes, Production, Staging, Development and Security, each with a row of coin stacks showing its relative monthly cost. The account boundary already reveals where the money goes, before any tags.

That is the quiet payoff of drawing boundaries by account instead of piling everything into one. Structure first, tags second, because the account boundary is the one dimension nobody can forget to apply.

Tags are the fine layer, but hope is not a strategy

Below the account, you want tags: service, owner, team, environment, cost center. But a tag that depends on everyone remembering to add it is not governance. It is hope, and hope is a terrible cost allocation model.

The fix is to make tagging impossible to skip, by putting it in the module everyone already uses instead of in a policy nobody reads.

# the module refuses to build without owner and cost_center,
# and stamps them onto every resource it creates
module "service" {
  source      = "./modules/service"
  name        = "checkout"
  owner       = "payments"
  environment = "production"
  cost_center = "cc-1042"
}

Enforced at the platform layer, cost allocation stops being a cleanup project and becomes a property of every resource by construction. It is the same move as least privilege: make the correct thing the default output of the platform, not a discipline you have to nag people into.

The cadence turns visibility into action

Here is the part that feels too simple to matter: the practice needs a recurring review. Once a month is enough to start. One owner opens the bill grouped by account and asks a short, boring list of questions.

The ritual matters more than the tool, because the tool reports and the ritual decides.

A number with no owner and no cadence is trivia

The same number, in front of someone who can turn something off, is FinOps.

Cost is an architecture decision

The biggest lever is not in the report at all. It is in the design review weeks earlier.

Cost is decided at design time. The invoice only reports it.

A NAT gateway in every availability zone, a database sized for a peak it rarely sees and left awake all night, cross-zone traffic nobody costed, a managed service chosen because it was easy in the demo. None of those arrive labeled as a FinOps problem. They arrive as an architecture decision that happened to have a price, and the cheapest moment to change them is before they ship.

A cloud architecture diagram with a price tag attached, labeled design, and an arrow pointing to an invoice, labeled invoice. The cost is decided at design time and the invoice only reports it.

That is why cost belongs in the RFC, next to reliability and security, as a criterion and not a surprise. A team that treats “what will this cost to run” as a design question rarely needs a FinOps rescue later. The savings were never a project. They were what good design looks like on an invoice.

When you actually do hire

I am not saying the role never exists. At real scale, with many teams, spend measured in millions, and a portfolio of commitments and reservations to manage, a dedicated FinOps function earns its keep the same way a dedicated security function does.

But you graduate into it after the practice exists, not instead of building it. Hiring FinOps to create the discipline is like hiring an SRE to create reliability by existing. The title does not do the work. The practice does, and the practice is cheap enough that there is no excuse to wait for the hire.

Final takeaway

FinOps is not a person you hire or a platform you buy. It is a decision you keep making: structure the accounts so cost has a shape, enforce the tags so it has detail, put one owner in front of it on a cadence, and treat “what will this cost to run” as an architecture question.

Do that and the bill stops being a monthly surprise and becomes one more thing the platform is designed to control. The cheapest cost tool you already have is a good account structure and a calendar invite.


Share this post:

Next Post
The First Hire Is the Expensive One