Imagine boosting developer productivity by 30% while slashing project costs by 25%. That might sound impossible, yet it’s a realistic goal for organizations that adopt FinOps (Financial Operations) – a data-driven approach to measuring software development lifecycle costs.
I’ve seen firsthand how FinOps adoption can transform developer productivity and optimize cloud costs, and am now an enthusiastic FinOps advocate. Many have discovered that using FinOps to establish an overlay between finance, product, and engineering teams enables their CFOs and CTOs to meet their cost savings goals.
Managing costs around cloud services isn’t just a technical challenge–it’s also a strategic business imperative, especially as organizations invest more money in the cloud. FinOps brings necessary financial accountability to the cloud’s variable spend model. Let’s walk through the benefits of FinOps and how you can begin incorporating FinOps methodologies into your operational workflows.
Bridge technical and financial domains
There are two approaches to creating a FinOps model: Offer the age-old carrot and stick approach. The former fosters a more collaborative and transparent environment while reprimanding development teams for overspending most often leads to a breakdown in processes. You want FinOps to account for what developers need to do their work, not just monitor their use of cloud resources, and how it impacts the company’s bottom line.
A successful FinOps program does not require a dedicated team of full-time FinOps professionals. FinOps serves as a strategic liaison among teams across the organization such as finance, product, and engineering. A typical FinOps program includes various job roles and functions. For example, a CTO, or VP of Engineering, a finance leader, and one or more engineering leaders who regularly collaborate to evaluate issues, identify new efficiency opportunities for efficiencies and build remediation plans.
Aligning technical operations with financial objectives helps ensure that cloud infrastructure and software development investments yield the highest possible return. This can demonstrate to DevOps teams how their work contributes directly to increasing revenue, how they may be able to reduce costs, or both.
Enhance financial governance
FinOps monitors resource consumption from both a user and operational standpoint to help optimize developer workflows. One way to accomplish this is to analyze each Continuous Integration (CI) job to identify any that are disproportionately expensive relative to their value or frequency of execution.
Any software development pipeline contains many jobs, each requiring an execution resource like a virtual machine (VM) or container. The longer that job takes to execute, the higher the cost. Developers tend to ignore refactoring application pipelines once they are working. They won’t know what to refactor without a FinOps model to help them see which jobs are performing poorly.
Ideally, FinOps creates a self-service model that frees DevOps teams to do their work within a prescribed set of guidelines. For example, a policy might prohibit someone from provisioning $100,000 worth of resources on AWS, but they can spin up an EC2 image to conduct testing. However, if they can justify why they need to provision $100,000 worth of resources, they first submit a request explaining how the project will potentially generate revenue for the company. If approved, they can begin their work.
Improve cost control and visibility
I want to reassure DevOps professionals that FinOps is not intended to be a monitoring mechanism that hinders innovation. Its mission is to provide full visibility into your organization’s cloud usage and spending to help identify opportunities to improve cloud productivity.
I recently met with the DevOps team at an insurance company that is beginning its FinOps journey. Early discussions included determining basic measurements such as cloud spend and identifying other revenue-driving, cost-reducing metrics through value stream management. These conversations are critical for FinOps to evaluate how teams and resources are organized and allocated, and which processes and tools may be implemented to drive change.
In addition to fostering collaboration among finance, technology, and business teams, FinOps analyzes usage patterns, and forecasts demand to anticipate whether resources need to be scaled up or down to meet future needs before overspending occurs.
Ease the tension
There’s a constant tug-of-war between engineering and operations teams: Engineering’s mission is to drive innovation that generates new revenue streams while creating great customer experiences. The operations team focuses on maximizing productivity while saving money. FinOps eases the tension between both sides by striking the necessary balance between increasing developer productivity while reducing project spending to align technical efficiency with financial prudence.
In the ongoing debate over whether software development is an art or a science, I fall squarely on the side of science. FinOps helps DevOps teams think in precise numbers, not subjective costs. It’s imperative to approach software development with a clear understanding of its financial impact on the organization to make informed decisions on project continuance based on those two key criteria: will the project increase revenue or reduce costs?
FinOps isn’t just about cutting costs; it’s also about optimizing the entire software development lifecycle. The goal is to help engineers and operations consider financial effectiveness alongside technical innovation so they understand how their work maps to boosting the organization’s bottom line.