#174: Transaction-based costing in Software Development

Are you struggling to track the true return on investment in your software development projects?

Traditional CapEx and OpEx models may not be enough in dynamic environments. But don't worry, there's a solution!

In this episode, I introduce transaction-based costing.

By assigning a cost to each transaction within the software development process, you can achieve better transparency, tighter cost control, and a more direct linkage to outcomes.

Or listen at:

Published: Wed, 26 Jul 2023 15:00:23 GMT

Transcript

Hello and welcome back to the Better ROI from Software Development Podcast.

In this episode, I want to look at how we think about cost within software development, specifically moving away from the traditional capital expenditure (CapEx) and operational expenditure (OpEx) models to a transaction based cost linkage.

Now, you might be asking yourself, why is this important to me?

Well, in today's competitive business landscape, having a clear and accurate understanding of your costs is more crucial than ever. It allows you to be better managing resources, making informed strategic decisions, and ultimately maximizing your ROI.

But before we delve further, let's quickly define CapEx and OpEx.

In the world of software development, CapEx typically refers to the upfront cost incurred when investing in new software development projects. This might include costs for hardware licenses or the development of a new software product. On the other hand, OpEx refers to the ongoing cost for running and maintaining those systems. This could cover costs like system maintenance, upgrade support and in some cases the cost of software used as a service.

Traditionally, businesses have split their software development costs into those two categories. However, this model is not without its flaws. It can often be challenging to actually track those costs and tie them directly to specific outcomes in your software development projects.

That's where transaction based costing comes into play.

Before we move on to transaction based costing, let's go a bit deeper on understanding CapEx and OpEx, where they excel and where they leave some room for improvement.

CapEx and OpEx models work incredibly well in static environments where initial investment and ongoing costs are predictable. They offer a clear distinction between the upfront investment, like procuring hardware or developing a software program and the ongoing cost to maintain, upgrade or support these systems.

However, the software development landscape is anything but static. Technology evolves at a lightning fast pace and business's needs can shift unexpectedly - in a dynamic environment CapEx and OpEx models can become a bit murky. Tracking costs accurately under these models can be quite challenging, especially in agile development environments where adjustments and iterations are frequent. It's often difficult to tie those costs directly to specific software development outcomes, which can create a lack of transparency and make it harder to measure the true return on your software investment.

To illustrate this point, let's look at a case study.

Consider a company that invests in a significant software development project, treating the entire development cost as CapEx. They maintain and upgrade the system over several years, treating these costs as OpEx.

However, when the company introduces a new line of business that requires significant adjustment to the software, it was hard to track those costs accurately - were they part of the original CapEx or were they additional OpEx?

More importantly, how could they accurately link those costs to the outcome of the new line of business?

It was a gray area that led to complexity and confusion.

This scenario exemplifies the issues many businesses encounter with traditional CapEx and OpEx models in software development, and it's leading to a rethink on how we approach cost management in this field.

Okay, so now let's introduce an alternative, the transaction based costing.

Unlike CapEx/ OpEx models which focus on the type of expenditure, transaction based costing focuses on specific transactions within the software development process. It assigns a cost to each of these transactions, giving us a detailed view on how resources are used across different stages of development.

This approach offers numerous advantages.

Firstly, it provides better transparency by linking costs directly to specific transactions. We can see exactly where and how money is being spent. This leads to tighter cost control. You can adjust your expenditure in real time based on the actual cost of transactions rather than estimates or averages.

Lastly, transaction based costing provides a more direct linkage to outcomes. When you can track the cost of each transaction, it becomes easier to measure the return on those investments.

To see a transaction based costing in action, let's consider an example;

Imagine a software development company that assigns costs to individual tasks in their project management tool. They could, for instance, assign a cost to the task of coding a new feature, testing it and deploying it. As these tasks are then completed, the company can see in real time how much each feature cost to develop.

Furthermore, when that feature starts to generate business value, they can directly link this value to the cost of the transactions that produced it.

In this way, transaction based costing provides a clear granular view of expenditure, allowing for better cost management, improve decision making, and ultimately a better ROI on the software development efforts.

