Правда или миф: почему в разработке не все так быстро, как кажется
Клиент заказал разработку сайта.
Ожидание: все готово еще вчера.
Реальность: составление ТЗ, прототипирование, доработки, конфликты, снова доработки, и только потом результат.
Когда клиент заказывает разработку сайта, часто кажется, что всё должно быть просто и быстро: есть идея и иногда техническое задание. Осталось найти команду профессионалов и все ‒ дело в шляпе!
Но реальность разработки сложнее, чем кажется на первый взгляд. О том, что задерживает проект и как мы минимизируем риски, расскажет Арина Новикова, руководитель отдела разработки, и Дмитрий Шестаков, основатель маркетингового агентства Сайткрафт.
Ситуация №1: «Хороший специалист сделает всё быстро»
У клиента складывается представление: вся команда состоит из опытных специалистов, которые все делают быстро.
Такое мнение может возникнуть, если:
- был успешный опыт сотрудничества;
- специалисты шли навстречу и выполняли задачи сверхурочно.
Тогда клиент начинает думать, что подобная скорость и гибкость ‒ это стандарт, и рассчитывает, что так будет всегда, вне зависимости от сложности или объема новых задач.
Кем на самом деле является «хороший» специалист? Это человек, который обладает:
1. Хард-скилами (техническими навыками), то есть:
- владеет языками программирования, фреймворками или инструментами (например, PHP, JavaScript, Figma) на высоком уровне;
- понимает принципы UX/UI (для дизайнеров) или чистого и поддерживаемого кода (для разработчиков);
- умеет работать с базами данных, API или интеграциями сложных систем.
2. Софт-скилами (гибкими навыками):
- умеет объяснять сложные технические вещи простыми словами;
- владеет тайм-менеджментом;
- замечает даже мелкие недочеты, которые могут стать критичными на проекте;
- адаптируется к изменениям или новым задачам.
Дополнительно упомянем об опыте работы. Обычно «хороший» специалист – это человек с 3-5+ годами опыта в своей области. Этот опыт помогает быстрее ориентироваться в проблемах, выбирать оптимальные решения и избегать типичных ошибок.
Почему опыт и навыки не гарантируют быстроты?
Хороший специалист ≠ сверхчеловек. Даже с идеальным набором навыков и многолетним опытом, скорость работы ограничивается следующими факторами:
- Уровень сложности задачи.
Сложность зависит от функционала сайта. Например, интеграция с системой оплаты требует внимания к деталям и согласования с требованиями безопасности. На скрине ниже можно увидеть количество интеграций с внешними сервисами, которое мы произвели.
- Тесты и доработки.
Даже идеальный код или макет требует проверки. Иногда доработки занимают столько же времени, сколько и создание.
Например, бывают ситуации, когда клиент на этапе дизайна понимает, что того функционала, который он изначально требовал от команды, ‒ недостаточно. Тогда появляется необходимость в доработке. Это значит, что и другие сроки будут сдвинуты.
На скрине ниже отображены комментарии, в т. ч. те, что повлекут за собой изменения в дизайне.
- Командная работа.
Успех на проекте зависит от командной работы, а не от отдельного спеца:: программисты ждут дизайнеров, тестировщики – программистов и т. д.
Выход из ситуации: перед запуском мы внутри команды, а затем с клиентом обсуждаем сроки. При этом мы обговариваем моменты, при которых период выполняемых работ может быть увеличен. Также мы дополнительно закладываем время на непредвиденные ситуации.
Если сделаем быстрее ‒ будет хорошо. Если сделаем в оговоренный срок, при этом предусмотрев все ЧС, ‒ тоже будет хорошо.
Ситуация № 2: «Уже есть готовые решения»
Некоторые клиенты считают, что разработка = конструктор, из которого собирают сайт. Отчасти это так: в интернете много шаблонов (от Bitrix или Wordpress) , библиотек кода, плагинов, инструментов и т. д.
Поэтому создается впечатление, что вместо долгих этапов проектирования и программирования достаточно просто «вставить готовый модуль» ‒ и работа выполнена.
Но шаблон ≠ панацея, поскольку любой сайт ‒ индивидуальный заказ с разными целями. Кто-то хочет интернет-магазин, кто-то корпоративный сайт, кто-то хочет добавить / убрать / переместить и т. д. Шаблоны в данном случае «связывают» руки специалистам.
Например, клиент говорит: «возьмите шаблон (скрин ниже) и уберите / перенесите блок с преимуществами».
Мы этого сделать не можем, поскольку шаблон не подразумевает «смещения» блока, он един.
Это касается не только дизайна, но и функционала. Например, могут возникнуть трудности в реализации умного поиска, потому что в шаблоне его может не быть или он слишком простой: умнее его просто не сделать.
Также шаблоны нередко содержат обширный код, который сложно адаптировать. Внесение изменений может вызвать конфликты, например:
- некорректное отображение смежных элементов;.
- поломка адаптивного дизайна;
- снижение производительности сайта и т. д.
Иногда изменения вносятся на уровне кода, который в будущем может быть перезаписан обновлением шаблона. Это требует создания «обходных путей» или отдельной системы контроля версии, что увеличивает время работы.
Каждое изменение в шаблоне может повлиять на весь сайт. Даже небольшая корректировка требует тестирования, чтобы убедиться: остальные части сайта работают корректно. Это особенно актуально для сложных шаблонов с большим количеством стилей и скриптов.
Вот и получается, что клиент хочет изменить несколько деталей в шаблоне, а это занимает еще больше времени, чем создание сайта с нуля.
Выход: чтобы эффективно решить эту ситуацию, нужно донести клиенту важность индивидуальной разработки. Для этого можно предложить следующие подходы:
- Продемонстрировать ограничения на примерах (визуальные решения, функциональные решения).
- Рассказать о дополнительных рисках шаблонного подхода.
Например, касательно безопасности: шаблоны часто содержат уязвимости, т.к. их код публичен и известен злоумышленникам. Или касательно бренда: шаблонный сайт может выглядеть менее профессионально, поскольку похожие решения могут использовать конкуренты.
- Если клиент говорит о бюджете, объяснить, что долгосрочная экономия важнее краткосрочной. Если говорит о сроках, рассказать, как индивидуальное решение предотвращает будущие задержки, связанные с адаптацией шаблона.
Выходом является грамотная коммуникация, разъяснение плюсов и минусов каждого подхода и демонстрация, что индивидуальная разработка не только решает текущие задачи, но и закладывает основу для успешного развития проекта в будущем.
Ситуация № 3: «Проблемы решаются сами собой»
Мнение: команда со стороны подрядчика, которая работает над проектом, устраняет любые сложности «по умолчанию», без участия заказчика.
Реальность: отсутствие вовлеченности со стороны заказчика может привести к накоплению проблем, которые замедлят выполнение проекта.
Что означает выражение «без вовлеченности»?
1. Нет ответственного за контроль процессов. Проектный менеджер отсутствует или его роль формальна. Это приводит к хаотичному выполнению задач.
Например, кто-то со стороны клиента резко понял, что надо делать не эту задачу, а другую, и еще цвет поменять и кнопку переместить. Тогда команда хватается за все и сразу, в итоге никто ничего не успевает.
2. Отсутствуют договоренности и детальное описание в договоре.
Если в проекте не прописаны этапы, дедлайны, точки согласования и ответственные лица, то возникает «эффект снежного кома», когда одна нерешенная проблема тянет за собой другую.
3. Коммуникация организована некорректно.
Нет системы для взаимодействия между командой исполнителя и заказчиком. Например, переписка ведется в разных мессенджерах, задачи ставятся устно или через неформальные каналы, информация теряется.
Чтобы структурировать коммуникацию, мы используем Bitrix:
4. Несколько ЛПР со стороны заказчика.
Например, заказчик прописал, что коммуникацию будет вести маркетолог компании. Маркетолог не всегда является ЛПР, и часто ему нужно согласовать действия с вышестоящим лицом. Так, процесс согласования увеличивает сроки.
Поэтому проектный менеджер со стороны Исполнителя и ЛПР со стороны Заказчика важен. Тогда подрядчик играет не в одни ворота, а в полноценный равный «футбол».
Советы по выстраиванию коммуникации между проектным менеджером и ЛПР заказчика
1. Установите четкие роли и распределите зону ответственности
- Проектный менеджер (ПМ):
- Контролирует сроки и выполнение задач.Ведет документацию и согласует требования.Информирует о текущем статусе проекта.Прогнозирует возможные риски.
- ЛПР заказчика:
- Принимает ключевые решения.Утверждает этапы работ.Предоставляет обратную связь.
2. Выберите удобные каналы связи
Продуктивная коммуникация требует структуры:
- Основной инструмент для задач: обычно это Trello, Jira, в нашем случае Bitrix24 (фиксируются задачи, сроки, статусы).
- Для общения: мессенджер.
- Для встреч: Zoom, Google Meet.
- Документы: Google Doc.
3. Регламентируйте коммуникацию
Создайте понятные правила:
- Регулярные встречи: еженедельные отчеты о проделанной работе за неделю и планы на следующую неделю. Дополнительные встречи при необходимости.
- Оперативная связь: ПМ может задавать вопросы через мессенджер или почту в течение рабочего дня. ЛПР отвечает в оговоренные сроки (например, в течение 24 часов).
4. Фиксируйте договоренности
После каждой встречи или обсуждения фиксируйте итоги:
- Протокол встречи: что обсудили, что решили, кто за что отвечает, сроки.
- Письменное подтверждение: отправляйте краткое резюме в мессенджере или письмом, чтобы исключить недоразумения.
Дополнительные факторы, которые могут задерживать проект
1. Размытое техническое задание (ТЗ)
То есть в документе отсутствуют важные детали или указания по проекту. Из-за этого команда исполнителя может интерпретировать задачи по-своему. Это приводит к несоответствию ожиданий заказчика и конечного результата.
Пример из практики:
- Формулировка от заказчика: «Создать современный сайт с удобной навигацией».
- Вопросы исполнителя: Что подразумевается под «современным»? Какие элементы навигации необходимы? Есть ли примеры сайтов, которые нравятся?
Как нужно: «Создать сайт в минималистичном стиле с меню в шапке и всплываю
2. Изменения в ходе работы
Иногда клиент хочет изменить концепцию или добавить новые задачи. Это требует пересмотра сроков.
Чтобы избежать путаницы, задержек и конфликтов, важно иметь четкие регламенты, которые помогут эффективно управлять изменениями, например:
- Заранее оговаривать условия, при которых команда берется за срочные или новые задачи.
- Прописывать условия в договоре.
- Приоритизировать задачи.
- Формировать дополнительное соглашение, в котором описана задача, сроки и бюджеты на задачу.
3. Технические сложности
Интеграция с внешними сервисами или создание сложной функциональности может занять больше времени, чем планировалось.
- Сложности с документацией: Не всегда документы внешнего сервиса актуальны. Это может привести к трудности в интеграции, т.к. необходимо разбираться в новых функциях или ограничениях.
- Сбои в работе сервисов: Внешние сервисы могут быть временно недоступны или работать нестабильно.
- Процесс тестирования: Каждую интеграцию нужно тщательно тестировать, чтобы убедиться, что все работает правильно.
Как мы предотвращаем задержки
1. Тщательное планирование
Каждый проект начинается с детального анализа и составления плана. Мы разбиваем задачи на этапы и устанавливаем реальные сроки.
2. Прозрачная коммуникация
Регулярные встречи с клиентом позволяют нам обсуждать прогресс, согласовывать изменения и вовремя решать проблемы. Например, при завершении этапа дизайна мы организуем встречу с презентацией для клиента.
Также регулярные отчеты о проделанной работе помогают держать руку на пульсе, и не теряться во времени.
3. Гибкость в работе
Мы учитываем, что изменения неизбежны, и стараемся внедрять их без ущерба для сроков. Предотвратить задержку помогает закладывание дополнительного времени на проекте.
4. Тестирование на каждом этапе
Это помогает выявить ошибки на ранних стадиях и избежать доработок в последний момент.
5. Оптимизация процессов
Мы используем современные инструменты и практики, например:
- Bitrix24. Он является и трекером задач, и канбан-доской, а также позволяет визуализировать рабочие процессы и управлять приоритетами.
- Scrum. Эта методология управления проектами активно используются нами для гибкой разработки. Scrum помогает команде быстро реагировать на изменения, улучшать коммуникацию и поставлять результат на каждом спринте. Scrum предполагает использование коротких итераций (спринтов), а также ежедневных встреч для синхронизации действий команды.
- Waterfall (Каскадная модель) предполагает выполнение работы поэтапно, где каждый этап зависит от завершения предыдущего. Хотя этот подход не такой гибкий, он полезен в проектах с четкими требованиями и сроками.
- Телеграм-чаты, Zoom / Google Meet и др.
Иными словами, чтобы минимизировать срыв сроков, нужно:
- сформировать план работ, включая время на непредвиденные доработки;
- выстроить грамотную коммуникацию с указанием зон ответственности с каждой стороны;
- внедрить этапы тестирования;
- научиться оптимизировать процессы.
Ну, а если вам нужно, например, ускорить процесс, разработать сайт, найти команду профессионалов, то приходите к нам на консультацию ‒ все расскажем и поможем.