Умей говорить «нет»
Старший разработчик Валера работает в роли тимлида на большом и важном проекте для большого и важного заказчика. За окном шумит жаркое лето, по пыльным улицам бегут по своим делам прохожие, голуби крутят пируэты в необъятном казахстанском небе. Жизнь прекрасна – пилотный запуск намечен на конец ноября, команда набрала хороший темп и идет по графику. И тут Валера боковым зрением замечает, как на иконке Скайпа появилась желтая точка – кто-то о нем вспомнил и написал сообщение. Это руководитель проекта: «Зайди ко мне…»
Менеджера зовут Ербол и у него для Валеры имеется пренеприятнейшее известие. В компании заказчика сменился исполнительный директор. Он посмотрел на разрабатываемую систему и решил, что она недостаточно безопасна. И теперь он требует использования ЭЦП абсолютно во всех бизнес-процессах с добавлением QR-кодов во все генерируемые документы. И при этом он поставил условие сделать это, не меняя сроков сдачи системы. «Валера, нужно решить проблему и включить дополнительный функционал в поставку. Я уверен, что вы сможете. Вы же профессионалы!» – Ербол озвучил свою позицию.
«Опачки!» – пронеслось в голове у Валеры. Он тут же навскидку прикинул, что новые фичи потребуют примерно три недели работы всей команды. Ведь придется частично переписать движок бизнес-процессов, плюс прикрутить ЭЦП и QR-коды по всей системе. Валера начал судорожно думать, что же ответить своему руководителю.
Наш герой на минуту отвернулся, подумал, потом вернулся в исходную позицию, улыбнулся и сказал: «Да не вопрос, Ербол! Мы успеем. Мы же профессионалы!» Ербол с облегчением вздохнул и еще раз отметил про себя, с какими классными людьми он работает. Валера тоже был рад: он избежал конфликта с руководством и сгладил сложную ситуацию. Тем более мы должны соглашаться с тем, что говорят руководители, ведь так? Они умнее, да и опыта у них больше.
Валера сказал «да» и тем самым взял на себя обязательство. На следующий день Ербол на совещании у заказчика гордо заявил, что они идут навстречу и реализуют новые функции, причем не в ущерб срокам. Исполнительный директор, в свою очередь, написал отчет своему руководству, в котором также заверил всех, что в декабре все смогут начать пользоваться новой и очень безопасной системой. То есть, основываясь на словах Валеры, многие люди начали выстраивать свои планы и обещать что-то другим людям.
И тут начинается самое интересное. Хотя Валера и сказал «Мы же профессионалы!», на самом деле, он повел себя непрофессионально. Дело в том, что профессионал берет на себя обязательства только тогда, когда полностью уверен, что сможет их выполнить. Навряд ли за ту минуту, что он обдумывал решение в кабинете у Ербола, у него в голове родился новый план, где он в деталях понимал, как теперь необходимо построить работу, чтобы реализовать больше функций за то же самое время. Он просто хотел показаться хорошим и не ссориться со своим руководителем.
Если очень сильно повезет, Валера с командой смогут уложиться в срок. А если повезет еще больше, то даже без сильных переработок. Но, на самом деле, более вероятны другие варианты. Очень большой шанс, что сроки будут сорваны и это повлечет за собой нарушение всех договоренностей и массу неприятных разговоров между заинтересованными людьми (а может быть даже штрафные санкции, не приведи господь). Либо команда все же успеет, но с большими издержками в виде деморализованных сотрудников и кучи костылей и плохого кода в системе. А это потом аукнется в процессе поддержки и развития.
Еще раз хочу подчеркнуть, что принятое Валерой решение было непрофессиональным. Но, к счастью, формат рассказа позволяет вернуться в прошлое и изменить что-то, о чем мы потом сожалеем. Итак, мы опять в кабинете у Ербола.
Валера на минуту отвернулся, подумал, потом вернулся в исходную позицию, улыбнулся и сказал: «Нет». Валера ожидал, что после этих слов в глазах Ербола вспыхнет огонь негодования, но Ербол оставался спокоен. На самом деле, он был умным человеком и понимал, что его подчиненные должны говорить ему «нет» в определенных ситуациях. Ведь их поэтому и взяли на работу, что они разбираются в чем-то лучше, чем их начальник.
«Я сразу скажу, что в те же самые сроки мы не сможем реализовать дополнительный функционал. Дай мне один день, и я представлю тебе варианты решения проблемы» – продолжал Валера. Ербол дал добро и Валерий ушел совещаться с командой.
На следующее утро Валера назначил митинг и в положенное время пришел к Ерболу. Вот что он сказал: «Вчера мы сели с командой и оценили новый функционал в 3 недели работы всей команды. Плюс неделя на риски – итого четыре недели. Рисков закладываем не так много, потому что задача известная и мы знаем, как ее делать. Там просто большой объем доработок. Если бы нам пришлось еще изучать технологию, то время на риски увеличилось бы значительно. Таким образом, первый вариант решения проблемы – сдвинуть сроки на четыре недели. Либо возможен другой путь. У нас в плане такой же объем времени заложен на функционал сканирования документов через поточный сканер. Но заказчик говорит, что сами устройства появятся у них только весной. То есть, мы можем исключить поточное сканирование из беклога, а вместо него реализовать новые механизмы безопасности. А сканирование реализовать либо во время поддержки, либо через допсоглашение – это уже как ты договоришься. И тогда мы укладываемся в прежний срок.»
Они посовещались еще полчаса, обговаривая детали, после чего Ербол поехал к заказчику. Там разговор прошел на удивление легко и был согласован вариант с исключением из графика функции поточного сканирования и переносом ее реализации на зиму.
Счастливый Ербол ехал на такси в офис и думал о том, как хорошо, что в их компании работают такие профессионалы.
Умей говорить «да»
Конец предыдущей истории может показаться хеппи-эндом. Валера сказал «нет» и совместно с Ерболом смог ликвидировать угрозу, надвигавшуюся на компанию. Но ведь проект еще не окончен и до его окончания нужно реализовать еще много функционала, все проверить и запустить на боевых серверах. Поэтому не будем преждевременно радоваться, а посмотрим, как же развивались события дальше.
После совещания у заказчика, на котором был согласован вариант с заменой поточного сканирования на дополнительные функции безопасности, Ербол снова встретился с Валерой. Он рассказал ему о принятом решении и, на всякий случай, спросил: «Теперь мы это сделаем и уложимся в прежний срок?» «Да, уложимся» — ответил Валера. Мы теперь знаем, что Валера – профессионал. И его ответ показывает нам, что профессионалы также должны уметь говорить «да». Сказав это магическое слово, они берут на себя ответственность за то, что это будет сделано.
Но вернемся к повествованию. Снова потекли рабочие будни. Команда кодировала новые функции, тестировала и документировала их. Все шло отлично, но внезапно появилась небольшая проблема. В большом кабинете, где проходили совещания и обсуждались архитектурные и проектные решения, начал барахлить Интернет. Он мог некоторое время стабильно работать, но затем подключение пропадало и приходилось ждать несколько минут, пока оно не появится снова. Так как большая часть ресурсов команды находилась в облаке, это стало реальной помехой работе.
Валера поговорил с сисадминами и узнал, что проблема кроется в Wi-Fi-роутере, который не мог поддерживать большое количество соединений одновременно. Валера очень хотел решить данную проблему и после обеда встретился с одним из системных администраторов по имени Виктор. Он описал ситуацию и спросил, можно ли ее исправить. «Да, нужно поменять роутер» – ответил Витя.
Валера, довольный тем, что ему пообещали решить проблему, собрался было уходить, но тут вспомнил курс социолингвистики, который он проходил в университете. Оказывается, не каждый ответ «да» ведет к принятию обязательств человеком. На самом деле, выполнение обязательств включает в себя 3 этапа:
- Нужно сказать, что вы сделаете что-то.
- Нужно действительно намереваться сделать что-то.
- Нужно это сделать.
Так вот, в этой схеме Виктор не выполнил даже первый пункт. Он подтвердил, что проблема есть и нужно поменять роутер. Но он не сказал, что он сделает это. Скорее всего, Витя забудет об этом как только выйдет из кабинета. И проблема не будет решена еще долго.
Валера понял это по слову «надо», которое употребил Виктор. Существуют слова-индикаторы, которые применяются, когда человек вроде как признает что-то, но в то же время не берет на себя ответственность. В их число входят: «надо/нужно», «надеюсь», «давайте». Например: «Надо начать ходить в спортзал», «Нужно сесть на диету и начать худеть», «Давайте будем использовать TDD в следующей итерации». Человек говорит об этом, но не планирует это делать. Обычно, эти фразы произносятся и забываются через 5-7 минут. Ответ Вити оказался из той же категории.
Если бы Валера не был профессионалом, он бы довольствовался полученным ответом и ушел. Но он решил продолжить разговор, чтобы Витя четко сказал, кто и когда решит проблему. «Ты решишь эту проблему и поменяешь роутер к среде?» – спросил Валера. «У меня много дел, нужно провести ревизию наших СХД и написать отчет руководству. Поэтому к среде не успею. Предлагаю такой выход: я пока запущу процесс покупки роутера, а в четверг установлю его в кабинете» – ответил Витя.
Налицо все признаки взятия на себя обязательства. Человек говорит, что он сделает конкретное дело к конкретной дате. И теперь он находится в ситуации, когда Валера может прийти к нему в четверг и спросить, была ли проблема решена. И Витя будет чувствовать себя крайне неуютно, если он не выполнил свое обещание.
Но и тут в ответе Виктора есть изъян. Дело в том, что он не управляет процессом покупки сетевого оборудования. И, когда он придет к человеку, ответственному за это, ему могут отказать. Не утвержден бюджет, есть более приоритетные закупки – вот лишь некоторые из объективных причин, по которым к четвергу роутера может не быть. Профессионал должен брать ответственность только за то, что полностью находится под его контролем, и он в этом не зависит от других людей.
Валера, ведомый своим профессиональным нюхом, уловил и эту проблему в ответе Вити. Он поговорили еще 10 минут и в итоге остановились на следующем решении. Витя в этот же день отправит заявку в административный отдел и, как только получит ответ, сообщит Валере, когда роутер будет куплен и когда он его установит. То есть, хоть Виктор в одиночку и не сможет решить проблему, но он сделает необходимые шаги, чтобы она была решена как можно быстрее. Он четко и доступно описал это Валере, озвучив свою ответственность в этом вопросе. В компании одним профессионалом стало больше.
Напоследок Валера напомнил Вите еще об одной вещи. В случае, если произойдет что-то непредвиденное и это помешает Вите в деле установки роутера к нужному сроку, он должен тут же сообщить об этом Валере. В жизни случается всякое и весь отдел системного администрирования могут вытащить к заказчику для решения экстренной проблемы. И, если это ставит под угрозу выполнение обязательств перед другими людьми, они должны сразу же быть оповещены об этом. Тогда они смогут откорректировать свои планы и принять другие меры для устранения возможных неприятностей. Конечно, в случае с роутером последствия будут не самыми серьезными. Но профессионал относится ко всем своим обещаниям одинаково. Будь это обновление версии Counter-Strike на локальном сервере или развертывание инфраструктуры серверов для проекта масштаба всего Казахстана.
После этого памятного разговора Виктор стал еще более профессионально относиться к своим обязанностям. Сетевая и серверная инфраструктура компании стала работать безупречно. И время от времени к ним даже стали организовывать экскурсии школы и колледжи, чтобы показать детям, как должен работать технический отдел большой и современной IT-компании.
Продолжение следует...
P.S. Большую часть идей, описанных в этой статье, я почерпнул из книги Роберта Мартина «Идеальный программист». Они наложились на мой собственный опыт, и в итоге я решил рассказать об этом в виде небольшой вымышленной истории.