Now let's talk about how you could implement transaction based costing approach in your organization:

Step one identify the transactions.

Before you can link cost to transactions, you need to define what constitutes a transaction within your organization. In the context of software development, a transaction could be anything from coding a new feature, running a series of tests, deploying a software update to resolving a ticket in the helpdesk. It's important to be thorough in this step and capture all potential transactions that could incur a cost.

Step two assign cost to transactions.

Once you've identified your transactions, the next step is to assign cost to each one. This could be based on the hours used, the use of resources or any other method that reflects the true cost of the transactions. Many project management and accounting tools allow you to track these costs automatically, making this process much easier and more accurate.

Step three monitor and adjust with your costs assigned.

It's vital to monitor these regularly and make adjustments as necessary. Transactions costs may vary over time due to changes in technology, market conditions or internal process. Regular monitoring shows your cost allocation remains accurate and provides meaningful insight for decision making.

By following these three steps, you can implement transaction based costing in your organization, offering you greater visibility and control over your soft development costs.

And it's important to acknowledge that any shift in cost management approach is not without challenge - but don't worry, we're also explore some solutions to help you navigate those obstacles.

The first challenge many organizations face when implementing transaction based costing is defining what constitutes a transaction in a field as complex and multifaceted as soft development. Identifying discrete transactions that accurately reflect your activities can be tricky. A potential solution is to engage in a collaborative exercise with your team. Harness the collective knowledge of your developers, project managers and financial personnel to create a comprehensive list of transactions.

A second challenge is a difficulty of accurately assigning costs to those transactions. It's not always easy to quantify the cost of a task in terms of the hours or the resources used, especially if your team works on multiple tasks concurrently. Here, the solution might be to adopt advanced program management tools or to work with a financial analyst who has expertise in cost allocation.

The third challenge lies in monitoring and adjusting cost allocations. This can be time consuming and require constant vigilance. However, with the right digital tools and systems, this process can largely be automated. Modern project management tools can track time and resources at a granular level, making it easier to monitor and adjust costs in real time.

As we've seen, digital tools and systems play a vital part in implementing and managing transaction based costing. They not only automate and streamline processes, but also provide valuable data and insight to guide your decision making. In the end, while the shift to transaction based costing might seem daunting, the benefits of improving cost, transparency, control and linkage to outcomes are well worth the effort.

In this episode, I wanted to introduce the idea of transaction based costing over the traditional CapEx and OpEx models. Let's quickly recap the key points we've covered;

We started with a look at traditional CapEx and OpEx models in software development and how their lack of granularity can often make it challenging to track costs accurately and link them to specific outcomes.

From there, we introduced the concept of transaction based costing as an alternative. By assigning cost to individual transactions within the software development process. This approach offers better transparency, tighter control, and more direct linkage to outcomes.

We also walked through the practical steps to implement transactional based costing, identify the transactions, assign cost to those transactions, and then monitor and adjust those costs over time.

Finally, we looked at some of the challenges that can arise when shifting to this approach and highlighted the importance of digital tools to overcome these challenges.

If you're seeking greater clarity and control over your software development costs, I encourage you to consider whether transaction based costing might be a good fit for your organization. It might take some effort to implement, but the potential benefits to your ROI could be significant.

In next week's episode, I'll continue this theme by revisiting how cloud and serverless models fit so well with this transaction based costing.

Thank you for taking the time to listen to this episode. I look forward to speaking to you again next week.

ChatGPT transcript

This episode used content generated through conversation with ChatGPT. The below is the full conversation with ChatGPT.


User:

The Better ROI from Software Development podcast is a short (10-15 minutes) weekly podcast aimed at non-technical CXO/ Managers - advising them on how to get better results from their software development efforts. Draft an outline for an episode that talks about linking costs to transactions rather than traditional capex/ opex approaches

ChatGPT:

Episode Title: Shifting the Paradigm: Linking Costs to Transactions in Software Development

