{"id":2300,"date":"2010-06-07T20:05:55","date_gmt":"2010-06-07T10:05:55","guid":{"rendered":"http:\/\/nsrd.info\/blog\/?p=2300"},"modified":"2018-12-11T18:39:58","modified_gmt":"2018-12-11T08:39:58","slug":"error-lifecycle-management","status":"publish","type":"post","link":"https:\/\/nsrd.info\/blog\/2010\/06\/07\/error-lifecycle-management\/","title":{"rendered":"Error lifecycle management"},"content":{"rendered":"<p>In previous articles I&#8217;ve discussed the need for zero error policies. This was covered first in <em><a title=\"What is a zero error policy?\" href=\"https:\/\/nsrd.info\/blog\/2009\/08\/11\/what-is-a-zero-error-policy\/\" target=\"_blank\">What is a Zero Error Policy?<\/a><\/em>, and followed up in <em><a title=\"Zero error policy management\" href=\"https:\/\/nsrd.info\/blog\/2009\/08\/25\/zero-error-policy-management\/\" target=\"_blank\">Zero Error Policy Management<\/a><\/em>. (If you&#8217;ve not read those articles, you really should before continuing.)<\/p>\n<p>Key to ensuring a zero error policy is not only adopted, but also achieved, is a good understanding of the error lifecycle. That&#8217;s right \u2013 errors have a lifecycle, which is not only well defined, but actually helps us to keep them under control. An error lifecycle will resemble the following:<\/p>\n<p><a href=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2010\/06\/error-lifecycle.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2301\" title=\"The error lifecycle\" src=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2010\/06\/error-lifecycle.jpg\" alt=\"The error lifecycle\" width=\"566\" height=\"436\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2010\/06\/error-lifecycle.jpg 566w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2010\/06\/error-lifecycle-300x231.jpg 300w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2010\/06\/error-lifecycle-389x300.jpg 389w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/a>The start of the lifecycle is our <strong>Test<\/strong> and <strong>Detect<\/strong> loop:<\/p>\n<ul>\n<li><strong>Detect<\/strong> \u2013 An error is determined to have happened either as a result of a significant fault, or as a result of routine monitoring and analysis.<\/li>\n<li><strong>Test<\/strong> \u2013 An error is determined to have happened as a result of actual testing (formal or informal).<\/li>\n<\/ul>\n<p>Once it&#8217;s determined that an error has happened, we then move into the resolution cycle, which consists of:<\/p>\n<ul>\n<li><strong>Diagnose<\/strong> \u2013 Determine the nature of the error &#8211; i.e., the root cause. If you don&#8217;t understand the actual cause, you can&#8217;t be certain that any solution you come up with is complete.<\/li>\n<li><strong>Rectify<\/strong> \u2013 Having understood the error, it&#8217;s time to resolve it. There&#8217;s two standard resolution techniques: complete resolution or workaround. Either are acceptable, so long as the resolution technique chosen is acceptable to the business and appropriate to the error.<\/li>\n<li><strong>Document<\/strong> \u2013 Once an error is solved, it needs to be documented. As has been said on numerous occasions, &#8220;Those who don&#8217;t learn from history are doomed to repeat it.&#8221; One of the worst possible error situations for instance is one where you&#8217;ve solved it in the past, but you can&#8217;t remember what you did and thus have to repeat the entire process. At minimum, documentation requires 3 components: (a) what lead to the error, (b) how the error manifests\/is detected, and (c) how the error was resolved.<\/li>\n<\/ul>\n<p>The error lifecycle doesn&#8217;t stop there though, as indicated by the diagram; instead, we add that error into a <strong>test<\/strong> and <strong>detect<\/strong>ion register \u2013 having encountered it, we should be able to more easily be on the look out for another instance. This is hopefully where the error finishes: being monitored for, but never again recurring. In the event though that it does reoccur, the diagnosis, rectification and documentation process <em>should <\/em>be simpler.<\/p>\n<p>There you have it \u2013 the error lifecycle. Knowing it allows you to manage errors, rather than errors managing you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In previous articles I&#8217;ve discussed the need for zero error policies. This was covered first in What is a Zero&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5],"tags":[370,1127],"class_list":["post-2300","post","type-post","status-publish","format-standard","hentry","category-backup-theory","tag-errors","tag-zero-error-policy"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pKpIN-B6","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/2300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/comments?post=2300"}],"version-history":[{"count":1,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/2300\/revisions"}],"predecessor-version":[{"id":7554,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/2300\/revisions\/7554"}],"wp:attachment":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/media?parent=2300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/categories?post=2300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/tags?post=2300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}