How to Make a User Friendly — Responsive Software Product?

Ankita
Jalan Technologies
Published in
3 min readSep 19, 2020

“Usability” of a software product refers to the ease of use of a product or website
The apparent conflict between customer needs and user needs in B2B or Internal software can be annoying. A good software is the one which responds to requests as quickly as possible

Over the years, one of the questions that business team often ask after release — “how do we know everything is working as expected”?

I am not talking whether the product that was built was right or wrong (that’s another beast to talk about later on). I am talking about whatever you shipped — are your users able to use it or not and how can you know it proactively before your user tells you about it.

Team Required for Software Monitoring.

Your operation team is solely responsible for monitoring, but recently the shift has been toward cross-discipline engineers who build, test, monitor, and are on call for their applications. These cross-discipline engineers are sometimes called DevOps engineers or site reliability engineers (SREs).

How to Identify your Software’s Usability?

From an engineering standpoint, following are some key metrics that I think the team should track to monitor the system.

Backend (typically that’s running your services):

  • System should send an alert to engineering team (Slack channel, email etc.) whenever the main process crashes.
  • System should restart the service whenever the main process crashes.
  • System should send an alert to engineering team (Slack channel, email etc.) whenever an unhandled exception is raised
  • System should send an alert to engineering team (Slack channel, email etc.) whenever error or warning level logs are logged by the application. This is important — please make sure you do correct logging in your application during development.
  • System should send an alert to engineering team (Slack channel, email etc.) whenever the machine is running over 90% utilisation (memory or CPU)
  • System should log a warning message whenever a key application operation takes more than . This should be determined with the product team during development. Please have a conversation with your product owner about this, if you are not doing this.
  • If the backend exposes API (REST or Graphql), the system should send an alert to engineering team (Slack channel, email etc.) whenever an API response takes more than . Please have a conversation with your product team about this, if you are not doing this.

Frontend (typically React or React Native):

  • System should send an alert to engineering team (Slack channel, email etc.) whenever unhandled JS exception is thrown
  • System should log a warning if time to render a screen (i.e. the screen is usable by the user) if it takes more than . Please have a conversation with your product owner about this, if you are not doing this.

NOTE: There are many debates and literature out there around this. It is important to agree on one that works for your project to ensure it is implemented.

We use following external services for monitoring. There are others out there, but these seems to handle the cases we deal with on day to day basis:

  • LogDNA: Cloud logging infrastructure
  • NewRelic: Performance monitoring
  • Sentry: Capture unhandled JS exception on client

I would love to hear if there are other key metrics that you track to ensure your services are alive and healthy.

What’s the biggest thing you’re struggling with right now that we as a technology consulting company can help you with? Feel free to reach out to us at info@jalantechnologies.com. We hope our assistance will help!

Originally published at http://articles.jalantechnologies.com on September 19, 2020.

--

--