Мне довелось побыть с обеих сторон баррикад — как со стороны менеджера, так и со стороны программиста. Отличаются они той фразой, которую чаще всего говорят заказчику.
Программист чаще говорит «нет»:
— Это не нужно.
— Это не получится сделать быстро.
— Все от этого давно отказались.
— Сервер это не потянет, придётся заказывать дорогой хостинг.
— Это невозможно в текущих рамках проекта.
Менеджер чаще говорит «да»:
— Да, наши программисты это вставят.
— Конечно, я добавлю это в ТЗ.
— Какая хорошая идея!
— Да, эти стопицот только что выдуманных вами свистелок можно включить в ту же стоимость.
— С этим программисты быстро управятся.
Причина — в соотношении зарплаты и трудоёмкости. Трудоёмкость для менеджера не меняется: он должен передавать программистам пожелания и следить за их выполнением. Для программиста трудоёмкость увеличивается при добавлении каждой новой фичи.
Есть проект. Есть количество работы. Есть сроки. Есть стоимость. Каждая новая фича увеличивает количество работы. В случае адекватности менеджера вместе с увеличением трудоёмкости будет отодвигаться срок сдачи и расти стоимость проекта. Но почти всегда менеджеры совершенно не имеют представления о трудоёмкости процессов, поэтому количество работы растёт быстрей, чем стоимость проекта и время на работу.
Особо неадекватные менеджеры могут предлагать заказчику свои идеи свистелок-перделок, обещая включить их в проект «бесплатно», в качестве бонуса.
Но первое, что я встретил в среде менеджеров — это святую уверенность в том, что именно они тянут на себе весь продукт, а кодеры мало того, что ничего не хотят делать, так и не успевают постоянно.