What is Design Language?
A design language can be a set of visual components and/or ways of solving problems in a particular domain. For software development, it can be a group of UI elements in the frontend. For the backend, it can be a well defined process or list of rules such as using SQL views for reading data instead of directly calling tables.
Design language is important mainly for overall consistency of the project. As a developer, you don't need to make decision every single step and only has a set of guidelines to learn and use. When working on the project, you know what to expect instead of having a fragmented codebase.
This as a result also makes the work more productive and enjoyable.
In short, a design language helps with:
- consistency throughout the project(s)
- achieving a particular vision
- single set of principles through the project(s)
- no need to make unnecessary decision at every point
- maintaining productivity
- giving a unique feel for the product or organisation itself, that can be easily differentiable
In fact, plenty of car companies such as BMW and Mazda have a specific design language which relates to most of their models.
Why is this essential nowadays?
Things that usually happen when multiple people work in the same projects without a well defined Design Language:
- they can implement the same behaviour differently such as storing files on the server versus as a blob in the database. This is already an increase in complexity.
- what elements are used in the application? For example, to display a list of information, do we use tables, grids or cards?
- what colour palette is used? Without this, the toast might be implemented in green with an icon and text for success while for warning, it might be used as a closable popup in yellow colours.
What Development teams can do to mitigate this issue?
- Have a design language before start developing the application
- Improve it whenever possible as not all information is initially available
- Use Jidoka, a Lean Method, to pause development whenever there is some doubt and refer or update the design language document