Минус два миллиона рублей. Именно в такую сумму среднестатистическому проекту может обойтись рассинхронизация команды.
И самое неприятное в таких историях — этих потерь можно было избежать. Деньги сгорают не из-за слабой команды, а из-за рассогласованности сильных специалистов. Аналитик, дизайнер и разработчик могут быть по отдельности правы, но, если у них нет общего каркаса решения, проект начинает расползаться по швам.
Руководитель отдела аналитики ИТ-компании ARTW Игорь Рыбаков рассказывает, почему даже подробное техническое задание не всегда спасает от сюрпризов и как выстроить работу так, чтобы сценарии, интерфейс, приложения и данные не жили отдельными жизнями.
В сложной разработке невозможно заранее описать каждую деталь интерфейса так, чтобы у команды не осталось вопросов. Да и не нужно: если пытаться превратить техническое задание в бесконечную энциклопедию, проект застрянет в документации еще до старта.
Проблема в другом. Часто у команды нет сквозной трассировки между артефактами. Аналитик описывает сценарий и бизнес-правила. Дизайнер видит путь пользователя, состояния экранов и удобство взаимодействия. Разработчик смотрит на данные, программный интерфейс приложения, ошибки и ограничения архитектуры. Каждый взгляд по отдельности может быть правильным, но без общей связки они начинают описывать разные продукты.
За простой кнопкой «Войти» скрывается целая цепочка решений.
Для пользователя это один клик.
Для дизайнера — понятный вход в сценарий авторизации.
Для клиентской части — нормализация телефона, индикатор загрузки, переход к форме пароля и тексты ошибок.
Для серверной части — проверка учетной записи, статуса профиля, пароля и активных сессий.
Для ERD — сущности пользователя, учетных данных, сессии и статусы профиля.
Если эти связи не зафиксированы, команда начинает додумывать поведение на каждом слое. На макете может появиться сообщение, для которого программный интерфейс приложения не возвращает отдельный статус. В сценарии может не быть ветки блокировки, хотя в модели данных такой статус уже есть. Разработчик может обработать ошибку технически корректно, но пользователь увидит тупик. Дизайнер может убрать промежуточное состояние ради чистоты интерфейса, а на приемке окажется, что именно это состояние было важно для бизнеса.
Так возникает иллюзия исчерпывающего технического задания. Документ есть, макет согласован, программный интерфейс приложения описан, ERD нарисована. Но нет единого маршрута проверки: какой шаг пользователя связан с каким экраном, какие данные нужны на этом шаге, какой метод программного интерфейса вызывается, какие ошибки возможны и где они должны быть показаны.
Рабочий выход: не описывать все до последней запятой, а собрать сквозной каркас решения: сценарий использования, пользовательский маршрут, пользовательский интерфейс, программный интерфейс приложения, ERD и критерии готовности. Тогда команда видит не набор отдельных документов, а одну линию: от поведения пользователя до данных и приемки.
Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.
Заполнить заявку
13590 тендеров
проведено за восемь лет работы нашего сайта.
В сложных системах UX — это не только внешний вид экрана. Пользовательский опыт складывается из сценария, данных, проверок, ошибок, переходов и понятных состояний интерфейса. Поэтому вопрос «кто отвечает за UX» слишком узкий. Важнее понять, кто отвечает за связность разных слоев решения.
Бизнес-заказчик и владелец продукта отвечают за цель сценария и допустимые бизнес-результаты: что считается успешным завершением процесса, какие ограничения нельзя нарушать, какие действия пользователя критичны для бизнеса.
Аналитик отвечает за сценарий использования как за хребет сценария. Он фиксирует границы процесса, участников, предусловия, постусловия, основной поток, альтернативы и исключения. Хороший сценарий использования не просто перечисляет шаги, а показывает, кто что делает, какой результат должен получиться и где возможны отклонения.
Дизайнер отвечает за путь пользователя и экранные решения. Но он работает не в пустоте, а на основе понятного сценария: какие состояния должны быть на экране, где возможна загрузка, ошибка, пустой результат, блокировка или переход к следующему шагу. Дизайнер может и должен предлагать улучшения, но каждое такое улучшение нужно проверять на влияние на сценарий, данные и реализацию.
Клиентская часть отвечает за поведение на стороне пользователя: маски, мгновенную обратную связь, отображение состояний, доступность интерфейса, корректную отправку данных и понятные сообщения пользователю.
Серверная часть отвечает за бизнес-инварианты, статусы, переходы, допустимые значения, идемпотентность операций и системные ошибки. Если правило влияет на смысл процесса, безопасность, деньги, юридически значимое действие или целостность данных, его владелец должен быть явно назначен на серверной стороне или в архитектуре.
Так матрица ответственности перестает быть спором о том, кто «владеет UX». Она становится способом удержать общую логику продукта: от бизнес-цели и поведения пользователя до данных, программного интерфейса приложения, интерфейса и приемки.
Частая ошибка — передать дизайнеру набор требований или устное описание задачи и ждать, что он сам восстановит всю системную логику. В простом лендинге это еще может сработать. В CRM, ERP, личном кабинете или B2B-сервисе такой подход почти гарантированно приведет к расхождениям.
Чтобы Figma не стала местом, где команда впервые обнаруживает вопросы к логике, до полноценной отрисовки нужен не бесконечный текстовый документ, а набор связанных артефактов.
Сначала нужен реестр требований: он показывает, откуда взялась логика — интервью, PRD, регламент, встреча с лицом, принимающим решение, существующая система или архитектурное ограничение. У требований должны быть идентификаторы и приоритеты, чтобы потом было понятно, какие сценарии они покрывают.
Затем — сценарий использования, который описывает цель сценария, участников, триггер запуска, предусловия, постусловия, основной поток, альтернативы и исключения. Именно здесь фиксируется поведение пользователя и системы, а не просто набор экранов.
После этого идет пользовательский маршрут. Когда поведение пользователя определено, нужно показать путь по шагам: куда пользователь попадает, что вводит, какое состояние видит, где может ошибиться и куда система ведет его дальше. Важно учитывать не только основной успешный сценарий, но и загрузку, ошибки, пустые состояния, блокировки, не найденные данные и успешное завершение.
Дальше нужна связь сценария использования с программным интерфейсом приложения и ERD. Для каждого шага, где обрабатываются данные, должно быть понятно, с какой сущностью и атрибутом мы работаем, какой метод программного интерфейса вызывается, какие данные уходят в запросе, какие статусы и ошибки возвращаются, как они отображаются в интерфейсе.
И наконец — владельцы правил проверок. Нужно явно определить, где проверяется формат, где бизнес-правило, где статус процесса, где допустимое значение, а где нужна только UX-подсказка. Иначе одни проверки окажутся дублированы, другие потеряются, а третьи будут реализованы не на той стороне системы.
Только после этого дизайнер получает нормальную основу для работы. Он видит не просто, какие экраны нужны, а как экран связан со сценарием, данными, ошибками и бизнес-логикой. Это не ограничивает дизайн, а задает ему надежные границы: где можно улучшать пользовательский опыт, а где нельзя фантазировать без изменения требований, программного интерфейса приложения или модели данных.
Все это не означает, что дизайнер должен просто «раскрашивать» схемы аналитика. Наоборот, хороший дизайнер часто первым замечает, где пользователю будет трудно, где сценарий перегружен, где действие спрятано слишком глубоко, а где экран заставляет человека думать вместо системы.
Но инициатива в сложной разработке должна проходить через общий язык команды. Если дизайнер предлагает добавить новый блок, изменить порядок шагов или упростить экран, это не стоит обсуждать на уровне «нравится» или «не нравится». Лучше сформулировать гипотезу: если мы внесем это изменение, пользователю будет проще выполнить конкретное действие, а бизнес получит такой-то эффект.
После этого аналитик проверяет, не меняется ли сценарий. Разработчик смотрит, есть ли нужные данные и методы программного интерфейса приложения. Владелец продукта решает, берем изменение в текущий объем работ или отправляем в реестр отложенных задач. Так дизайнерская инициатива не превращается в источник хаоса, а становится управляемым способом улучшать продукт.
Метод «Светофора» при приемке макетов
Когда макет готов, его недостаточно оценить по принципу «удобно / неудобно» или «нравится / не нравится». Мы проверяем каждый значимый элемент формы через светофор трассировки: связан ли он со сценарием использования, есть ли для него данные в ERD, предусмотрен ли метод программного интерфейса приложения, понятны ли правила видимости, редактирования, валидации и тексты ошибок.
🟢 Зеленый свет: принимаем в работу
Элемент интерфейса связан со сценарием, данные для него есть в ERD или явно описаны как расчетные или статические, программный интерфейс приложения покрывает нужное действие, а состояние формы понятно пользователю.
🟡 Желтый свет: фиксируем вопрос
В целом логика выглядит верной, но не хватает ясности: неизвестен владелец проверки, не определен формат данных, нет точного текста ошибки, не до конца понятно, где правило должно жить — на клиенте или на сервере.
Действие: не спорим о вкусе, а заводим конкретное уточнение. Нужно дополнить сценарий использования, поправить макет, уточнить программный интерфейс приложения, расширить ERD или принять отдельное бизнес-решение.
🔴 Красный свет: возвращаем на доработку
Элемент противоречит бизнес-логике, не предусмотрен сценарием, требует данных, которых нет в системе, или убирает обязательный шаг: согласие, проверку, уведомление, подтверждение, обработку ошибки.
Действие: не маскируем проблему красивым интерфейсом. Возвращаем макет на доработку или пересобираем связанный сценарий вместе с программным интерфейсом приложения и моделью данных.
Проектирование корпоративных ИТ-систем требует не большего количества документов ради самих документов, а большей связности между ними. Когда сценарий использования, пользовательский маршрут, пользовательский интерфейс, программный интерфейс приложения и ERD связаны между собой, команда перестает угадывать чужую логику. Изменение в макете сразу показывает влияние на данные и контракты, ошибки становятся видимыми до разработки, а приемка перестает быть спором о том, «кто как понял».
В этом и есть взрослая дисциплина заказной разработки: не заставить всех говорить на одном профессиональном языке, а построить мосты между языками аналитика, дизайнера, разработчика и бизнеса.