Set up a 'retrospective mailbox' at the beginning of the iteration. Whenever something significant happens or someone has an idea for improvement, they write it down and 'post' it. (Alternatively the 'mailbox' can be a visible place. This can spark discussion during the iteration.) Go through the notes and discuss them. A mailbox is great for long iterations and forgetful teams.
What could sub-groups improve when interacting with others? Source:
Identify sub-groups within the participants that interacted during the iteration, e.g. developers/testers, clients/providers, PO/developers, etc. Give participants 3 minutes to silently write down what they think their group did that negatively impacted another group. One person should be part of one group only and write stickies for all groups they don't belong to - 1 sticky per issue.
Then in turn all participants read their stickies and give them to the corresponding group. The affected group rates it from 0 ('It was not a problem') to 5 ('It was a big problem'). Thus you get insights and shared understanding about problems and can select some of them to work on.
Asking and answering go around the team circle - an excellent way to reach consensus Source:
Everyone sits in a circle. Begin by stating that you'll go round asking questions to find out what you want to do as a group. You start by asking your neighbor the first question, e.g. 'What is the most important thing we should start in the next iteration?' Your neighbor answers and asks her neighbor a related question. Stop when consensus emerges or the time is up. Go around at least once, so that everybody is heard!
Let team members appreciate each other and end positively Source:
Agile Retrospectives who took it from 'The Satir Model: Family Therapy and Beyond'
Start by giving a sincere appreciation of one of the participants. It can be anything they contributed: help to the team or you, a solved problem, ...Then invite others and wait for someone to work up the nerve. Close, when no one has talked for a minute.