I have been asked to do a code review of about 50 applications over a period of 6 weeks. (Management has changed and the new CTO asked for an full internal software audit)
I am wondering, what are the key areas to evaluate software on? (The focus should purely be on the quality of the codebase and not e.g. how it was deployed)
Please note: This is not the same question as "What are the 9 or 10 qualities of software?".
The first few things that came to my mind are:
- Code readability (descriptive variable/method/class names, comments etc)
- Layering (data/business/UI)
- Configuration (no hardcoding)
- Sufficient level of abstraction (to remain flexible)
- Organisation of the code
- Use of 3rd party libraries (approved or not etc)
- Separation of concerns
- Test coverage (if applicable)
- Modularity of code
- Penalties for breaking principles such as "DRY"
I will appreciate your answers to help me identify an extensive list of what you think are the key areas for software evaluation.