3. Retrospectives

What is a retrospective?

A retrospective is a meeting to review your software development processes and practices and consider opportunities where you can make improvements. Retrospectives are very common in agile approaches to software development and are a core step in the Scrum framework.

Opinions about the value of retrospectives vary widely with some people claiming adamantly that they are a necessity and others claiming they are usually a waste of time. If you have participated in a lot of retrospectives you have probably found some to be valuable, and others to be a waste of time.

Of course, as this site claims, the value of your retrospective is probably greatly dependent upon your context.

Most teams should expect that the value gained from retrospectives follows the law of diminishing returns. That means that you may gain a lot of value from retrospectives in the beginning, but as your team makes changes based on the outcomes of those retrospectives, the team finds fewer and fewer obstacles that are worth trying to remove. Teams that feel retrospectives are necessary may resort to trying to make retrospectives more fun once they no longer seem productive. However, sometimes games can help break the ice when teams are new and build trust in order to facilitate communication, so using games during retrospectives is not always a sign of a poor practice. Some retrospectives continue when they rarely provide value because a project leader or scrum master believe the meeting helps justify that they are bringing value to the team.
Another criticism of retrospectives is that they often focus on process improvements, when the process is already working fairly well and focusing improvments on other elements of the software development context would provide more value than focusing on improvements in the software development process itself. This problem manifests from two sources. In some cases, the retrospective facilitator steers away from improvements in areas such as software architecture or coding tools because the facilitator does not have deep knowledge of those things and feels they could add little value to decisions made. In other cases, the team has failed to recognize that continual process improvement is detrimental to most software development teams. Unlike manufacturing processes, where the desire is for every output to be the same, thus you want to improve your process until it is perfect at producing that output; in software development, the desire is for every output to be different; and therefore a process that was optimal for producing the previous feature is probably not optimal for producing the next feature.

Despite all of those criticisms, almost every team and person probably benefits from some retrospectives. While you are finding them valuable, certainaly keep doing them. They can be very valuable and often require several such meetings for team members to learn to trust each other and speak openly about issues that are hindering their process. As their value decreases, or as you find there are more valuable things to do with every team members time, hold fewer such meetings.

Some teams never hold formal retrospective meetings because the teams have matured to a point where they bring up process problems that could be solved throughout the software development process and work to improve them along the way without formal structure to tracking and measuring the improvements. Other teams, unfortunately, must wait to make some improvements until the changes are approved by those who manage the metrics of the development teams in the organization.

Why adopt retrospectives?

Teams usually adopt retrospectives in order to improve the quality of their development process. When any team member, product owners, project managers, developers, quality assurance, or IT feels that things could have gone better, holding retrospectives can be very beneficial. Retrospectives are often valuable when something is new, such as new project or a new team of people or a new development process or new project management tools or significant new technologies.

Why not adopt retrospectives?

When development processes are flowing smoothly and the team is aware of valuable actions to take, little value may be gained from retrospectives. In these cases, teams may find value in doing them, but less frequently such as once per month or once per quarter.

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

*1. How does the Organizational Structure in your context impact the probability that retrospectives will add value to your process?

Retrospectives usually provide the most value when you discover changes that will last a long time that can be made to how a team operates. When team members change frequently, the need for retrospectives can increase, and the results of each retrospective may provide less value because those learning the changes move on and changes become more difficult to implement. Another important aspect of successful retrospectives is that team members feel ownership of the software they are producing and the process by which they are produced. When team members change frequently that is harder to achieve. Therefore some organizations with matrix structures in which team members change frequently adopt the same process across all projects and teams, which tends to cause each team to operate less effectively than they might and tends to discourage team members from attempting to offer ideas for improvements they know won’t be implemented.

*2. How does the Development Team Culture in your context impact the probability that retrospectives will add value to your process?

