PS: I am republishing my 2019 blogs on the Design system at the Hash node. However, these blogs are still valid.
Knowing about the Design system is overwhelming. It could make you tempted to create one. However, might be you don't need one, or might be you should have one.
But how to know when one needs a Design System?
This is the one question every developer and designer should ask before working on the Design System. Because developing a Design system is a very big task and maintaining it too.
You might require a dedicated team for the design system development and maintenance. If you are a small company with limited resources then you are just over-engineering or over-committing by Design system.
How to know you need a Design System?
Your dev team is spending more time recreating the same modules.
Your products are not following the company guidelines and yet getting live in the real world
Your designers don't know the style guides of the company and the brand.
You have a dynamic team where people keep joining and leaving.
You want consistency across all your products and projects with respect to branding, code, guidelines, etc,
If your design system is not solving the problems of the developers and designers, if it is not simplifying the process of building the product and shipping fast then you should re-evaluate your design system.
The design system should be in the organization to help designers and developers, simplify the workflow and process, and speed up the development & release.
Remember, the Design system in itself is a product.
You need a dedicated team of developers, designers, content writers, and testers to develop and maintain the Design System. If you have a team that is too small and deliverables are important. It is my advice not to start with the Design System. Yes, Design Systems do have a lot of advantages in the long run and if you are willing to take the risk then go ahead.
One of the solutions you can do is adapt to an open-source design system.
As well as, you can add your own style guide or code changes to the open-source adapted design system. There are quite a few design systems available such as - material design, ANT design, Carbon Design System, etc.