How to Make a User-Friendly Software Product?

Jalan Technology Consulting
Jalan Technologies
Published in
3 min readAug 4, 2021

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

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

I am not talking about 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, the following are some key metrics that I think the team should track to monitor the system.

Backend (typically that’s running your services):

  • The system should send an alert to the engineering team (Slack channel, email, etc.) whenever the main process crashes.
  • The system should restart the service whenever the main process crashes.
  • The system should send an alert to the engineering team (Slack channel, email, etc.) whenever an unhandled exception is raised
  • The system should send an alert to the 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.
  • The system should send an alert to the engineering team (Slack channel, email, etc.) whenever the machine is running over 90% utilization (memory or CPU)
  • The system should log a warning message whenever a key application operation takes more than n seconds. 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 the engineering team (Slack channel, email, etc.) whenever an API response takes more than n seconds. Please have a conversation with your product team about this, if you are not doing this.

Frontend (typically React or React Native):

  • The system should send an alert to the engineering team (Slack channel, email, etc.) whenever an unhandled JS exception is thrown
  • The system should log a warning if the time to render a screen (i.e. the screen is usable by the user) if it takes more than n seconds. 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 the following external services for monitoring. There are others out there, but these seem 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 the client

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

Originally published at: https://articles.jalantechnologies.com/you-shipped-your-product-is-it-working-as-expected/

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. We hope our assistance will help!

--

--