A fundamental requirement for building a profitable product is finding ways to reduce costs and improve efficiency. When you’re operating in the cloud, it’s almost impossible to gain this insight without data. This is where data-driven software development comes in.
Data-driven development is a software engineering approach that relies on data to guide the development process. It involves selecting and monitoring metrics or key performance indicators (KPIs) that help you better understand your product so you can make continuous improvements.
The right KPIs encourage engineers to think about how their development decisions impact business goals and objectives. For example, collecting the right data about your cloud costs can help you make better pricing decisions and ultimately increase profitability. Here’s how to choose appropriate KPIs that provide the data you need to build profitable software products.
Choosing Relevant Business KPIs
The first step in data-driven software engineering is data collection. To collect data, you need to choose the KPIs or metrics to monitor. The challenge, however, is choosing metrics that are not only meaningful to engineers but also provide relevant business context.
Most engineers are comfortable with technical KPIs like cycle time, mean time to repair, velocity, and other performance-related metrics. These are used to monitor direct development activities and are usually the easiest to set up.
For example, if your engineers are working with Python, you can use frameworks like Django or Flask, which have built-in technical KPIs for monitoring performance. In AWS, you can access CloudWatch logs to see how many times an AWS serverless service failed or succeeded.
Technical KPIs are right up the alley of an engineer but they don’t give much information about what users (customers) need from your platform or the impact of development activities on your business.
This is where user KPIs come in handy. Instead of reporting the number of requests per second, you report the number of times a user completed a valuable unit of work. This gets you closer to understanding the value of your platform and how to improve it.
Once you start tracking important user-focused metrics, then the next step is to tie those KPIs to your financial goals. This means understanding how the activities of your users impact your costs.
Important User-focused KPIs To Track
Two of the most important KPIs to track across your company when building software products are:
1. Cost per customer
Linking customer behavior, such as customer usage, to finance means understanding how the activities of your customers impact your cost. For example, what are the costs of providing your service to free tier versus enterprise customers?
This insight is important because a particular customer may be too expensive and your current price may be too low to viably support that customer. This gives you a hint into the parts of your platform which may not scale properly and you could consider rebuilding.
2. Cost per feature
Cost per feature is an important metric to track, especially if you’re using feature-based pricing for your product. For example, a popular free-tier feature may be costing your business more money than less popular features in higher-priced tiers.
Understanding how much it costs to deliver a specific feature to a specific customer segment helps you make smarter pricing decisions that ultimately impact your bottom line.
Monitor The KPIs That Matter With CloudZero
To adopt KPIs that show the user’s journey, you have to build tools that help you track those KPIs in your application. Those custom KPIs are not native in AWS or your framework, such as Kubernetes, and this means some extra work for your engineers.
If you don’t want to invest additional engineering effort into building out your own KPIs, you can leverage CloudZero’s cost intelligence platform. In CloudZero, you can define KPIs that are the most meaningful to your business and connect those KPIs to cost without any engineering effort. CloudZero’s telemetry API also allows you to import data from your AWS environment and connect them to business domains.