Cultures that suppress change, punish those that make mistakes, and lack trust between team members are unlikely to benefit from retrospectives until cultural improvements are made. Holding retrospectives when the organization has a history of suppressing change and new ideas is difficult, and change suggestions from retrospectives need to be provided serious consideration of the change ideas will quickly cease to be provided. A poor team culture is probably the biggest impediment to getting some value out of retrospectives. Team members need to learn that their ideaswill get consideration and that their product, customers, and co-workers are worth investing energy in before they will start to become motivated to make improvements and believe improvements are possible?

3. How does the Hiring Process in your context impact the probability that retrospectives will add value to your process?

Your organization’s hiring process probably has little impact on your team’s ability to gain value from retrospectives.

*4. How does the Team Composition in your context impact the probability that retrospectives will add value to your process?

Juniors team members ofter have a lot more to learn, especially by pondering and questioning how things are currently done. But retrospectives may be more valuable when there are senior team members because they have more experience to draw upon and to see the problems. They also probably have more ideas about how to remedy some of the problems. Mature teams may have near optimal processes and process-focused retros become less valuable. Retrospectives are also more difficult for solo developers. Another aspect of team composition that may be important is the number of disgruntled team members that no longer believe things can get better relative to the number of team members that don’t hold that belief, perhaps because they are new or perhaps they are just naturally more optimistic. If your team is full of doubters, it might help to bring in some optimistic people to start suggesting changes.

5. How does the Training Provided on Code in your context impact the probability that retrospectives will add value to your process?

The training provided on code probably has little impact on the value retrospectives may bring to your team.

6. How does the Training Provided on ‘Our Ways of Doing Things’ in your context impact the probability that retrospectives will add value to your process?

The training your team provides on how things are done likely helps new team members understand what is expected during retrospectives, especially if retrospectives are part of how your things are done. For teams that don’t provide such training, a side-benefit of retrospectives might be that the discussion of how your team does things helps new team members understand why things are currently done as they are.

7. How does the Environment in your context impact the probability that retrospectives will add value to your process?

The environment probably has little impact on the value retrospectives may bring to your team, though attempts to improve a poor environment are likely to be suggested during retrospectives when such is the case.

8. How does the Project Selection in your context impact the probability that retrospectives will add value to your process?

The way in which projects are selected probably has no impact on the value retrospectives may bring to your team, but retrospectives might suggest improvements to how projects are selected.

9. How does the Solution Purpose in your context impact the probability that retrospectives will add value to your process?

Sometimes projects don’t need retrospectives. When a project exists to spike on a problem, or to develop a prototype, or prove how to implement a technical feature, or just to learn some code; a retrospective is not merited because you don’t plan to repeat the process nor try to improve it. But when we think of software development processes we rarely think of those types of projects and instead focus on project that are the core of our business, and most of these could probably benefit from an occasional retrospective.

*10. How do the Application Architecture Priorities in your context impact the probability that retrospectives will add value to your process?

Retrospectives may be most valuable when some aspect of your solution such as performance, scalability, or security demand as much improvement as possible. Retrospectives give you a regular time to track progress toward your goals, make changes to your process and measure the effectiveness of the changes toward meeting specific goals. When the solution you are developing needs to primarily meet a single measurable goal, retrospectives are your time to assess your measurements.

11. How do the Security Demands in your context impact the probability that retrospectives will add value to your process?

The security demands of your application probably have little impact on the value retrospectives may bring to your team. Retrospectives and root cause analysis for security bugs and flaws are important, but are generally part of a separate review process, outside of the team process retrospectives.

*12. How do the Requirements, Features, and Priorities in your context impact the probability that retrospectives will add value to your process?

The way your team gathers requirements and prioritizes tasks has little impact on the value retrospectives may bring to your team. However, retrospectives can help you identify improvements to the way you gather and manage requirements, features, and priorities. If you are already doing this well, retrospectives will provide less gain for this element, of course.

13. How do the Regulations in your context impact the probability that retrospectives will add value to your process?

The regulations your organization must comply with probably have no impact on the value retrospectives may bring to your team.

14. How does Who Decides What To Do in your context impact the probability that retrospectives will add value to your process?

