Presence of bad coding: related to issues presented in source code. This indicator is composed of the following low-level indicators: bad coding,lack of code quality, and low code comprehensibility.

Poor testing practices: related to the lack or poor practices regarding software testing. This indicator is composed of low-level indicators such as: lack of test coverage, lack of unit testing, and time delay in performing tests.

Technology version and update issues: associated with problems in versioning or updating of technologies. Technology version issues and framework updates issues are the low-level indicators within this high-level indicator.

Lack of good design practices:  associated with bad practices adopted by the team regarding the software's design. Lack of design patterns, no adoption of development patterns, and no adoption of naming conventions are some of the low-level indicators within this high-level indicator.

Presence of code smells: related to characteristics in the source code or design that may indicate a deeper problem. This high-level indicator is composed of low-level indicators code smells, duplicate and dead code.

Presence of database issues: related to problems in database structure. Only the low-level indicator database problems composes this indicator.

Workarounds: refers to the use of pragmatic solutions that apparently work out, but they will possibly need to make future correction. The low-level indicator use of workarounds composes this high-level indicator.

Legacy architecture and code: refersto problems related to the use of old technologies or programming languages that no longer have support, making it difficult to use or maintain. This high-level indicator is composed of the low-level indicators legacy code issues and legacy technology issues.

Issues with third-party software: refers to the malfunction of tools, such as ones that generate false positives or have compatibility issues with frameworks or other tools. Problems with code analysis tools and tool compatibility issues are the low-level indicators composing this high-level indicator.

Technology issues: refers to immature technologies that are in use but have not been properly tested. Only the low-level indicator problems with immature technology composes this high-level indicator.

Lack of reuse: refers to problems in the use of functions or code snippets without understanding their implementation or operation. Only the low-level indicator poor reuse practices composes this high-level indicator.

Negligence in fixing known bugs: refers to the action of ignoring or postponing the resolution of known bugs, causing their accumulation. Only the low-level indicato run patched bugs composes this high-level indicator.

Software architecture issues: refers to problems related to software architecture. Only the low-level indicator architecture issues composes this indicator.
