Палим тему: каверзная задача с собеседования для руководителей проектов
Negligence-провокация
Палим тему: каверзная задача с собеседования для руководителей проектов
Фото с сайта: www.illjuzija.ru

За два месяца с начала года я провел много часов, собеседуя людей. И пытая их самыми разными вопросами. Вот одну каверзную задачу хочу подбросить вам «на подумать». Вы — в роли руководителя проектов. Итак...

Negligence (с англ.) — небрежность, нерадивость, невнимание, неряшливость, халатность.

К вам обращается клиент с собственным сайтом (делали не вы). Просит сделать небольшую доработку. Ваш разработчик оценивает эту доработку в 4 часа (часы — для примера, это могут бы и дни).

ВОПРОС № 1: На сколько часов вы будете выставлять счет клиенту?

  1. 4 часа
  2. 8 часов
  3. 12,56 часа

Запишите ответ, он нам еще понадобится. Будет весело, обещаю.

Итак, вы договорились с клиентом, выставили ему счет, допустим, на 8 часов. Ваш разработчик начал делать задачу. И таки сделал ее! Тестирование показало, что все ОК. Суммарно затраченное время по факту — 6 часов.

ВОПРОС № 2: Стоит ли договориться с клиентом на почасовую ставку, и пересчитать цену (выставить счет на 6 часов вместо предварительных 8)?

  1. Да, почасовая ставка и оплата по факту — это честно. Выставляем счет на 6 часов.
  2. Счет останется на 8 часов — мы будем использовать почасовую ставку только в том случае, если задача займет более 8 часов.
  3. Никакой почасовой оплаты — счет будет на 8 часов при любом раскладе.

Мне по сути сейчас не очень важно, отдадите ли вы деньги за два оставшихся часа обратно, или заберете их себе. Допустим, вернули (это же честно, зачем клиенту платить за лишнее время :-) ?!).

Дальше история развивается так: через две недели клиент звонит и в гневе говорит, что из-за вашей доработки возникла проблема, в связи с чем он потерял данные, которые затем пришлось вносить по новой. Это стоило ему 16 часов работы собственных специалистов (на выходных!).

Ваш программист проанализировал проблему, и пришел к выводу, что при программировании и начальной оценке он действительно не учел один специфический случай, которой возникал из-за взаимодействия его кода и кода старой системы. Случай — ну очень специфический (фазы луны, все дела...). На устранение проблемы уйдет около 20 часов, возможно — больше, поскольку код системы — говно. И вообще лучше все с нуля переписать. Но на момент оценки он этого не понял.

ВОПРОС № 3: За чей счёт работаем 20 часов?

  1. Клиента. Объясняем ситуацию, что договаривались на почасовую оплату, и что проблема была не очевидной. Извиняемся за потерю данных. Выставляем счет на 20 часов. Устраняем проблему.
  2. Извиняемся перед клиентом. Устраняем проблему за свой счёт.
  3. Извиняемся перед клиентом за халатность. Устраняем проблему за счёт нерабочего времени вашего программиста.
  4. Извиняемся перед клиентом за халатность. Устраняем проблему за свой счёт или в рабочее время вашего программиста. Оплачиваем неустойку за потраченное специалистами заказчика время на восстановление данных.
  5. Прячемся, теряемся, не отвечаем на телефон, эскалируем проблему на директора.

Дальнейшие вопросы оставлю просто открытыми:

  • Если вы договорились на почасовую оплату с клиентом — значит вам выгодно делать ошибки. Какого фига клиент должен платить за ваши ошибки?
  • Если программист устраняет проблему за счет своего личного времени — где гарантия, что он не будет усталым и снова не создаст проблем?
  • Как быть уверенным, что 20 часов через 2 недели не превратятся в 40, 80, 400?
  • Является ли ошибка в оценке программиста халатностью? Можно ли за нее наказывать?

Пишите ваши ответы здесь, в комментариях. Нашу версию непременно опубликуем через несколько дней :).