Разработка
Это не разработчики тормозят, это процесс так устроен
Менеджерам очень просто обвинять в срыве сроков разработчиков. Но реально ли медленные программисты являются причиной того, что продукт не выходит вовремя?
[pullquote align=right]
Джасти Джексон – менеджер по продукту в Sprintly
[/pullquote]»Почему мы не запустились на прошлой неделе?»
Менеджерам очень просто обвинять в срыве сроков разработчиков. Но реально ли медленные программисты являются причиной того, что продукт не выходит вовремя?
У нас в Sprintly много данных о циклах разработки. Мы отслеживаем, как много времени занимают разные типы заданий (сюжеты, тесты, баги) и разные объемы (S, M, L, XL).
Какие закономерности мы обнаружили?
Первое: разработчики всегда работают примерно одно и то же время. Наши данные показывают, что продолжительность цикла почти всегда одинакова: 75% всех наших тикетов в системе делаются за порядка 175 часов.
Второе: вариативность во времени возникает до того, как тикет был начат (на схеме: Someday to Backlog).Это тот уровень, когда управляющие начинают определять задания и расставлять приоритеты. В мире Kanban это обычно называется время реакции (время между созданием тикета и определением его приоритета). Куча времени теряется на этот этапе.
![]()
Третье: оказывается, что команда теряет много времени на переход от «сделано» до «прошло тесты и готово к использованию» (на схеме: Completed to Accepted).
Вам кажется, что команда работает недостаточно быстро? Возможно, разработчики не виноваты.
Что на самом деле замедляет разработку?
Если это не разработчики, то что замедляет процесс? Подсказка: это ваш процесс.
Неясные требования
Написание хорошего технического задания очень важно. Как может разработчик написать функцию, если он не понимает, что эта функция выполняет?
В большинстве случаев оказывается, что авторы технического задания не продумали все до мелочей, причем это обнаруживается только после начала разработки дизайна и программирования, — говорит Мус на Stack Exchange.
Очень часто те, кто дают задания, не продумывают функции самостоятельно. Разработчику нужно понять, зачем это нужно пользователю, что делает эта функция и как ее будут использовать.
Мы сделали форму в стиле Mad Libs для создания пользовательских историй.
![]()
Когда вы делаете что-то в Sprintly, вам нужно ввести это в таком виде: «Поскольку ___, я хочу ___, поэтому ___». Вы не можете добавить функцию без заполнения этой формы, и это заставляет вас делать это как следует, — Даррен Роган в подкасте Hack and Heckle.
Использование этой формы помогает задать конкретное направления для каждой функции. Форма также помогает ограничить масштаб задания.
Изменение требований
Второе, на что всегда жалуются разработчики, — это изменение требований после начала работы.
Вот эта история с Hacker News приводит хорошую метафору для описания ситуации:
Мы: «Итак, мы только что положили крышу и оштукатурили стены!»
Они: «Отлично, мы хотим, чтобы стен не было».
Это симптом непродуманности функций перед помещением их в очередь на выполнение.
Первый способ избежать изменения требований в середине процесса — создавать интерактивные макеты перед началом реальной разработки:
Мы могли быть быстрее, если бы все было тщательно смоделировано. Иногда мы недостаточно хорошо изучаем процесс пользовательского взаимодействия, поэтому нам приходится переделывать его уже после реализации,» — Тобин Харрис, директор Pocketworks.
Гибкость рабочего процесса еще не означает, что на любом этапе можно изменить что угодно. В идеале все, что обнаруживается в середине разработки, должно быть зафиксировано и учтено в следующей итерации.
Другой путь избежать изменения требований — предсказывать прогресс. В Sprintly у нас есть визуализация того, как много дней еще осталось до конца разработки.
При добавлении новых задач сразу видно, насколько отдаляется срок выхода.
Переключение контекста
Последняя загвоздка — переключение контекста. Это может принимать разные формы:
- Разработчик сделал задание A на 50%, а вы подходите к нему и просите переключиться на задание Б.
- Разработчик наполовину завершил задание А, а вы подходите к нему и просите сделать также задание Б.
Отличный пример — наш ведущий разработчик, который делает много отчетов, планирует разработку, ходит на встречи и решает неотложные проблемы.
Вот график, который показывает продолжительность циклов для разработчиков нашей команды.
![]()
Очевидно, именно природа должности ведущего разработчика влияет на время выполнения заданий.
При возникновении проблемы вы, как менеджер, заставляете своих разработчиков взять новое задание в середине выполнения другого задания. Если ваши приоритеты все время скачут, это может повлечь огромные потери для команды.
Джоель Сполски пишет именно об этом в своей посте про переключение контекста:
Штука в том, что нельзя позволять людям работать более, чем над одной задачей одновременно. Убедитесь, что они об этом знают. Хороший менеджер берет на себя ответственность за удаление препятствий к тому, чтобы люди могли сконцентрироваться на одной задаче и завершить ее. Когда возникает что-то срочное, подумайте: может быть вы сможете решить проблему самостоятельно, не отвлекая программиста, погруженного с головой в проект.
Будьте ответственны
Задача менеджера — создать среду, в которой программист сможет успешно работать. До того, как скинуть вину на разработчика, посмотрите на себя.
Вот вещи, которые помогут вам понять, не вы ли тормозите команду:
- Помогите команде понять суть — поработайте над тем, чтобы команда сформировала понимание того, как сделать жизнь пользователей лучше. Определите четко то, в чем нуждаются пользователи. Важна вовлеченность разработчиков. Их заинтересованность может значительно повысить скорость.
- Формулируйте пользовательские запросы верно — используйте mad-lib или шаблон для каждого задания. Разработчики должны иметь право отказаться от выполнения плохо описанного задания.
- Снизьте издержки на смену контекстов — не беспокойте разработчиков! Перед тем, как прислать им емэйл или сделать запрос, оцените, как это скажется на их продуктивности.
Больше всего опасайтесь обвинять своих разработчиков в медлительности. Более всего вероятно, что это организация процесса замедляет их.
-
Разработка3 недели назадДаем ИИ видеть SwiftUI: Xcode Preview MCP на практике — проблемы и надежды
-
Новости4 недели назадВидео и подкасты о мобильной разработке 2026.39
-
Новости3 недели назадВидео и подкасты о мобильной разработке 2026.40
-
Новости2 недели назадВидео и подкасты о мобильной разработке 2026.41
