У людей, которые не сталкиваются с программированием (веб-разработкой в частности), часто искажено понимание стоимости выполнения доработок по проекту. Казалось бы, что стоит поменять цвет кнопки на сайте — 1 минута работы. Поэтому время не оптимизируется и количество таких мелких заданий возрастает лавинообразно.
Чтобы было понятно, чем опасен такой подход, попробуем разобрать следующую гипотетическую ситуацию: предположим, что у вас компания по установке окон и объект с сотней окон на сопровождении. Вам звонит Заказчик и говорит, что необходимо отрегулировать окно. Вы отправляете мастера — сама регулировка занимает 2 минуты, но на дорогу туда-обратно уходит час. На следующий день вам снова звонит Заказчик, чтобы отрегулировать другое окно, и вы опять направляете мастера. Если так делать ежедневно на протяжении месяца, то количество затраченного времени составит 20 часов, а полезной работы — 40 минут.
В программировании все происходит примерно так же. По разным оценкам, у разработчика уходит от 15 до 30 минут на переключение между разными задачами. Внутри одного проекта это занимает немного меньше времени, при переключении между разными проектами (особенно, технически насыщенными) время критически возрастает. Сюда включается не только открытие IDE и подключение к серверу, но и анализ кода, поиск нужного места для внесения изменений (на незнакомом разработчику проекте), тестирование, утверждение, внедрение на рабочем сервере (на сложных проектах).
В итоге у самостоятельных разработчиков, или начинающих студий, получается так:
- надо поменять цвет кнопочки, это займет всего минуту;
- вот, поменяли (потрачено 15 минут);
- нам не нравится этот цвет, поставьте вот этот;
- поставили (еще 15 минут);
- сейчас утвердим… нет, надо еще иконку добавить;
- вот, подобрали иконки, выберите нужную (еще час);
- выбрали вот эту;
- поставили (еще 15 минут);
- все хорошо, спасибо;
- пожалуйста (затрачено 2 часа на работу, которая в представлении Заказчика занимает 1 минуту);
- давайте поменяем еще размер заголовка — это же всего минута…
При этом если постоянно брать такие доработки, то на «бесплатные» работы может уходить до половины времени сопровождения проекта. А если начинаешь объяснять, почему такие работы стоят денег, у Заказчика часто складывается мнение, что его «разводят» на деньги — работы на 1 минуту, а счет на 1,5 часа.
Чтобы избежать подобных ситуаций, мы выработали следующий метод:
- доработки собираются в «пакеты» (чтобы минимизировать время переключения между задачами);
- бесплатно выполняется только первый пакет доработок (шлифовка проекта перед запуском);
- последующие доработки выполняются платно по выбранному тарифу техподдержки.
Как итог, заказчик получает нужное количество доработок, за минимальные деньги, а мы не работаем себе в убыток. И, опять же, на каждом этапе настаиваем на формировании «пакетов» доработок, чтобы минимизировать накладные расходы.