Reflect on project successes and failures through post-mortem meetings to identify key improvements, set actionable goals, and enhance future project outcomes.
Planning is the key point when starting a new project. It is required to plan the work of the devs team, find potential threats, and ask as many questions as possible to make the team's work easier. However, even the best-planned projects are not free of mistakes. Everybody knows it and accepts it as something normal in the IT world.
But what about a situation where the team keeps making the same mistakes on subsequent projects? Or do different teams in the company repeats all errors that happened to their colleagues? Despite many completed projects, there are no lessons learned, leading to the perpetuation of bad habits and practices.
Do you feel that similar situations happen in your company? Do you keep making the same mistakes and don't have any process to minimize them?
There is a solution that will minimize those mistakes and enrich your software development process. It's a post-mortem meeting.
Post-mortem meeting is a team gathering at the end of a project, where the project team determines which parts of the project were successful and unsuccessful.
It's like a reflection where the project team analyzes aspects such as:
The benefits of a post-mortem meeting
There are many benefits for the team:
The client also benefits a lot from this:
You see that both sides are winners here!
What you should know about post-mortem meetings is that there is no one-size-fits-all form of such a meeting. Each team should find a way that allows them to reach beneficial post-mortem results.
How do we run it at Synergy Codes?
Preparations
Before you start, make sure the whole team is prepared for such a meeting. We begin with pre-meeting work:
We also define an agenda so that everybody understands what will be discussed. It's also good to assign one person that will be responsible for running such a meeting – a kind of chairman.
The goal of a meeting
Post-mortem meetings that happen in our company can be categorized depending on when they are held:
The main goal of each post-mortem meeting is to analyze all aspects of the project's lifecycle so that both sides can receive fruitful feedback after it. We analyze the project itself and cooperation with the client from the very first day.
Discussion
I will describe here the post-mortem meeting that we conducted with one of our clients.
When running post-mortem together, we went through the list of general questions that allowed us to analyze the project from different perspectives:
Such a list was a great entry point for the discussion that is vital for each post-mortem meeting.
When discussing each point, we were analyzing more deeply particular areas such as:
When analyzing each topic, we were looking at it from different perspectives:
Technical
Everything related to used technologies, programmatic challenges, and difficulties, performed tasks, architecture, coding standards, or technical debt.
Cooperation
The cooperation focuses on things related to the maturity of collaboration. It covers further requirements, UX discussions, communication channels, work division, appropriate roles within teams, or feedback.
Human
You can indicate here such factors as involvement, team spirit, and individual skills.
The result of all these preparations and discussions was a meeting where together with the client, we jointly analyzed the following topics:
Additional elements
As mentioned in the beginning, each post-mortem can have a different form. When running our latest post-mortem, we introduced additional elements such as:
Those elements and the whole approach was more discussed in the Synergy Cafe episode.
When finishing post-mortem, it's essential to have some output. We try to categorize our output in such a way:
Lessons learned
It's essential to learn lessons for the future based on our reflection:
Identifying lessons learned helps to run projects differently and better next time.
Conclusions and insights
They're beneficial lessons for running future projects – not only for us but for the whole company:
Materials to prepare feedback for the client
When running post-mortem, general feedback concerning crucial points from our discussion should be passed to the client. it's perfect for catching those issues in such a way:
Remember that a post-mortem itself is not a goal. The most important thing is what we want to do later. Generally, we focus on three aspects (each of them is important in Synergy Codes):
Feedback for our client
We share the most important things that came up during post-mortem and are related to the client. When sharing feedback and talking about negative aspects, we present all caught facts, consequences, and solutions.
Action points
Our clients are primarily interested in issues that appeared and ways to resolve them. By picking the essential issues and connecting them with learned lessons, we can produce action points and assign owner(s) to each of them. Some action points can be technical aspects where we can create PBI (Product Backlog Item) for them; others are more related to cooperation or software delivery processes, where the team treats them as golden rules - good practices that the team follows.
Propagation of post-mortem
It should be a step after each project. We do our best to adapt it globally and help other teams in the company to run post-mortem meetings.
You see, that post-mortem is a powerful tool that enriches your software development process. It's like a reflection that is usually conducted on the completion of the project. It helps to identify successful and unsuccessful parts of the project. Each team should stop for a moment and analyze their project to draw valuable conclusions and apply them in future projects to run them better. This step will pay off.