Дизайн-системы внедрять сложнее, чем библиотеки компонентов потому что количество людей, которые должны договориться на порядок выше
По моему опыту, дизайн-системы появляются у существующих бизнесов, когда накопилось понимание, как выглядят интерфейсы компании
Мне кажется странным делать дизайн-систему в компании с новым или единственным продуктом. Лучше взять готовую библиотеку компонентов
И дизайн-системы, и библиотеки компонентов решают несколько продуктовых задач. Чтобы объяснить пользу бизнесу, я использовал такие аргументы:
* готовые блоки ускоряют time-to-market продукта и новых фичей
* предоставляем похожий UI во всех продуктах
* уменьшается количество багов
Без поддержки бизнеса и дизайнеров втаскивать дизайн-систему бесполезно:
*бизнес не будет выделять время, система будет недолго развиваться на морально-волевых, потом будет медленно гнить
*если дизайнеры не согласны, отрисованные интерфейсы не будут биться с готовыми компонентами
Процесс внедрения будет небыстрым. Чтобы бизнес не включил заднюю, нужно сразу показывать ценность дизайн-системы.
Тут мы подходим к вопросу, писать своё или брать готовое
Исходя из моей гипотезы, что дизайн-система появляется только в крупных компаниях, следует, что существуют десятки интерфейсов, написана куча кода.
Внедрять что-то совсем новое со стороны будет очень сложно. Поэтому мы видим столько своих дизайн-систем
В небольших компаниях нет денег на разработку своего, поэтому обычно выбирается что-то готовое. В этом случае я бы обращал внимание на лёгкость кастомизации стилей (с этим у всех проблемы) и расширения.
В обоих случаях нужно спланировать внедрение. Чтобы показать ценность, мы делали быструю миграцию маленького проекта на дизайн-систему, а затем устраивали сессии парного программирования, чтобы разработчики мигрировали своими руками, но могли задавать вопросы
Adoption дизайн-системы — самая сложная часть работы. Нужно много рассказывать публично, устраивать парное программирование, давать отпор дизайнерам, которые делают много кастомных штук
Чем больше я работаю с дизайн-системой, тем больше понимаю, что программирование — это лишь маленькая часть этого продукта
Гигантский пласт работ связан с документацией, обсуждениями, выстраиванию границ дизайн-системы. Если хотите прокачаться в коммуникациях, то вам сюда
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Чтобы хоть как-то говорить про дизайн-системы, нужно определиться с терминологией. Мне кажется важным разделить два понятия: дизайн-система и библиотека компонентов (UI Kit)
Библиотека компонентов — это набор готовых строительных блоков для создания интерфейсов. Дизайнеры нарисовали, разработчики напрогали и переиспользуют.
Очень утилитарная штуковина для ускорения разработки интерфейсов
Дизайн-система — это инструмент для формирования общих подходов и паттернов проектирования интерфейсов в компании. Такой альманах, как нужно делать интерфейсы.
Она обычно включает в себя библиотеку компонентов, но может и не включать.
Чтобы участники команды чувствовали себя её частью и принимали командные решения, такие решения должны ощущаться справедливыми
Справедливость во многом — это наличие явных правил принятия решений. Подходов к принятию решений много, расскажу про основные. Идеального, конечно, нет
Подходы обычно оценивают по нескольким параметрам:
* скорость принятия решения
* уровень вовлечённости участников
* прозрачность
Первый метод — автократический. Решение принимает один человек, показывая всем свою альфовость
Скорость быстрая, прозрачность околонулевая, никто обычно не вовлечён в принятие решения.
Апгрейд этого подхода — консультативный, когда есть советники