This weekend I dove deep into design systems. And deep is somewhat relative because before the weekend, design systems were an abstract idea to me. Now, they are less abstract.
This is where the very annoying and frustrating answer comes in of, ‘it depends.’ If you are a beginner developer, most likely you need a design system in the form of one that has already been created. If you are a beginner developer focusing on CSS, you might want to make your own to standout. If you are just focusing on layout, unless it is important to make custom layouts, reach for something already implemented like Bootstrap.
Everyone uses a design system in some way. Either you struggle through making your own, or you reach for an already existing one. Both options are great when they are the best option. And we all know someone who says, ‘Don’t use bootstrap (or fill in the blank ‘other design system’)’ but who then tries to do it custom and it looks terrible.
So ‘do we really need one?’ is not the right question because you use one anyways, no matter how well or not well it is used.
But when do we really need a design System?
If you are going it solo, learning to code, and building projects, I don’t think you really need to focus on a design system. Over time you will get there. By that I mean, you will see the need for one eventually and at the moment is when you want to take advantage of one.
Why? What are the perks?
Ultimately the best perk of a design system is standard. Whether as a freelancer, startup, or a large company, you will need some defined ‘way of doing things.’
This can vary from project to project and can even be a part of the process for your client, if you are a freelancer or startup. But if you are a larger organization that is well established in what it is doing (think Mailchimp), then it is a really good idea to have a defined way of doing things as a company.
- Less ‘reinventing the wheel’
- Easier onboarding for new hires
- Helps with onboarding clients
- Lets you focus on what you ‘want to do’ in a project
- Helps eliminate ‘technical debt’
- Creates team cohesion and empathy
- Creates common language across entire team
As with most of the stuff I have written about, a Design System will force the company to be introspective and potentially change some things. This will be difficult because everyone wants speed because speed means more and more means $$$$.
Or at least we think that. I am opting for a different option. An initially slower option. A tortoise if you will that once you cross the finish line you will have a system that not only helps you move quicker but a system that gives you and your people more value.