We have established several new meetings/events in the past few years that help us work better together across teams. One of them is our Monthly Sprint Show. It’s an internal even just for our department where each team shows the other teams what they have done in the past month. I think it helps us improve our communication and understanding of other teams and their applications but it could always be better, so here is some explanation and then some questions.
A few years ago we had 3 teams: One worked on an external application for students, one built a new application for our recruiters and one worked on a monolithic application for all business stuff (aside from the little that the small recruiting application did). We all had two-week sprints and did a product review together for the whole company (not with external users). After a while we realised that we don’t get a lot of qualified feedback. Some people were in the room whereas others were watching via stream and it’s always easier to ask and answer questions when you’re in the same room. Maybe some people didn’t want to provide critical feedback or share concerns about a new feature when several of big bosses were also in the room. And a lot of people didn’t attend because just a tiny fraction of what we showed was important for them.
So we decided that each team is going to do their own reviews. One team has all their stakeholders in an office room next door, so pre-COVID they did their reviews in a meeting room in the office. Our team has stakeholders all over Germany so we have always done ours via Hangouts. The reviews are still open for everyone but we invite people who we think the new features impact the most or who can give good feedback for what we did in our Sprint. The feedback we get is a lot more detailed, there is more time and opportunity for asking questions and going into detail and all in all, it has worked great for our communication with our stakeholders.
A side effect no one thought about though was that we almost never attend reviews of other teams. They tend to be about 30 minutes to an hour long every 14 days, we have 6 teams now and most of what is being talked about in those reviews is not relevant or even really understandable for other teams because we don’t know everyone’s domain very well. But some of us felt a bit out of the loop. Sometimes other teams build interesting things (UI/UX or technical) that other teams could use as well. Sometimes it’s just that when you do a feature that needs to be integrated into different apps, you’re suddenly very confused by this other team’s app that looks completely different from when you have last seen it.
So we do Sprint Shows now. Every first Tuesday of a month we get together for one hour, each team has about 8 minutes (6 product teams plus our UX/UI team) and in the end the POs show the current roadmap for the next month and highlight what has changed. The teams can show whatever they want to show. At the first event everyone tried to quickly run through all the most important features they had built within the past year. In the following iterations, teams showed what they had released in the last month in a bit more detail. Then there were some Sprint Shows where some teams didn’t have anything to show in their User Interface because they had spent most of the month modelling a new bigger feature or prepared for an upcoming feature by doing a rather big refactoring or implemented a more technical feature. So they talked about this. Some people showed Miro boards with models, one showed an event store browser they had built that can be used by all teams and one made a flow chart of their application to show why the refactoring they had done was necessary.
Corona homeoffice has made the technical side of doing this event a lot easier: Previously we had done a YouTube stream from my computer so that people working remotely could participate and people in the office could be in a room together which was always a bit of a hassle because YouTube streaming is a pain in the ass if you don’t do it regularly and people needed to send me links and files they wanted to show. Now it’s a Google Meet call, everyone shares their own screen with everything they want to show.
I really like this event, it’s a nice way to get a quick overview over what the other teams have done, get some inspiration, ask some questions and find topics for follow-up meetings or our Learning Hour. Which is one of the other events we have: a bi-weekly time slot for learning together: sharing things someone has recently learned (at a meetup/conference or a video/blogpost they have stumbled upon), sharing problems that have occurred in a team and asking for help, or doing a discussion round about a topic that someone finds interesting. And we have CoPs. Well, one right now, on Domain-Driven Design. And one on Data is in the making. Another intra-team meeting we regulary do is our daily Scrum of Scrums where we talk about what we are currently implementing and if this has any implications on other teams. And the last meeting is a monthly Roadmap Refinement where we talk about what will be done during the next few weeks and where we see dependencies that haven’t been talked about enough.
I think these are good ways to help teams communicate with each other and know a bit more about the others and what they are doing, but I still think something is missing, especially now that most of us are never or only rarely in the office. What does your company do to encourage cross-team communication and knowledge sharing?