Hello everyone. Let me walk you through introducing design system into mature codebase loosely based on Clio. But before we'll go into the more details, let me introduce myself properly. I'm Kasia Strzymska, design tech lead at Clio. I'm based in Poland, Gdańsk, but Clio is pretty much based in London. So I'm a full remote Clio employee.
So mature codebase, what exactly it is based in Clio? So if we think about a project, when we're starting a project, we are thinking about something pretty much meeting requirements, meeting expectations. We are gathering these requirements and then we'll be building something which is good enough to meet all requirements, deliver all the features. So in an analogy of a house, it has windows, it has doors, walls, a roof, hopefully some rooms inside, a bed. And this is like a final product.
But over years, over many years, for example, eight years, this house starts to grow and sometimes it starts to grow in a very weird direction. So this is what can a mature codebase become if developed at a very, very fast pace, as was the Clio example, where we are a startup, we're considering ourselves as a very fast moving, fast paced startup. And we've been trying multiple different features with our users. And because of that, our codebase grew a lot over these years. And because of that, we've met loads of challenges on the way, one of them being the fact that we introduced loads of components, many of which looked differently, behave differently. Even though they were about to have the same function or similar function, they all looked not the same. And same with styling. So over these years, we introduced many different styling. There was a rebrand going on on the way. So we had a couple of different color palettes living in the codebase, token sets, some colors or spacing being used as magic values. And over the years, we introduced plenty of inconsistent design patterns as well.
Mostly, but probably not only because of that, we've been working in siloed squads, we still work in squads, product squads, which are very focused on the features and delivering features in the scope of their domain. They are very much prioritizing fast delivery of a feature over consistency. And because of that, we've had to face more than these, but also these challenges of difficult maintenance, slow onboarding and disjointed user experience, which is, you know, for a company as Clio's very, very user focused, user oriented, disjointed user experience is super painful to watch, to see. We realized as a design system squad that there is one thing we need. So coming back to our house analogy, we need a plan. We need architectural plan of this huge house. We need to understand where we are, how many windows we have, how many doors, what shapes, all of this information. We basically needed data to guide us, which is also very Clio connected because we use data all the time. So design system was not any different.
Comments