I. Introduction (1-2 minutes) * Quick greeting and introduction to the topic: the shift from traditional CapEx/OpEx approaches to transactional cost linkage in software development. * Importance of the topic for non-technical CXOs/Managers. * Briefly explain CapEx/OpEx in the context of software development for the uninitiated.

II. The Problem with Traditional Costing Models (2-3 minutes) * Deep-dive into CapEx/OpEx models: where they work well and where they don't. * The challenges of accurately tracking costs and linking them to specific software development outcomes. * A quick case study or an example to illustrate these issues.

III. The Shift to Transaction-Based Costing (3-4 minutes) * Introduce the concept of transaction-based costing: what it is and how it differs from CapEx/OpEx. * Benefits of transaction-based costing: better transparency, tighter cost control, and more direct linkage to outcomes. * Case study or example to illustrate how this model works in practice.

IV. Practical Steps for Implementing Transaction-Based Costing (3-4 minutes) * Step 1: Identify the transactions: Explain how to define what constitutes a "transaction" in their context. * Step 2: Assign costs to transactions: Techniques for tracking and assigning costs. * Step 3: Monitor and adjust: Describe the importance of ongoing monitoring and adjustment of cost allocations.

V. Challenges and Solutions (1-2 minutes) * Discuss common obstacles to implementing transaction-based costing and some potential solutions. * Highlight the importance of digital tools and systems in facilitating this approach.

VI. Conclusion (1-2 minutes) * Summarize the key points of the episode. * Encourage listeners to consider whether transaction-based costing might be a good fit for their organization. * Preview the next episode's topic and give a final farewell until next time.

VII. Outro (30 seconds - 1 minute) * Thank listeners for their time, remind them to subscribe, rate, and review. * Mention any sponsors and remind listeners about the podcast’s social media handles or website for further interaction. * Sign off.


User:

Produce an introduction script for the episode - be sure to cover: * Quick greeting and introduction to the topic * the shift from traditional CapEx/OpEx approaches to transactional cost linkage in software development. * Importance of the topic for non-technical CXOs/Managers. * Briefly explain CapEx/OpEx in the context of software development for the uninitiated.

ChatGPT:

[Theme Music]

Host: "Hello and welcome to another episode of the 'Better ROI from Software Development' podcast, the weekly guide designed specifically for non-technical CXOs and managers. I'm your host [Your Name], and today we're diving into a shift that could revolutionize your approach to budgeting in software development. We're talking about the move from traditional Capital Expenditure (CapEx) and Operational Expenditure (OpEx) models to a transaction-based cost linkage.

Now, you might be asking yourself, why is this important to me as a CXO or manager? Well, in today's competitive business landscape, having a clear and accurate understanding of your costs is more crucial than ever. It allows you to better manage resources, make informed strategic decisions, and ultimately, maximize your ROI.

But before we delve further, let's quickly define CapEx and OpEx for those who may not be familiar with these terms. In the world of software development, CapEx typically refers to the upfront costs incurred when investing in new software development projects. This might include costs for hardware, licenses, or the development of a new software system.

On the other hand, OpEx refers to the ongoing costs for running and maintaining these systems. This would cover costs like system maintenance, upgrades, support, and in some cases, the cost of software used as a service.

Traditionally, businesses have split their software development costs into these two categories. However, this model is not without its flaws. It can often be challenging to accurately track these costs and tie them directly to specific outcomes in your software development projects.

That's where transaction-based costing comes into play. But more on that after the break. Stay tuned for an enlightening journey into the world of cost management in software development."

[Theme Music]


User:

Produce a script for the problem with traditional costing models - be sure to cover: * Deep-dive into CapEx/OpEx models: where they work well and where they don't. * The challenges of accurately tracking costs and linking them to specific software development outcomes. * A quick case study or an example to illustrate these issues.

ChatGPT:

[Theme Music]

Host: "Welcome back to 'Better ROI from Software Development'. Before the break, we touched on CapEx and OpEx as two traditional models for accounting costs in software development. Now, let's go a bit deeper to understand where they excel and where they may leave some room for improvement.

CapEx and OpEx models work incredibly well in static environments, where initial investments and ongoing costs are predictable. They offer a clear distinction between the upfront investment, like procuring hardware or developing a software system, and the ongoing costs to maintain, upgrade, or support these systems.

