18. March 2021 By Carolin Höhn
Factor for success: design systems
Many methods and processes in the digital world are born out of necessity. We are always looking for a way to make things smoother and more efficient to create products of higher value. In the world of digital design, this concept is becoming more important every day. A design system is a systematic approach to product development. Developers and designers alike can use a design system to quickly develop highly functional and coherent software.
What is a design system?
A design system is a tool and framework with clear rules, principles and reusable components – such as forms, tables or buttons – that define how a team designs a product. It is a living library of styles, code and hands-on examples that serves as a ‘single source of truth’. The purpose of a design system is to structure product development and establish processes to scale design practices, reduce the need for transfers and promote team collaboration.
Building blocks of a design system
Unlike a style guide or pattern library, a design system is not just composed of a number of reusable user interface (UI) building blocks; instead, it describes how to apply the brand’s design language to create an unparalleled user experience (UX).
There are generally two sides to a design system. One of these sides is the abstract part. This facet of the design system comprises the principles and guidelines that define the strategic design direction of the brand.
The other side of the design system is a concrete component that contains all UI components. This includes brand elements (such as logos or claims) and graphic components, which are developed based on the atomic design principle.
Meaning of a design system
A design system improves the user experience. Design systems take time and pressure out of learning potentially complicated software. Consistent components and their behaviour create a positive user experience that features recognizable patterns. An example of consistent component behaviour is the ‘next button’ at the bottom of a page that usually takes the user to the next page. This action is expected to be the same in any application. This consistency makes the UI easier to understand and use, which in turn reduces the cognitive load and improves the users’ UX.
A design system speeds up the design and development process. The various teams within a company can choose from preconfigured components with integrated backend functions. This means that all search components work similarly and all ‘send buttons’ work the same. The underlying logic and associated code are firmly defined and reusable, eliminating the need for manual coding. A design system also frees users from having to repeatedly solve interface layout issues. This results in a higher degree of design maturity.
Design systems bridge the divide between design and development. Use of a design system makes the technology more accessible to non-technical stakeholders. A design system ensures that developers, designers and stakeholders speak the same visual language. This improves the dialogue between specialist and technology groups.
Building a design system
Developing a stable and efficient design system requires cross-functional collaboration. In a large company, the team consists of UI designers, developers, UX designers/researchers, accessibility specialists and content strategists who are directed by a design project manager. The team should get input on the project goals, technology stack, roadmap, high-level timeline and prioritisation of various tasks during workshops that serve the purpose of requirements elicitation. Once the minimum viable product is complete, the team identifies a pilot project to test the effectiveness of the design system and implement changes based on feedback.
As design systems are constantly evolving, they come with many challenges. Risks can be minimised by making clear and precise documentation available. All components must be kept in the same place, and this place must be easily accessible to all project members. Furthermore, platform-independent components must be built, and the components’ performance must be constantly monitored and tested across multiple devices.
The architecture of the UI pattern library can also be challenging. Applying the atomic design principle can help in this regard. The basic design elements of atomic design, first coined by Brad Frost, consist mainly of three elements: atoms, molecules and organisms. When joined together, the design elements ensure consistency and allow for unlimited scalability of the design system.
Atoms are the basic building blocks of matter. They have unique properties that cannot be broken down further without losing their meaning. To add value and be useful, they need to fit together like Lego building blocks. In the context of a design system, fonts, colours and typography are all independent components (or atoms) that only become useful when put together.
Molecules are groups of elements (or atoms) that act and function as a single unit. In a design system, molecules can be any number of elements, from question text and confirmation buttons to a search function with a form element and a button.
Organisms are groups of molecules and atoms that are joined together to form a more complex structure. Applied to a design system, this could be a discrete part of an interface that contains a date picker, the form elements, text, numbers, styles, calculations and navigation buttons.
A group of organisms working in unison constitutes a template that visualises something concrete to the end user, such as a layout. Finally, pages are unique instances that replace template placeholders with real content.
Like all organisms, a design system cycles through an iterative process and is, in a sense, a living document. Testing and collecting feedback from the team and end users helps promote the long-term health and relevance of a design system. By providing a solid foundation, design systems help improve the efficiency and speed with which companies can develop engaging products for customers today and in the future.
Does your software need a design system? Yes!
Building and deploying large-scale, complex applications without a design system is a waste of resources. This is because each time an interactive experience is created, it is built from the ground up. Why spend time building the same components and features that another team already developed three years ago? Design systems give developers more time to focus on what truly matters: the user experience.
Modular. Responsive. Collaborative. The logical consequence of the digital world. Design systems help to better cope with this complexity.
Would you like to learn more about exciting topics from the world of adesso? Then check out our latest blog posts.