Causes of Bugs

  1. Misunderstanding.

    • Difficult to read code and grasp the concept.
    • Not reading documentation.
    • Reading documentation – documentation and code mismatch.
  2. Lack of awareness.

    • Values are changed by "some other code".
    • Behaviour changes on upgrades.
    • Operating with invalid values.
  3. Mental overload.

    • Difficulty in expressing concept as code.
    • Too many things to keep track of.
  4. Changing expectations.

    • What was desired previously is now undesired.
    • Subset of code is changed to meet new expectation.