Декабрь, 2016
#Тезисы

С проектом все в порядке, проблема с оценкой

Почему проект всегда оказывается дороже и идет дольше, чем изначально планировалось? Неожиданно происходит что-то непредвиденное и все идет не по плану. Я считаю, что дело в первоначальных оценках, они изначально неверны.
Почему ни одна версия Windows никогда не выходила в срок? Почему строительство филармонии в Гамбурге растянулось на много лет и бюджет увеличился в 10 раз? Почему стадион Зенит-Арена в Питере стоит около 50 млрд. рублей против 7 первоначальных?

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

Например, по ходу проекта:
при тестировании выяснилось, что клиент в требованиях предложил для регистрации в приложении использовать мобильный номер телефона, но среди пользователей есть иностранцы, у которых в России телефон может быть отключен
• после запуска выяснилось, что выбранная архитектура не позволяет быстро интегрировать новый платежный провайдер
• во время разработки выяснилось, что API на стороне поставщика не поддерживает выбранный пользовательский сценарий, хотя в документации — поддерживает
• когда дали рекламу и сервис переключили на реальных пользователей, стало ясно, что сервера не тянут нагрузку
• дизайнер подготовил и передал все дизайн-макеты экранов приложения, но разработчики сказали, что придуманные им поля ввода так реализовать нельзя
• в команде не нашлось разработчика, который бы знал язык программирования, на котором пишутся скрипты для интеграции системы почтовой рассылки
Некоторые пункты кажутся очевидными, но большинство из них нельзя было учесть в самом начале проекта. Если работа над проектом начинается без проектирования, то устройство системы складывается хаотично по воле отдельных специалистов, видящих только свои локальные задачи.

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