We all love design systems. For their clarity, comfort and assurance. Finally, we are on the right path.
However, we might not be immediately capable to embrace it. They require change of mind and change in company culture.
What Design Systems Are
It's 2019 yet many articles with such titles are popping up and get voted up constantly. Even silly or basic ones. People — it seems — are still familiarizing with the idea.
I find this strange.
Google's Material Design is many years old; so it is Lonely Planet's Rizzo. React offers design system and living styleguide plugins and implementations. Sketch has a plugin to export a design system into React components without code written. Even this blog was created using a design system four years ago.
Why design systems are not ubiquitous?
The answer was not obvious until I've met a company willing to implement it but failed on the road.
- Development team: Yes, we can see now how a Design System can constitute the basis for all our other assets (websites);
- Design team: Yes, we've been designing with design systems since 2007, and we see the commercial capacity.
In spite of the enthusiasm and good will we've ended up with no design system at all.
What difficulties Design Systems impose
In this particular case — which might be similar as well for other companies this size and cultural heritage — the design team was not able to deliver a design system.
On code, we've ended up with components so big in number and redundancy they've escaped under control.
On designer ←→ developer communication the pattern was the classic one: developer, execute the creation!
And the lessons were grim.
Deconstruction
A design system is not a continuously expanding thing like the comps of the past were. It is canonical, deconstructed to the minimum number of parts. It asks the question How we can re-use? instead of throwing a Let's quickly add ....
There are no hacks — anymore, unfortunately — instead there is contemplation. If an element in a design system is singular, not reused elsewhere it can't be part of the system.
With design systems the design is reduced to its fittest form. A result not always trivial to achieve.
Systems thinking
Artists are not engineers.
Some minds are not capable of systems thinking. A person with excellent aesthetic skills can't be expected to oversee hundreds of mechanical parts of a user interface from links and link states to responsive and re-usable page structures — from atoms to molecules and organisms.
Artists need help.
With design systems there is tight control over creation. Every flaw during design is revealed during code. And flaws can't be forced to be implemented, like in the old comp-days when the designer had an ultimate authority over the developer.
Code components
Design systems require to be implemented with code components.
A relatively new paradigm, again, components eliminate the chance of hacking. No dev can jump in and change quickly a button's color or reduce the size of an image.
First the system has to be understood. Then changes applied reckoning they affect an entire system instead of being a quick local patch — as in the old times.
Control is bi-directional. As devs reveal design flaws during their work, accordingly, their work is validated continuously by the design system.
Real teamwork
Design systems are more math than art.
They are a combination of creativity and engineering skills. It's a teamwork where both parties — designers and developers — are equal and decisions are made on best practices, consensus, rather than hierarchy.
TLDR;
Creating user interfaces and experiences is getting more interesting and satisfactory with these new changes in technology and methodology.
The learning curve can be sometimes steep 1. Both for the designer, the developer, and for the management. New skills, new kind of decision-making are required.
Like responsive design ten years ago — design systems are revolutionary.