If you’re considering implementing a design system for your project or encountering difficulties with a current design system, this article offers some valuable insights that can foster consistency across your products and empower the team responsible for its development.
I’ve had the opportunity to work on building in-house design systems over the past few years and I’ve come to understand that a design system is not simply a collection of components and design patterns. It is, in fact, a reflection of the people and culture within a company, and it plays a vital role in shaping the overall user experience.
Build your design system as a product
Sadly, it is not often that we approach the development of a design system as we would any other product, utilizing well-established agile processes.
So, how can you streamline the process of building a design system? Nothing ground-breaking, let’s do it as we should do with every new product we aim to bring to market: discover, validate, iterate.
1. Discover
Regardless of what stage of building system design you are going through, a discovery phase helps you define a goal or problem you want to solve with your design system.
Start thinking about your design system users (designers, developers, business people) like customers. Schedule some interviews with them, and ask about their problems and needs. Prepare surveys, try to understand their worries and willingness about using design systems.
Become a part of the product development team and observe their day-to-day work. Try to figure out what they expect from the design system, and how it can speed up their work and provide better developers’ experience.
Talk to newly hired people, they are often able to provide a fresh perspective on a problem that employees with many years of experience need to see.
Understand the goals of your organization. Talk to company technical leaders, and get familiar with technical and product roadmap, if the company you work for has it.
Collect insights. Define problems and goals.
2. Validate
Create your MVP (Minimum Viable Product or Minimum Viable Piece of Design System — if you want).
If you need: a new process of making design decisions, working components, a pattern library, or better documentation, try to start small and test it with your users as soon as you can.
Collect feedback, and reflect on the process, achievements and challenges.
3. Iterate
Repeat, tweak and improve. Go back to the first “Discover” point.
Take care of the marketing of your design system
Communicate progress, run demos and presentations, provide documentation, and inform your users about changes. Decide on communication channels tailored to your organization and user needs (Teams posts, community meetings, e-mails?). Ensure newcomers are onboarded to your design system.
Take care of consistent vocabulary used in the design system and its understanding among all its users.
All hands on deck!
To implement a well-working process of building a design system, it’s crucial to consider the resources and capabilities available.
Generally, designers and front-end developers have the subject matter expertise, but creating a comprehensive design system requires having more people on board.
It is essential to involve a product manager who’s driving decisions and prioritizing things. The person is responsible for creating a product vision and maximizing design system impact.
To guarantee the proper quality of the design system, it is important to involve dedicated quality assurance engineers in the process. They can help with cross-browser testing of different components, writing visual tests, and conducting accessibility tests on both components and website levels.
Talk to managers, and ensure the organization has the capacity for the design system development. You will need full-time resources to work on a design system, otherwise, you might end up with inconsistent components, a lack of documentation, and unsatisfied users of your design system.
Guidelines cannot be written in stone
A design system should be a powerful tool that empowers designers and developers, and its documentation should work as a single source of truth. However, it is essential to remember the source can and should be challenged whenever necessary, to ensure that it is adapted to the needs of users.
Developing a design system requires processes that facilitate the work of the team and provide flexibility that helps the team grow. A clear decision-making process will allow you to develop the design system and change its components when needed.
Conclusion
- A design system is a product and it requires a vision, goal, roadmap budget, and assets for its development.
- Developing a design system can be challenging, but a well-maintained design system can improve consistency and efficiency in the design and development process, resulting in a better user experience for your product users. Additionally, it can help to streamline communication and collaboration between designers and developers, which can lead to faster product development and deployment.
- Design system requires a balance between established principles and adapting those standards to changing circumstances.
Wish you all the best on your journey with a design system