There are seven categories of mistakes:

  • Bugs
  • Needless complexity
  • Weaker readability
  • Suboptimal or unidiomatic organization
  • Lack of API convenience
  • Under-optimized code
  • Lack of productivity