Hardening - raisercostin/software-wiki GitHub Wiki

At moments some system might be found in a fragile, unpredictable state. Things to do to take control back:

  • clarify principles (They are few and act as a compas when new situations are found)
  • don't jump to various bugs but fix all the first bug (start with blocking, criticals, major, normal(performance) ) that you discover that impacts common scenarios.
  • add tests that exercise the discovered bug
  • refactor in order to be able to add such tests
  • consider bugs the following scenarios
    • performance - response times on UI and from servers
    • performance on load
    • any stacktrace is a result of a bug, a special situation that was not handled at the business level
    • Fail Fast
  • Test-Driven-Development
  • Use Constructor Injection
  • Programming to Interfaces/Abstractions

Things that help in general

  • format all code according to some agreed conventions/guidelines
  • structure build/sources according to standard conventions (maven)