Зачем среднему бизнесу своя дизайн-система и как она ускоряет разработку

Если вы пользуетесь библиотекой элементов, это не значит, что все проекты будут выглядеть одинаково

Зачем среднему бизнесу своя дизайн-система и как она ускоряет разработку

Привет! Я Трофим Жугастров, основатель компании Elonsoft. Мы помогаем среднему бизнесу стать крупным с помощью создания кастомных web, mobile и корпоративных IT-продуктов для цифровой трансформации бизнес-модели.

Чтобы ускорить и оптимизировать разработку продуктов для наших клиентов, мы собрали собственную дизайн-систему. Дизайн-система — это база всех компонентов и принципов, которые мы используем, с описанием и на уровне дизайна, и на уровне кода. Кнопки, поля ввода, таблицы, чекбоксы, модальные окна — всё уже разработано и протестировано, можно брать и использовать.

Вдолгую работать без дизайн-системы невыгодно. Во-первых, элементы могут повторяться из проекта в проект, а ты каждый раз будешь их создавать с нуля. Во-вторых, между дизайнерами и разработчиками часто случаются недопонимания, когда дизайнер имел в виду одно, а разработчики реализовали это по-другому. Например, по задумке дизайнера щелчок за пределами модального окна должен закрывать его, но этого не происходит.

Но когда есть база компонентов, новые продукты можно собирать из них, как из деталей. А разночтения минимизируются, потому что поведение и внешний вид элементов проработаны и проверены заранее — например, как выглядят разные состояния элемента.

Кто-то может спросить — зачем создавать что-то с нуля, если уже есть много библиотек, например, от Google. Если использовать их в том виде, в котором они есть, это правда сэкономит время. Но как только нужно доработать компонент под свои потребности, сталкиваешься с ограничениями и не можешь сделать компонент так, как хотелось бы. Так что в своей дизайн-системе мы сразу закладываем, что таких ограничений быть не должно.

В статье рассказываю, что дизайн-система дает нам и нашим клиентам.

Дизайн-система экономит 20-50% времени дизайнера

Создание дизайн-системы — это не какой-то отдельный торжественный процесс. В ней просто появляется потребность по ходу работы. В какой-то момент понимаешь, что каждый раз на новом проекте ты создаешь одни и те же компоненты, которые по сути отличаются только визуально — условно, в новом проекте кнопка будет другого цвета.

Вот кнопки в нескольких клиентских продуктах. Компонент один и тот же, но отличается по цвету, размеру и закруглению углов 
Вот кнопки в нескольких клиентских продуктах. Компонент один и тот же, но отличается по цвету, размеру и закруглению углов 

Это рутинная работа, на которую уходит много времени, особенно, если ты стараешься создать удобный компонент. И в конце концов понимаешь: чем двадцатый раз делать одно и то же, лучше сделать один раз и потом это переиспользовать.

Мы начали постепенно накапливать базу компонентов. В первой итерации создали и описали десяток самых распространенных, потом добавляли еще, когда чего-то не хватало.

За основу взяли Google Material Design и последовательно добавляли новые стили и компоненты, когда нам чего-то не хватало в ежедневной работе. Сейчас у нас много уникальных компонентов, которых не было в материнской дизайн-системе.

Сначала мы создавали компоненты в Фигме, потом стали разрабатывать их в коде и параллельно делать по ним документацию, чтобы в коде они соответствовали дизайну — вот так выглядит кнопка, так она работает, вот так ее можно использовать, а вот так — нет.

Это разные варианты кнопок — текстовые и иконочные, разных цветов, разного уровня акцента и разных размеров
Это разные варианты кнопок — текстовые и иконочные, разных цветов, разного уровня акцента и разных размеров
Зачем среднему бизнесу своя дизайн-система и как она ускоряет разработку
Для одного только поля ввода номера телефона нужно несколько страниц описания самого компонента и его состояний

Сейчас у нас в библиотеке больше ста компонентов, и это экономит нашим дизайнерам от 20 до 50% времени. Разработчикам — примерно столько же. Более точные цифры назвать сложно. В разных продуктах отличается доля типовых компонентов, которые уже есть в библиотеке, и тех, которые нужно придумать с нуля. Человеческий фактор тоже влияет — кто-то из дизайнеров быстрее создает компоненты, а кто-то медленнее. Так что для достоверного замера времени нужна очень большая выборка.

