Content
A design system is an invaluable tool to any team of designers and developers. It does not have to be a complicated, convoluted system; in fact, at its most basic level, it is simply necessarily documentation at a design level.
Each design component -- a button, a dialogue box, a checkbox, a drop-down list -- has certain properties and variations. These need to be documented and specified somewhere, so that each time it is used:
- the design team can use it in future designs to maintain consistency
- the dev team knows how it should behave, without having to re-define its behaviour each time it is used
- the QA team can verify that the implementation corresponds to specifications
This is crucial to maintain consistency and avoid having multiple implementations of similar elements, which adds both design and development overhead. While the design team has started working on components and defined variations, no design component is properly specified today. Today, the dev and QA team need specifications per work package or per feature, and each new one can potentially include clarifications, modifications and variations.
Today, there is no documentation on how any design component should act or behave, a "single point of truth" that any designer, dev or QA person can look into. There are no ways to define variations over time, and therefore no way to have an existing component evolve over time to cover different needs.
Not having this documentation, this single point of truth, translates to a lot of time spent on communicating between designers and devs, a lot of effort to come to a common understanding and even more time spent in the future when trying to understand design decisions taken in previous discussions. The lack of proper documentation is not only inefficient but expensive and time-consuming.
At its most basic form, this is the problem the design system seeks to solve. It allows a team to work more efficiently across the design and development cycles. Planning, mockups, coding, and QA become cheaper and faster.
As we work on new features and optimisations, which we are already doing, we need to document these changes and behaviours somewhere. The design system, at its most basic form, doesn't have to much more than simply these necessarily specifications and documentation that facilitates communication between the design and dev teams.
In its smallest form for the first iteration, the design system is simply a common base shared between the design and dev teams with work and time that both teams are doing anyway each time a new feature is worked on. It is a necesasry a common base that reduces that effort both teams spend when working on future features and optimisation.