Dividing Problem into Smaller Pieces

Matthew Oh
2 min readJan 30, 2021

Real life scenario@work. Short summary on how performance bottleneck was eliminated to enable the global deployment of handheld application.

The thought process to solve a problem, which seemed to be too big in the beginning, and no one had ideas on how to proceed. A non-technical write-up.

#1 — Problem Statement: Response time of handheld application is >1 sec, definitely not production-ready

  • Big problem. The proprietary library is just not able to perform within <1 sec.
  • All possible optimisations are implemented, but to no avail.
  • Proprietary library is a black box, no idea what’s going on in there. It just cannot meet the performance expectation. What else can be done?

#2 — Stop looking out, look into the library instead. Don’t you realize that the library actually consists of many smaller components?

  • Yes. Break it down to smaller components, and analyze each of them.
  • Identify the redundant components, and remove them.
  • Build your own custom library with only the required components, without the redundant ones.

#3 — Done! Bottleneck eliminated

  • Response time reduced by 500ms, it is <1 sec now — ready for global deployment!

#Summary

  • Understand the problem statement, and identify the root cause before trying to solve the problem.
  • Breaking down problem into smaller units can help figure out the root cause.
  • When we eliminate the root cause, we solve the problem.

--

--

Matthew Oh

Software product management | Enjoy finding solutions to problems | LinkedIn: http://www.linkedin.com/in/matthew-oh | Personal Website: https://lwoh.github.io/