Cheat sheet: How to improve something?

Image source: Google Images

These are the steps I would follow, if I want to improve something. This is not a definitive guide, however this is the cheat sheet I follow, thought it might be useful for you.

I build software, so I can give you an example from software development perspective, but this can be applied in other areas as well.


Split the problem into pieces, what ever I am trying to improve or optimize. splitting up is one of the most important tasks, as you will get a clear picture what components/sub tasks involved in a product.

Whenever I come across a product. Before I ask how to improve it, I ask myself what are the components involved? Understanding the components within the product helps me to get how the product is really working and What components are needed to interact in order to make that product work. Having the complete mind map of what components are there and how it interacts will give you overall idea of how a product is working.

Once you see the components, you need to dust yourself off and …..

Start Learning

This is crucial. Here comes the complete understanding of the product. You will get to know the nuts and bolts and most importantly you need to identify why the product exists in the first place. What problem it had tried to solve? What were the assumptions made while building it?

Understanding this will significantly help in asking….

How to improve (Analyze)

Once you learnt about the product, ask yourself what you need to improve and how much you need to improve. Having this clarity will set you on course towards your targeted outcome.

  • Do you need to improve performance ? (Efficiency, Throughput etc). If yes, how much?
  • Do you need to improve to work it on scale? (Scalability). If yes, how much scale?
  • Do you need to improve the false positives? If yes, what is the expected ratio?

Once you figure out what do you need to improve, you can start generating ideas on how to implement the same. You can tweak the existing components or introduce new components so as to achieve the outcome.

Once you are totally set on execution path to achieve the outcome, then


  • Can I use the same component for different product?
  • Should I use these many components? Can’t I achieve it with less components?
  • Can I improve a little bit further?

Improving something is a never ending journey. There is no 100% complete product, not even self!