How would you decide a KPI in building a system, and how you improve it?

  Google
Add Your Answer
Answers (4)

Would break this into two:

  1. Business KPI’s – These align with goals of the org/company/project. These help businesses determine the success/failure of the initiative. For example – # of users increase to X% or GMS impact of $X over next 6 months.
  2. Tech KPI’s – These would help Tech monitor to the success of the application. For example, production failures count, # of tickets, # of request handled per second etc.

How to improve it – monitor the KPI’s on a recurring basis, analyse the results, take corrective actions, review roadmap and how it aligns with the KPIs.

  • What is the north-star metric for the system?
  • Detailed KPIs can further be classified into:
    • process – How can we measure that the process is being followed correctly?
    • results – How can we measure the system is being effective / serving its purpose?

For each KPI, what is the current state? Is it quantifiable or will we end up with a qualitative measure?

I would decide KPIs based on the use case of the system. Usually, there are 3 types of systems:

  1. Read Heavy
  2. Write Heavy
  3. Both Read and Write Heavy

Read Heavy systems are those where usage is centered around data retrieval. For example You Tube. For such systems, I would focus on making them highly available and responsive. If its a global system, I would make them scalable to support the increased traffic. Speed is more important than accuracy.

Write Heavy systems are those where usage is centered around data creation/update/deletion. For example Trading websites/apps or Gaming applications. For such systems, I would focus on strong consistency and low latency. I would also focus on accuracy.

Read and Write Heavy systems are those where both read and write operations are performed frequently. Example social media websites like Facebook or eCommerce website like Amazon. I would focus on making them highly available and eventually consistent.

Now that we have a fair understanding of KPIs, we can now explore strategies to improve those KPIs.

  1. Read Heavy systems: Build Read replicas to improve response time, Use leader follower replication for a simple system. For bigger complex systems, use multi leader replication. Use CDNs / Read through Caching strategies to improve speed.
  2. Write Heavy systems: Use leaderless replication and write behind caching strategies.
  3. Both Read and Write Heavy systems: Build Data centers in each region. Use Multi leader replication.
  1. Clarify the question. Any specific system?
  2. Will study the related systems in the environment.
  3. Will define the goal, attributes of the system, stakeholders expectations, problems this system is going to address in case these things don’t exist already.
  4. With the above two steps, I Will come up with a draft of the System KPI.
  5. Will run it with leadership, stakeholders and will incorporate feedback.
  6. In parallel, will come up with quantification on these performance factors.
  7. Final review and freeze it.