10. Pull Requests and Peer Reviews

What are pull requests and peer reviews?

…sorry… not complete yet. :(

How does your context affect the success you will have with peer reviews?

*1. How does the Organizational Structure in your context impact the probability that you will have success with peer reviews?

Does the org structure support this?

*2. How does the Development Team Culture in your context impact the probability that you will have success with peer reviews?

If team members do not get along well, expect peer reviews to exacerbate problems. If individual output is praised over team output and product quality, expect resistance.

3. How does the Hiring Process in your context impact the probability that you will have success with peer reviews?

Are you hiring people willing to pair, or lone wolf personalities? Skills for pairing?

*4. How does the Team Composition in your context impact the probability that you will have success with peer reviews?

PR can be used to mentor junior developers and/or to improve code quality and to transfer knowledge of the software. Juniors doing PR of other JRs without the goal of learning the software probably add little value by doing the PR. Contractors that don’t expect to be around for the life of the product may not PR well due to lack of investment in the outcome.

5. How does the Training Provided on Code in your context impact the probability that you will have success with peer reviews?

Big impact

6. How does the Training Provided on ‘Our Ways of Doing Things’ in your context impact the probability that you will have success with peer reviews?

Big impact

7. How does the Environment in your context impact the probability that you will have success with peer reviews?

Maybe little impact on solo PRs, but for live group reviews a place that minimizes distractions is usually needed.

8. How does the Project Selection in your context impact the probability that you will have success with peer reviews?

The way in which projects are selected probably has no impact on the value peer reviews may bring to your team.

9. How does the Solution Purpose in your context impact the probability that you will have success with peer reviews?
*10. How do the Application Architecture Priorities in your context impact the probability that you will have success with peer reviews?
11. How do the Security Demands in your context impact the probability that you will have success with peer reviews?
*12. How do the Requirements, Features, and Priorities in your context impact the probability that you will have success with peer reviews?
13. How do the Regulations in your context impact the probability that you will have success with peer reviews?
14. How does Who Decides What To Do in your context impact the probability that you will have success with peer reviews?
*15. How does Project Management in your context impact the probability that you will have success with peer reviews?
*16. How do the Quality Processes in your context impact the probability that you will have success with peer reviews?
17. How does the Architecture Forecasting in your context impact the probability that you will have success with peer reviews?
18. How do your DevOps in your context impact the probability that you will have success with peer reviews?
19. How does the Architecture in your context impact the probability that you will have success with peer reviews?
20. How does the Code in your context impact the probability that you will have success with peer reviews?
*21. How does the Code Quality in your context impact the probability that you will have success with peer reviews?
22. How does the Application Quality in your context impact the probability that you will have success with peer reviews?
23. How does the Deployment Environment in your context impact the probability that you will have success with peer reviews?
24. How does the Product Training in your context impact the probability that you will have success with peer reviews?
25. How does the Support in your context impact the probability that you will have success with peer reviews?

How your team supports people using your solution probably has no impact on on the value peer reviews may bring to your team.

What does ChatGPT think?

(May 2023)Hey ChatGPT: What are good contexts and bad contexts for requiring peer review of software code changes?

Requiring peer review of software code changes is generally considered a best practice in software development. However, there are certain contexts where it is especially important, as well as others where it may not be as critical. Here are some examples of good and bad contexts for requiring peer review of software code changes:
Good contexts for requiring peer review:

  1. Critical systems: In software systems that are critical to the operation of an organization or its clients, peer review of code changes is essential to prevent mistakes that could cause serious problems. Examples of such systems might include financial software, healthcare systems, or systems used in transportation.
  2. Large codebases: In large codebases, it can be difficult for individual developers to fully understand the impact of their changes on the overall system. Peer review can help catch potential issues that may have been overlooked by the developer making the changes.
  3. Collaboration: Peer review can be an important part of a collaborative development process, as it can facilitate knowledge sharing and help team members learn from each other’s experiences and expertise.
    Bad contexts for requiring peer review:
  4. Small, non-critical projects: In smaller projects or projects that are not critical to the operation of an organization, peer review may not be as important. In these cases, it may be more important to prioritize speed and agility over the benefits of peer review.
  5. Time-sensitive projects: In situations where speed is of the essence, such as during an emergency or when a project is under tight deadlines, peer review may not be practical or feasible. In these cases, it may be more important to rely on the expertise of individual developers rather than requiring peer review.
  6. Solo projects: In situations where a developer is working on a project alone, there may not be any benefit to requiring peer review. However, it can still be helpful to have a second set of eyes review the code before it is deployed, even if that review is not strictly required.