However, the software development landscape is anything but static. Technologies evolve at a lightning-fast pace, and business needs can shift unexpectedly. In such a dynamic environment, CapEx and OpEx models can become a bit murky.

Tracking costs accurately under these models can be quite challenging, especially in agile development environments where adjustments and iterations are frequent. It's often difficult to tie these costs directly to specific software development outcomes, which can create a lack of transparency and make it harder to measure the true return on your software investments.

To illustrate this point, let's look at a case study. Consider a company that invested in a significant software development project, treating the entire development cost as CapEx. They maintained and upgraded the system over several years, treating these costs as OpEx. However, when the company introduced a new line of business that required significant adjustments to the software, it was hard to track these costs accurately. Were they part of the original CapEx, or were they additional OpEx? More importantly, how could they accurately link these costs to the outcomes of the new line of business? It was a grey area that led to complexity and confusion.

This scenario exemplifies the issues many businesses encounter with traditional CapEx and OpEx models in software development, and it's leading to a rethink of how we approach cost management in this field. Up next, we'll explore an alternative that is gaining traction: transaction-based costing. So don't go away, we'll be right back."

[Theme Music]


User:

Produce a script about transaction based costing - to cover: * Introduce the concept of transaction-based costing: what it is and how it differs from CapEx/OpEx. * Benefits of transaction-based costing: better transparency, tighter cost control, and more direct linkage to outcomes. * Case study or example to illustrate how this model works in practice.

ChatGPT:

[Theme Music]

Host: "Welcome back! As we continue our exploration of cost management in software development, it's time to introduce a promising alternative to traditional models: transaction-based costing.

Unlike CapEx/OpEx models, which focus on the type of expenditure, transaction-based costing focuses on specific transactions within the software development process. It assigns a cost to each of these transactions, giving us a detailed view of how resources are used across different stages of development.

This approach offers numerous advantages. Firstly, it provides better transparency. By linking costs directly to specific transactions, we can see exactly where and how money is being spent. This leads to tighter cost control. You can adjust your expenditure in real time, based on the actual costs of transactions, rather than estimates or averages. Lastly, transaction-based costing provides a more direct linkage to outcomes. When you can track the cost of each transaction, it becomes easier to measure the return on those investments.

To see transaction-based costing in action, let's consider an example. Imagine a software development company that assigns costs to individual tasks in their project management tool. They could, for instance, assign a cost to the task of coding a new feature, testing it, and deploying it. As these tasks are completed, the company can see in real time how much each feature costs to develop. Furthermore, when that feature starts to generate business value, they can directly link this value to the cost of the transactions that produced it.

In this way, transaction-based costing provides a clear, granular view of expenditure, allowing for better cost management, improved decision-making, and ultimately, a better ROI on software development efforts. But implementing this approach is not without its challenges, which we will delve into after the break. Stay tuned."

[Theme Music]


User:

Produce a script to discuss practical steps for implementing transaction based costing - to cover: * Step 1: Identify the transactions: Explain how to define what constitutes a "transaction" in their context. * Step 2: Assign costs to transactions: Techniques for tracking and assigning costs. * Step 3: Monitor and adjust: Describe the importance of ongoing monitoring and adjustment of cost allocations.

ChatGPT:

[Theme Music]

Host: "Welcome back to the 'Better ROI from Software Development' podcast. We've been discussing the shift from traditional CapEx/OpEx models to transaction-based costing. Now, let's talk about how you can implement this approach in your organization.

Step 1: Identify the Transactions. Before you can link costs to transactions, you need to define what constitutes a 'transaction' within your organization. In the context of software development, a transaction could be anything from coding a new feature, running a series of tests, deploying a software update, to resolving a ticket in the helpdesk. It's important to be thorough in this step and capture all potential transactions that could incur a cost.

Step 2: Assign Costs to Transactions. Once you've identified your transactions, the next step is to assign costs to each one. This could be based on man-hours, use of resources, or any other method that reflects the true cost of the transaction. Many project management and accounting tools allow you to track these costs automatically, making this process much easier and more accurate.

