Pragmatic Software Design

Vijay Narayanan

Think About Support Needs Early

user-pic
Vote 0 Votes

Too many projects wait till the very end to think about supportability. Your system or solution will not magically become supportable overnight. It is critical that your design efforts meet support needs. Here are some questions that will influence your design:

  • How will production support get notified of exceptions/incidents? Do they need notification real-time or periodically? You might need a notification component. Depending on your requirements, the component might need to send alerts/messages to one or more parties. You might also need to support sending messages to different destinations (mobile phones, support consoles).
  • What information needs to be provided in the application-specific logs? Error location, error code, stack trace, possible causes, and resolution information needs to be captured. Additionally, application specific logs might also capture time of error, machine name, and runtime statistics such as heapsize/thread usage etc.
  • How will an exception get resolved? Are there errors that need human intervention? Is there a need to pause transactions and resume processing when exceptions are resolved? Returning contextual and actionable information is essential in these cases. Depending on the volume and error categories you might want to design a facility for viewing exceptions and resubmitting failed transactions.
Equally important is the need to include as much detail about errors as possible. Without adequate details on the error it is not possible for your support staff to act on an issue. These needs become even more critical when pursuing SOA and BPM initiatives. Your supportability needs to extend beyond a single application and your ability to track events and transactions across multiple applications become critical. As more systems get integrated, it becomes imperative that your support staff is educated about error detection, resolution, and escalation.

No TrackBacks

TrackBack URL: http://www.ebizq.net/MT4/mt-tb.cgi/16065

Leave a comment

Vijay Narayanan blogs about software design from several perspectives - SOA,BPM, messaging, systematic reuse, agility, and architecture.

Vijay Narayanan

Vijay Narayanan is a software professional working on a variety of projects. Vijay has worked on several software initiatives ranging from single-user systems to large, distributed, multi-user service platforms with services. Most recently, Vijay has been involved in research dedicated to combining agile practices with service-orientation. He is a contributing author to the upcoming book Next Generation SOA as part of a chapter on modern SOA methodologies. Vijay maintains a blog dedicated to software reuse at http://www.artofsoftwarereuse.com.

Recently Commented On

Monthly Archives

Blogs

ADVERTISEMENT