1. Lack of leadership in developer operations

  2. A lack of reporting of improvements in code reuse, coverage, test cases, and stability.

  3. Underutilization of frameworks and libraries used within the project.

  4. Lack of disposable runtime environments [for development and testing].

  5. Build times are unknown.

  6. Long and detailed documentation is required to build your product.

  7. Dead code is left in the code base to rot for years.

  8. Bugs are being reproduced as unit tests.

  9. Third Party dependencies are not being upgraded.

  10. Code is badly organized. Models are placed anywhere, packages aren’t organized, etc.