Мы постоянно дорабатываем нашу дизайн-систему. Например, в системе обучения DeasyLMS мы использовали и доработали компонент чата, который разрабатывали для другого проекта. Теперь для новых проектов у нас есть самая свежая и актуальная версия чата. Но иногда что-то приходится дорабатывать из-за внешних факторов, например, когда Фигма обновляется и вводит новый функционал.

Проработали компоненты сообщений — как прикрепляются фотографии, как фиксируется дата при прокрутке
Проработали компоненты сообщений — как прикрепляются фотографии, как фиксируется дата при прокрутке

Дизайн-система дает консистентность дизайна и верстки

Одно из преимуществ дизайн-системы — консистентность дизайна и кода. Или, скорее, дизайна и верстки. Если есть дизайн-система, в которой все компоненты прописаны, расхождение между тем, чего хотел дизайнер и как это реализовано, будет минимальным.

Иначе может быть так: дизайнер рисует что-то сам или использует стороннюю библиотеку, а у разработчика нет такой насмотренности, чтобы заметить разницу в пикселях или в оттенке. Он может сделать чуть-чуть по-другому. Но если все прописано, расхождение уменьшается, а консистентность повышается.

Вот, например, вроде бы всё так же, но разные шрифты, закругления кнопок, в окошке справа нет ссылки «Забыли пароль» и кнопки отображения пароля. Отличаются цвет кнопок и обводки кнопок соцсетей. Разработчики могли не заметить или забыть о таких нюансах
Вот, например, вроде бы всё так же, но разные шрифты, закругления кнопок, в окошке справа нет ссылки «Забыли пароль» и кнопки отображения пароля. Отличаются цвет кнопок и обводки кнопок соцсетей. Разработчики могли не заметить или забыть о таких нюансах

Почему продукты выглядят по-разному, хотя состоят из одинаковых элементов

Дизайн-системы бывают продуктовые, брендовые и мультибрендовые. Продуктовые — для одного продукта, например для интернет-магазина «Золотое яблоко». Брендовые рассчитаны на серию продуктов одного бренда — как Яндекс Путешествия, Яндекс Еда, Яндекс Go. Продукты могут отличаться, например, цветом, но связь между ними будет визуально считываться.

А мультибрендовые дизайн-системы, например, Google и его Material Design, адаптируются не просто под разные продукты, а под разные бренды, которые между собой никак не связаны. Условно, от Макдональдса до РЖД.

У нас мультибрендовая дизайн-система, ее можно использовать для совершенно разных брендов и бизнесов.

Может показаться, что если мы используем одну библиотеку компонентов, у всех наших клиентов будет одинаковый дизайн, без какой-то уникальности. Но это не так.

Если мы посмотрим на любой программный интерфейс, они все плюс-минус одинаковые. Прямоугольники, текст, изображения — вот, по сути, всё. Можно эти прямоугольники больше закруглить, поменять цвет, типографику, и получится уже другой сайт. При этом кнопка везде будет либо прямоугольной, либо квадратной — глобально элемент не поменяется, кнопка и кнопка. Но дизайн будет смотреться по-разному.

Нижнее меню в мобильной версии наших продуктов. Компонент один, но отличается количество пунктов, цвет, иконки. А где-то меню вообще без границы
Нижнее меню в мобильной версии наших продуктов. Компонент один, но отличается количество пунктов, цвет, иконки. А где-то меню вообще без границы
Похожий пример — боковое меню. Принцип один и тот же, так что заново придумывать компонент каждый раз смысла нет. Его можно взять из дизайн-системы, стилизовать и адаптировать под конкретный проект
Похожий пример — боковое меню. Принцип один и тот же, так что заново придумывать компонент каждый раз смысла нет. Его можно взять из дизайн-системы, стилизовать и адаптировать под конкретный проект

Другое дело, если бюджет сильно ограничен, в таком случае компоненты можно даже не менять — собирать из готового. Тогда интерфейс может быть менее индивидуальным, но всё еще удобным и красивым.

