Code Review vs. QA Processes and Expectations

Code Review

Code review is performed in the repository (usually in the GitHub interface unless the client's repository is hosted elsewhere). The goal of code review is to review the code's quality and how well it matches best practices and established internal standards and processes. It also needs to be validated against Kalamuna's set of ADRs.

Code review is performed by an architect or technical lead of the project. The architect's code is exempt from the code review by other team members.

Once the developer is ready to submit the code for review, they create a pull request (PR) in the repository, update the Jira issue with the link to the PR, move their issue to the QA column, and assign it to the reviewer.

During the review process, the reviewer leaves comments on the PR and then notifies the developer in Jira. Then, they move the issue to the In Progress column and assign it back to the developer. This step is repeated until the reviewer approves the PR.

Once the PR is approved, the issue is transitioned into QA.

QA

QA is a process of verification that delivered work matches the issue’s definition of done: all developed pieces are functional, match the requirements, and any bugs are resolved. The issue can pass code review and not pass QA.

Various parties can perform the QA process depending on the project arrangements: PM, Architect, Technical Lead, and the client.

Depending on the project, there could be multiple QA assignees, starting with the architect and ending with the client.

Only issues that passed code review should be moved to QA.

Before putting an issue to QA, make sure that the issue has QA steps and instructions and an environment (multidev, dev, or test) where the QA assignee can review the functionality.

If the issue doesn’t pass the QA, the assignee adds comments to the issue and assigns it back to the developer. The developer then opens a new PR once the comments are resolved, and this new PR is transitioned back into the code review process.