Hi, everyone. Matheus Palano here. I'm from Brazil. I'm also a senior software engineer and tech lead at Quintana Roo, and I'm here to present this talk, From Chaos to Clarity, Leveraging RFCs in High-Performance Environments.
So first of all, I'd like to give you some context about Quintana Roo and why RFCs are so important there. So Quintana Roo is the largest housing platform in Latin America. It's already present in over 50 Brazilian cities and has started making its first moves into the international market. Currently, it has more than 5,000 employees, including 1,000 people in product and technology. So therefore, our architecture decision-making process needs to be very, very efficient, and that's why we have created an initiative called AmazingRFCs.
What we are hoping to achieve by the end of the initiative? We'd love to see visibly improved the quality of our deliveries, reduced time spent on design, RFCs as a way of sharing knowledge, cross-describe, and drive collaboration. So to do that, we needed to increase the density of people technically capable of conducting great architecture decisions, and a way to do that is by RFCs, but writing RFCs involve many, many areas, and that's why we have decided to split it into three main areas. The first area that we were going to work was empowering focal points in each tribe. It means having local technical leadership who are subject matter experts and can provide assistance. Those leaders would also be directly claiming individuals from these tribes. The second area would be managers capable of training and guiding. They will also be responsible for monitoring technical decisions, establishing accountability for good technical decisions within the area itself, and last but not least, tools, guides, and process, creating guidance to assist with different aspects of the architecture, creating tools for tracking, and improving quality.
So we took many actions to achieve those goals, but I'd like to show you three actions that really made the difference for us. The first one was create a group called RFCs Advisors, people who are responsible assisting others with RFCs and create a community for them to exchange ideas, as well as bring specific advisors who are experts in system areas. So how did that work? We have the advisors on the top, and the process of writing an RFC would be split into three steps. Step one, initial writing, presentation to the team, and then external review. The advisor would also be present along with the person who's writing in those three steps. The second one was open for comments, at least one week in advance so people can prepare and have a week to read the RFC. Then the person who was writing along with the advisor would present it to the line and then make the adjustments if it was necessary. And last but not least, it would require approval by at least two reviewers, and then it was good to ship. The second action that we took that made a lot of difference was regarding design and review process. We have noticed that our synchronous time are very valuable and tend to produce great results as they're fast-paced through our discussions. But to achieve an optimum use of time for every person, we changed the schedule and forum. So changing the invitees to be selected by their domain knowledge and interest. Suppose that we are discussing a new architecture for layout components that will be used heavily across the login page. While we may have several super good candidates for discussion, like front-end engineer that contributed for the login in the past, or full-stack engineer that modified the login page and integrated with the APIs, or the engineer manager that will soon be pushing his team to propose a new architecture for SSL login.
Comments