Step 3: Monitor and Adjust. With your costs assigned, it's vital to monitor these regularly and make adjustments as necessary. Transaction costs may vary over time due to changes in technology, market conditions, or internal processes. Regular monitoring ensures your cost allocations remain accurate and provide meaningful insights for decision-making.

By following these three steps, you can implement transaction-based costing in your organization, offering you greater visibility and control over your software development costs. However, like any shift in approach, this one comes with its own set of challenges. Stay with us after the break as we explore some common obstacles and how to overcome them."

[Theme Music]


User:

Produce a script looking at the challenges and solutions - to cover: * Discuss common obstacles to implementing transaction-based costing and some potential solutions. * Highlight the importance of digital tools and systems in facilitating this approach.

ChatGPT:

[Theme Music]

Host: "Welcome back. As we venture further into the world of transaction-based costing, it's important to acknowledge that any shift in cost management approach is not without challenges. But don't worry, we'll also explore some solutions to help you navigate these obstacles.

The first challenge many organizations face when implementing transaction-based costing is defining what constitutes a 'transaction'. In a field as complex and multifaceted as software development, identifying discrete transactions that accurately reflect your activities can be tricky. A potential solution is to engage in a collaborative exercise with your team. Harness the collective knowledge of your developers, project managers, and financial personnel to create a comprehensive list of transactions.

A second challenge is the difficulty of accurately assigning costs to these transactions. It's not always easy to quantify the cost of a task in terms of man-hours or resources used, especially if your team works on multiple tasks concurrently. Here, the solution might be to adopt advanced project management tools or to work with a financial analyst who has expertise in cost allocation.

The third challenge lies in monitoring and adjusting cost allocations. This can be time-consuming and require constant vigilance. However, with the right digital tools and systems, this process can be largely automated. Modern project management tools can track time and resources at a granular level, making it easier to monitor and adjust costs in real time.

As we've seen, digital tools and systems play a vital role in implementing and managing transaction-based costing. They not only automate and streamline processes but also provide valuable data and insights to guide your decision-making.

In the end, while the shift to transaction-based costing might seem daunting, the benefits of improved cost transparency, control, and linkage to outcomes are well worth the effort. So, why not give it a try and potentially improve your software development ROI?

Next time, we'll delve into another exciting topic that can revolutionize your software development processes. So make sure to tune in. But for now, let's wrap up."

[Theme Music]


User:

Script a conclusion to the episode - to include: * Summarize the key points of the episode. * Encourage listeners to consider whether transaction-based costing might be a good fit for their organization. * Preview the next episode's topic and give a final farewell until next time.

ChatGPT:

[Theme Music]

Host: "As we draw this episode to a close, let's quickly recap the key points we've covered. We started with a look at traditional CapEx and OpEx models in software development, and how their lack of granularity can often make it challenging to track costs accurately and link them to specific outcomes.

From there, we introduced the concept of transaction-based costing as an alternative. By assigning costs to individual transactions within the software development process, this approach offers better transparency, tighter cost control, and a more direct linkage to outcomes.

We also walked through the practical steps to implementing transaction-based costing: identifying the transactions, assigning costs to these transactions, and then monitoring and adjusting these cost allocations. Finally, we looked at some of the challenges that can arise when shifting to this approach and highlighted the importance of digital tools in overcoming these challenges.

If you're seeking greater clarity and control over your software development costs, I encourage you to consider whether transaction-based costing might be a good fit for your organization. It might take some effort to implement, but the potential benefits to your ROI could be significant.

In our next episode, we'll explore 'Agile Development: Maximizing Efficiency and Quality'. We'll demystify the agile process, explain its benefits, and provide some practical advice on how you can implement it in your organization. So, make sure to tune in for that.

Thank you for joining us today on 'Better ROI from Software Development'. As always, we appreciate your time and look forward to continuing this journey towards more effective, efficient, and profitable software development with you. Until next time, this is [Your Name], signing off. Stay innovative!"

[Theme Music]