Originally published here.

DevOps has significantly changed the way companies approach developing and deploying applications.

DevOps is a philosophy that combines development (Dev) and operations (Ops) to provide a collaborative and simpler approach to delivering software. This is very different from the traditional Software Development Life Cycle (SDLC), also known as the “Waterfall” model, where development and operations are usually two different teams.

Technologies such as cloud, infrastructure-as-code (IaC), containers, etc., provide great flexibility and agility to the development teams. The developers can now easily provision infrastructure rapidly at scale using scripts or automation tools, and this can result in unnecessary cloud spending.

This leads to the emergence of FinOps, which offers a new perspective on optimizing software delivery in terms of cost-efficiency and financial transparency.

In this article, I’ll talk about the future path of DevOps and the critical role that FinOps will play in that trajectory.

Why DevOps?

In the past, the Software Development Life Cycle (SDLC) was largely following the "Waterfall" model. In such SDLC, each phase would take a few weeks (or even months) to complete before the next phase could effectively be commenced.

Some project managers might have "optimized" the project schedule by compressing the timeline with overlapping the phases, but by and large, the phases were stacked like a waterfall.


‎DevMar Debugged Podcast: Farhan Manjiyani | Best DevOps practices explained on Apple Podcasts
‎Show DevMar Debugged Podcast, Ep Farhan Manjiyani | Best DevOps practices explained - Jan 6, 2023


The limitations of Waterfall SDLC are three-fold:

Firstly, the implementation timeline is typically long by today's standards - a few months, and if there are some changes in the requirements, you couldn’t effectively handle that unless you roll back to the prior phases.

Secondly, because it would take a few months, sometimes as long as 9-12 months, before the end users could actually see the actual system, the failure rates are high as the systems are deemed to be very different from the expected outcomes.

Thirdly, the development and operations teams are usually two separate teams. The development team may not have enough motivation to ensure the systems they developed have as few bugs as possible or are easy to maintain when they aren’t the ones maintaining the systems post-production.

The operations team sees these systems as entirely black-box and doesn’t have as much knowledge about them as the development team.

This gives rise to DevOps, which is a philosophy that combines development (Dev) and operations (Ops) to provide a collaborative and simpler approach to delivering software.

Together with the Agile software development approach, DevOp resolves the "Waterfall" SDLC problems by promoting cooperation among the cross-functional teams, and their work is supported with automation and continuous integration and delivery (CI/CD).

This enables companies to expedite software delivery and encourage innovation where incremental software value is generated in each Sprint cycle, which typically lasts 2-3 weeks by pushing teams to explore, fail rapidly, and iterate quickly.

Hence, it’s not difficult to imagine that teams practicing DevOps are building software with improved quality control, less downtime, and at a pace not possible with the "Waterfall" model. This naturally results in increased customer satisfaction.

FinOps = Finance + DevOps

DevOps resolves many of the issues from a traditional "Waterfall" approach for software development and delivery. However, the power of DevOps creates some problems that could be better resolved by FinOps.

As companies scale their DevOps practices, they often struggle with the financial implications of increased infrastructure usage. Developers can easily spin off cloud resources using IaC, but such cloud spending may not be properly optimized.

In many situations, cloud spending could be reduced by a significant percentage while fully meeting the same business and technical requirements with a better solution design.

Similarly, there’s little visibility in cost allocation and cloud spending. Current DevOps practices promote tagging and labeling as best practices, but this may provide little help in some situations where granular cost allocations are needed.

For instance, Sprint cycles in Agile delivery allow products to be developed and launched at a fast pace, but it’s difficult to know and tie back each product feature launched to the actual cloud spending.

Product owners don’t know whether it makes business sense to release such product features, and even if they do, whether these features provide an optimum return on investment (ROI). Would it cost more than $100 to implement a product feature that gives the business value of just $1?

Why FinOps?

FinOps is the natural next step in the DevOps journey, as companies want to strike a balance between innovation, speed, and cost efficiency. FinOps incorporate financial management practices into DevOps processes, and more importantly allows the finance, operations, and engineering teams to work together hand-in-hand to manage and optimize cloud spending.

The key point to note is "optimize cloud spending", and not "reduce cloud spending." For instance, when your business is growing at scale, naturally your cloud spending will be increased significantly, and that’s not an issue, but a happy problem. What matters more is whether such an increase in cloud spending helps the business reach its goals.

Moreover, a culture of accountability is promoted when everyone involved in the SDLC is aware of the financial implications of their choices. This would encourage various IT, finance, and business stakeholders to work together and assume shared responsibility for cost optimization.

Conclusion

The path toward FinOps is inevitable as more companies embrace DevOps. DevOps changes the way we deliver software, and similarly, FinOps would change the way we approach DevOps. The future lies in integrating financial considerations seamlessly into DevOps so that each dollar invested is optimized for the best ROI.


Join our Slack community to discuss topics like FinOps (and much more) with other marketers and developers.

Join the community | Developer Marketing Alliance
The Developer Marketing Community Slack community is the perfect place to connect with like-minded marketers across the globe. You’ll be able to learn and grow alongside your peers, ask questions, find job opportunities, see the latest content, and much more.