2. Заказ оказался сложнее (появились подводные камни)
Вот на этом этапе нужно остановиться, выдохнуть, и начать разговаривать с заказчиком. Он ведь живой человек. Такая ситуация может возникнуть в основном по 2м причинам:
1. Исполнитель недооценил свои силы и сделал некорректную оценку времени/стоимости. ИМХО, его проблема. С опытом проходит, но риски есть всегда. От них перестраховываются накидыванием запаса к изначальной оценке.
2. Заказчик изменил требования. Это называется scope change и автоматически должно вести за собой переоценку сроков и стоимости (если не работаете по Agile и на почасовке).
Грубо, логика такая:
- максимально уточняем детали задачи, чтобы сделать оценку
- формируем и выставляем оценку
конкретной задачи с конкретными деталями
- если ошиблись в оценке - сами виноваты
- если детали задачи меняются (клиент вносит изменения) - значит старая оценка автоматически становится устаревшей и нерелеватной. Корректируются требования - корректируется оценка (сроки и стоимость). Это одно целое.
Если же подводные камни появились из-за ошибки в оценке сложности проекта самим разработчиком, то клиент не должен платить за это. Но если эти подводные камни добавляют работы и могут сдвинуть сроки, я считаю крайне необходимым сообщить об этом клиенту, как только вам об этом стало известно. Так и говорите - всплыли некоторые подводные камни, предусмотреть не могли. Моя вина, на стоимость работ не повлияет. На может повлиять на сроки - на столько и на столько.