all bits considered data to information to knowledge

17Oct/110

Evolutionary Best Practices

“Best practices” are the proverbial wheel. You know - the one that does not need to be re-invented… The Wikipedia article defines best practice as “ a method or technique that has consistently shown results superior to those achieved with other means, and that is used as a benchmark.” It has been recognized as “management practice” and even made into ISO 9000 and ISO 14001 standards.

Yet they do have a shelf life, and stale “best practices” is nobody’s idea of efficiency. The very same Wikipedia article adds that 'a "best" practice can evolve to become better as improvements are discovered.'

An evolutionary metaphor seems to be apt for a definition of “best practices” - in order for the species to adapt to changing environments they must evolve, in order for species to be recognized as such they must preserve their distinct genetic makeup for some reasonably prolonged period of time.

The trick, as usual, is to recognize the right time to embrace the change, or to reject is. In natural evolution, as in the business environment, the right turn at the wrong moment is just as deadly as wrong turn at the right moment - both would result in particular species (uhm… businesses) being sent to the fossil beds.

10Feb/110

10 Commandments of Error Handling

  1. No method shall return “success/failure” code.
  2. All methods shall return results (“void” where appropriate
  3. All operations that could potentially result in an exception must be organized into
    [try…catch…finally] blocks in the method’s body
  4. An exception should be thrown to the caller in case of a run-time error
  5. An exception must be specific to the error, no generic exception should be raised (and if
    necessary, they should be wrapped into actionable exceptions of specific type)
  6. All exceptions must be logged
  7. Exception only should be caught if they are of specific type, and could be handled in a
    meaningful way.
  8. Any exception that could be potentially thrown by a method must be documented in that
    method
  9. Any exception not caught at the top caller level must be logged, and consider fatal. Normally,
    this would result in termination of the execution, though it should be dealt on case by case
    basis.
  10. Use Error Handling and Logging Frameworks

 

Microsoft Error Handling Guidelines for C#

Three Rules for Effective Exception Handling in Java