Слева без стилизации, полностью из готовых компонентов, а справа — со стилизацией
Слева без стилизации, полностью из готовых компонентов, а справа — со стилизацией

В этом одна из причин, зачем нужна дизайн-система: мы не только экономим время своих дизайнеров и разработчиков. Мы экономим бюджет клиента, если есть такой запрос. И уже в рамках бюджета можем что-то придумать, а можем быстро взять то, что есть.

Вообще, если клиент изначально приходит с задачей сделать продукт за небольшие деньги, бессмысленно рассказывать, как бы мы могли стилизовать то и это.

В целом, можно сказать, что мы делаем доступным для среднего бизнеса все преимущества, которые дает дизайн-система.

Делаем доступным для среднего бизнеса преимущества, которые дает дизайн-система

Раньше они были доступны только крупным компаниям — на создание нужно очень много времени, денег и сильные дизайн-компетенции. Бизнес с небольшим бюджетом не может себе позволить такие затраты. Да, стартовать можно и без дизайн-системы, но когда проект развивается, поддерживать его становится всё сложнее — нужно синхронизировать и стилизовать новые и новые компоненты, которые создаются без общих принципов.

Но самый большой профит наступает, когда у компании не один продукт, а несколько. У наших клиентов обычно 2-3 продукта, а у крупных компаний бывает и в 100 раз больше. Если не продумать и не использовать дизайн-систему в начале пути, в будущем поддержка разных версий будет стоить кратно дороже. Теперь умножаем стоимость поддержки и изменений на количество продуктов — стандартизация может сэкономить сотни миллионов рублей.

А благодаря тому, что мы уже проделали работу по созданию дизайн-системы, наши клиенты могут запускать новые продукты сразу с единой экосистемой.

Может казаться, что мы тут хвастаемся, что изобрели велосипед. Не мы этот подход придумали — мы просто используем лучшие мировые практики. Но вот доступность такого подхода для среднего бизнеса я считаю инновацией, которую мы привнесли.

Дизайн-система значительно снижает количество рутины и высвобождает время и внимание наших дизайнеров для более важных задач. А клиентам помогает сэкономить деньги.

Андрей Наносов
Руководитель дизайн-отдела

Мы занимаемся разработкой кастомных web, mobile и корпоративных IT-продуктов.

Для каждого клиента мы подключаем дизайн-систему, чтобы все его продукты были в одном консистентном стиле. Это ставит нашего клиента в один ряд с Яндекс, Контур, Авито, Сбер с точки зрения дизайна экосистемы продуктов.

Можно написать мне в Телеграм — обсудим вашу задачу и прикинем, чем мы сможем помочь. А если ее можно решить без нового софта, напрямую об этом скажем.

Веду канал Переводчик с айтишного — тут всё, что нужно знать предпринимателям о разработке, ИТ-стратегиях для бизнеса и как сделать классный ИТ-продукт за разумный бюджет.

1919
77
33
33
11
реклама
разместить
40 комментариев

Если вы пользуетесь библиотекой элементов, это не значит, что все проекты будут выглядеть одинаково» — а по моему значит. Что делать если не все элементы учтены в системе? как часто её приходится обновлять?

1

Она кастомизируется под фирменный стиль заказчика и общий, не глядя в код на нейминг токенов вы и не поймёте что это одна дизайн система.

Компоненты добавляем по мере надобности. Сейчас 90% всех сценариев закрыто существующими. Но обновляем их постоянно, т.к. на практике улучшаем их от проекта к проекту.

2

Совсем не значит. Принципы того же материал дизайна используют многие, но по факту одинаковые сайты - только шаблоны. Но вот повторное использование дизайн системы (и кодинга) на чатах - это уже напряжная история.

1

А если баг в одном компоненте, то он будет во всех проектах, где его использовали? А если чинится, то сразу везде?

1

Ну да, тут как с любой библиотекой

2

У вас не публичная система, только для внутреннего пользования?

1

Код компонентов под open source чтобы заказчики могли получать обновления компонентов и дальше после завершения работы с нами. А новые клиенты получают уже существующие компоненты.

2