Who decides what to do next on your teams probably has little impact on the value retrospectives may bring to your team, unless that person or persons are strongly for or against retrospectives. Retrospectives can help determine if the right people are making the decisions.

*15. How does Project Management in your context impact the probability that retrospectives will add value to your process?

The way you manage projects has little impact on the value retrospectives may bring to your team, but retrospectives can have a huge impact on your project and process management practices. When process and project management have a lot of room for improvement, retrospectives offer a lot of value.

*16. How do the Quality Processes in your context impact the probability that retrospectives will add value to your process?

As with project management, the processes you have in place for quality have no impact on the value retrospectives may bring to your team, but through retrospectives you may be able to make great improvements to your quality processes.

17. How does the Architecture Forecasting in your context impact the probability that retrospectives will add value to your process?

The plans you have for evolving the architecture of your application probably have no impact on the value retrospectives may bring to your team.

18. How do your DevOps in your context impact the probability that retrospectives will add value to your process?

Your DevOps processes probably don’t impact the value retrospectives may bring to your team.

19. How does the Architecture in your context impact the probability that retrospectives will add value to your process?

The architecture of your application probably has no impact on the value retrospectives may bring to your team.

20. How does the Code in your context impact the probability that retrospectives will add value to your process?

The specific languages and tools used to write code probably have no impact on the value retrospectives may bring to your team.

*21. How does the Code Quality in your context impact the probability that retrospectives will add value to your process?

The quality of your existing code probably has no impact on the value retrospectives may bring to your team.

22. How does the Application Quality in your context impact the probability that retrospectives will add value to your process?

The current quality of your application probably has no impact on the value retrospectives may bring to your team.

23. How does the Deployment Environment in your context impact the probability that retrospectives will add value to your process?

The environment into which your software is deployed probably has no impact on the value retrospectives may bring to your team.

24. How does the Product Training in your context impact the probability that retrospectives will add value to your process?

How your team trains people using your solution probably has no impact on the value retrospectives may bring to your team.

25. How does the Support in your context impact the probability that retrospectives will add value to your process?

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

What does ChatGPT think?

(May 2023)Hey ChatGPT: When should software developers do retrospectives versus when are retrospectives not very valuable?

Retrospectives are a key aspect of Agile development and are used to evaluate a team’s performance and identify areas for improvement. However, there are situations where retrospectives may not be very valuable or may even be counterproductive. Here are some examples:

When retrospectives are valuable:

  1. After completing a sprint or project: Retrospectives are most valuable when they are conducted after completing a sprint or project. This allows the team to review their performance, identify what went well and what didn’t, and make improvements for the next sprint or project.
  2. When there is a desire for continuous improvement: Retrospectives are most valuable when the team is committed to continuous improvement. By regularly evaluating their performance, teams can identify areas where they can improve and implement changes to make their process more effective.
  3. When there is open communication and trust among team members: Retrospectives rely on open communication and trust among team members. When team members feel comfortable sharing their thoughts and opinions, retrospectives can be an effective way to identify issues and make improvements.

When retrospectives may not be very valuable:

  1. When there is no desire for change: Retrospectives may not be very valuable if the team is not committed to making changes based on the results of the retrospective. If the team is not interested in improving their process or addressing issues, the retrospective may be seen as a waste of time.
  2. When the team is too large or too small: Retrospectives work best with teams of 3-9 people. If the team is too small, there may not be enough diversity of thought and experience to identify issues. If the team is too large, it may be difficult to have productive discussions and make meaningful changes.
  3. When there is a lack of trust or open communication: Retrospectives rely on trust and open communication among team members. If there is a lack of trust or communication, team members may be hesitant to share their thoughts and opinions, and the retrospective may not be as effective.

Overall, retrospectives can be a valuable tool for software developers when used in the right context. Teams should ensure that they are committed to continuous improvement, that there is open communication and trust among team members, and that the team is the right size to have productive discussions. If these conditions are not met, retrospectives may not be as valuable.