Employee achievement | Dnyaneshwar Kulkarni
It was frustrating as I was staring at my new assignment. The product was wonderful but too damn slow to work with. As I raised it to others everyone echoed the same.
Performance improvement was on top priority, and I was excited to pick it up.
Soon I figured out the top three areas for significant improvements. Initial loading of the screens. Certain operations on the screen. Saving of data to the database.
Finding the root cause required some measurements and a code review. More frequent database operations were impacting the database. Business logic was implemented as code-behind, resulting in a slower display. Some long-running operations were testing the patience.
Just patching the code would not help. Architectural changes were needed to solve the underlying problems.
The UI was remodeled using the MVVM pattern, which separated the business logic from UI.
The code was restructured to perform bulk operations using ORM, reducing the number of operations. A memory-based cache was added for buffering.
Certain operations were made asynchronous. Users did not have to wait.
The results were stellar. More than 100 % faster code.
Separating UI from business logic was an added advantage for the future, as we migrated from the Desktop to the Web.
Why would you work with a product that is so slow?