Aussie AI
Supportability
-
Book Excerpt from "Generative AI in C++"
-
by David Spuler, Ph.D.
Supportability
Supportability refers to making it easier to support your customers in the field. This means making it easier for your customers to solve their problems, and also making it easier for your phone support staff whenever customers call in.
Hey! I have an idea: how about you build an AI chatbot that knows how to debug your software? Umm, sorry, rush of blood to the head.
Some of the areas where the software's design can help both customers and support staff include:
- Easy method to print the program's basic configuration, version, and platform details (e.g., either an interactive method or they're logged to a file).
- Printing important platform stats (e.g. what CPU/GPU acceleration was found by the program, what is
sizeof int
, and so on). - Self-check common issues. Don't just check for input file not found. You can also check if it was empty, blanks only, zero words, punctuation only, wrong character encoding, and so on.
- Verbose and meaningful error messages. Assume every error message will be seen by customers.
- Specific error messages. Lazy coders group two failures: “ERROR: File not found or contained only blanks.” Which is it?
- Unique codes in error messages.
- Documenting your error messages in public help pages or by making your online support database world-public (gasp!).
- Retain copies of all shipped executables, with and without debug information, as part of your build and release process, so you can postmortem debug later.
- Have a procedure whereby customers can upload core files to support.
- Not crashing in the first place. Fix this by writing perfect code, please.
Why use unique message codes? Adding unique numeric or symbolic codes in your error messages and even in assertions can improve supportability in two ways: self-help and phone support call-ins. A unique code allows customers to find these error codes easily on the internet (i.e. via Google or Bing), either in your website's online help web pages, or on the third-party websites (e.g. Stack Overflow and the like), where other customers have had the same problem.
Note that the codes don't really need to be completely unique, so don't worry if two messages have the same code, unless you're doing internationalization! And certainly, don't agonize over enforcing a huge corporate policy for all teams to use different numbers or prefixes. However, it does help for your unique code to have a prefix indicating which software application it's coming from, because the AI tech stack has quite a lot of components in production, so maybe you need a policy after all (sigh).
Note that supportability is at the tail end of the user experience. It's less important than first impressions: the user interface, installation and the on-boarding experience.
• Next: • Up: Table of Contents |
The new AI programming book by Aussie AI co-founders:
Get your copy from Amazon: Generative AI in C++ |