The journey to Standardized RFC process in Trendyol
In this post I will present a way to overcome the challenges that a big organization like Trendyol might face when its members are adopting independently Request for Comments (RFC ) as a asynchronous communication tool. I will not write about what is a RFC or when to use it, as there are myriads of medium posts on this topics.
The Beginning
I joined Trendyol in February 2022 in the internationalization team, a team responsible to create a content and translation management system (CTMS), in order to support the company extension in Europe & MENA.
The CTMS project started as a greenfield project with a small but hardworking team and we basically wanted to create a global service that will have as stakeholders the teams in Trendyol that have a need for localization or translated content.
Since the beginning we started writing RFC about our APIs together with our very first stakeholder, the Product International team. So the collaboration with our stakeholders worked like a charm.
We didn’t have a structured process, we used a format we found on internet and list all our team RFCs in an internal index in GoogleSheets, that we shared with our first Stakeholder.
Things were going quite good:
- in couple of months we produced a number of 15 RFCs that were documenting our software components.
- my team members used RFC to asynchronously communicate, especially we are a international team with members in multiple time zones.
The Problems
The involvement level of my team members and our first stakeholder was super high but I noticed low involvement with our colleagues from other teams that are experts in CouchBase, ElasticSearch or Infrastructure from which we would like to have feedback especially on key points of our architecture. Probably this was caused by lack of time and we always had to search for free people to give us some advices. I realized that somehow we didn’t reach the people that could give us the best feedback.
At the same time I noticed there are some RFC created by other teams that were circulating in different slack channels. I also realized that people where using different templates, the most exotic one is in Google Sheets, as Trendyol is a big fan of this format. As the adoption rate of RFC process will increase, without a standard template and a clear release and review process, I expect this variance to increase even more.
But the biggest problem was not the lack of the unique template but the lack of a unique release channel and unique index. I was able to see RFCs in different communication channels, that one cannot know for sure if his idea was already discussed in a previous RFC or might find it very hard to find RFC to add his contribution and feedback. Also every team were keeping their own RFC index and it was very hard to achieve cross domain collaboration.
Trendyol is a company with a strong culture that encourages asking feedback on people’s performance, on their work and on their ideas.
In my opinion , this is one of the main factors that contribute to the healthy functioning and success of our organization. We also tend to hire people that are humble and open to feedback.
As the process of asking feedback on someone’s performance is quite structured, unfortunately the process of asking feedback on someone’s work or ideas was not so standardized and very loose.
In this regard we have an advantage because the culture is the most hard and time consuming to build. Structuring the process is easy, once we reach an agreement.
In conclusion, I proposed in Trendyol the adoption of a standardized RFC process that is clear, simple enough to be follow by anyone, it is encouraging all members to contribute and is the only one followed in our organization.
The Process
To my delight, most of my colleagues embraced my idea and it was later adopted. The RFC process is intended to be simple and the authors needs to follow 5 simple steps:
- Use same template in all RFCs. This is Standard Template for RFC
- Index the RFC in a unique index that is accessible to anyone in our organization. We use a simple GoogleSheets file and like this, one can find all the RFCs in one place
- Release the RFC and ask for feedback using one unique release channel by simply sending an email to a mailing list with all software engineers. Like this don’t miss any RFC. As my colleagues are big fans of Slack, I made also an integration with the #rfc slack channel for those who prefers slack notifications.
- Send one reminder to the above mentioned mailing list with 2–3 days before the feedback request expiration time.
- Get approval from the sponsors of the RFC and tech management.
As positive results of having one unique index:
- we could finally have an overview of all RFCs in Trendyol and their status. In the last months my colleagues created almost 50 RFCs and the number is raising
- encourages cross domain collaboration
- we can extract easily metrics and do optimization of the asynchronous communication process.
- one can easily find all he RFCs in one place and contribute if he feels like it.
In order to educate and help our colleague with the process, I also created a cross department team of volunteers made from engineers who have experienced in writing technical documents and have a good control of the English language. The RFC Support Team offers review and support on content structure, style and English language to colleagues interested to get help before releasing their documents to the entire organization.
The future
The actual standard RFC process is just the first iteration and in the future we will automate this process in order to have the RFC index and release channel in the Pandora portal, our super cool software catalog & developer platform.
In the current state, all engineers are receiving all new released RFCs through the mailing list. We should also develop in Pandora a subscription system where every developer can manage the topics or domain team that he wants to get notifications
References
The main idea I got it from this amazing post wrote by Phil Calçado , but I adapted it to the realities of Trendyol.