# Evaluation Criteria
## Code Quality
The process of measuring the code quality of past projects isn't an easy task, given we've had very loose guidelines and very few metrics(or none). It's also worth noting that the context of a project can be detrimental to the quality of its code, so in certain reviews, a context exploration may be useful.
Only production code will be assessed.
We'll be looking for the following quantitative metrics:
- Amount of anti-patterns and non-critical issues per lines of code
- Amount of critical issues and potential security breaches per lines of code
- Overall code readability
- Overall code complexity
And the following qualitative metrics:
- Solution design (approach/solution chosen according to the project's needs)
- Patterns and principles followed
The process will happen in four steps:
1. Automated code analysis using tools like SonarCloud and Github's CodeQL. This will output a list of issues classified by priority that we will then discriminate humanly (for exmaple, maybe, a certain experimental tool only allows being used in a certain way that may be considered an anti-pattern). It also provides an overall measure of readability and complexity.
2. Human code review to analyze patterns, principles and architecture
3. Compare results and prepare a brief report.
4. Inquire for context on project if necessary and reassess. if desired, constructive feedback can be provided privately.