Architectural Show and Tells
Each team at Red Gate has full autonomy on what features they are going to work on and how to implement them. There are many advantages to this approach; teams can work independently and solve the problems they face in unique ways. However, the downside of this approach is that it keeps this valuable know-how inside the teams and limits cross-pollination across the division.
One of the initiatives of the Lead Software Engineers for this year was to enable teams to cross-pollinate these learnings. Before we could even start we needed to know what the architecture of each code-base looked like as of now and wanted to hear from the teams how an ideal architecture looks like in their eyes.
We have set up a one-hour meeting with each team and asked them to explain the logical components of their code base and draw a diagram showing how their overall architecture looks like.
The main goal here was not to collect some architecture diagrams about each product but to spark conversations around architecture within and across the teams. As always, doing the exercise of thinking about the architecture was more valuable than the artefacts of the session.
We didn’t want this valuable information to be forgotten after the meetings and asked teams to run a similar session for the rest of the division.
Again, we didn’t want teams to spend days preparing nice slides and fancy diagrams. Since the aim to start people talking about the architecture, we wanted the session to be interactive.
The format we came up with was 10 mins of presentation followed by 5 mins of question and answers. The medium we have chosen to run these sessions was Zoom Webinars which already had built-in support for Q&A.
We’ve asked teams to talk about their current architecture, their desired architecture and core capabilities of the codebases that they are looking after. Core capability in this context roughly translates to any logical feature of the product that can not be replaced by a commodity solution but can also be useful for other products to consume.
We have run 5 webinars, each of which taking about 30 minutes and having two teams to talk about their architecture. Product Division’s engagement with the webinars was around 60% which was a lot higher than we’ve anticipated.
Some teams didn’t only share their current and ideal architecture diagrams but also shared a rough roadmap of how to get there. This is exactly what we have hoped we would get as an outcome of these sessions.
Overall, this experiment went pretty well and we have enabled teams to start thinking about possible improvements in their codebases to be able to work towards building capabilities that can be consumed across products
As a follow up to these sessions, we have started working with the teams to see how we can help them to extract these core capabilities and look for common set of blockers (if any) so that we can help the division better for removing these blockers.