Because of the run A, B tests and not always properly done cleanups, we had some dead code living in the codebase, which, you know, would be good to get rid of at some point. And that takes us to the rehab. So the big plan was to get the app to the state where rebranding is not a big deal anymore. And as I already mentioned, we had to do loads of cleanup, loads of different kinds of cleanups. We had to narrow down the number of sets of tokens from three to one. Somehow, right? I think it's worth it. Because, as you know, in engineering usually it looks like, yes, we have three different sets of tokens. Let's introduce a new good one. And now we have four different sets of tokens. This is usually how it looks like. So it's good to sometimes just do the proper cleanup and organize this chaos before moving forward. We standardized color, spacing, the typography, but also things like border, border radiuses, and other things, also shadows. Like all different kinds of styling tokens, which can come to your mind, we just organized into defined sets of tokens. We have also created an action group focused on cleaning up web views.
So here a little bit of context. We, at the stage of, you know, planning the rebrand, there were a couple of different solutions to what we want to do with web views. One of them being, for example, introducing universal components library and migrating everything to use these components. Same with tokens. Maybe just rebranding web view, sorry, the web app and the React Native app alongside. But we took a look into data again and how many of these web views we have. How big of an effort would it be to clean up web views, so basically migrate the most used ones over to React Native, because both rebranding the web and rebranding and introducing universal components library and then migrating the thousand-plus screens of Native app was a big investment. So back in the time, the best solution when it comes to effort versus impact was to clean up web views, clean up the mess, migrate everything over to Native, and this is what we've done.
The big part of preparing the code base for the rebrand was the design system communication. We really have done loads of work around communication, transparency, bringing in some processes, having some processes in place, because that was super important to establish good patterns of using design system on a daily basis, because our code base was growing every day. And obviously, we've done this whole cleanup, but we also had to think about the future, think about what happens in a week if we will not establish some good processes. First, we celebrated all of our squads adopting design system, and we really made it super public. We went to all hands with some leaderboards, because we had the design system adoption data, we also had data about which domain is owned by which squad, and through the code ownership documentation in GitHub, we also knew which of the squads are owning which of the domain. So we could build leaderboards for which squad is doing the best and which squad maybe is not doing so well. But we focused on celebrating the squads which are doing very great. We also promoted design system adoption through squad level OKRs.
Comments