Стук в дверь. Все неожиданно вздрагивают, но при осознании случившегося, торопливо вскакивают со своих мест, приводя в порядок внешний облик. После затянувшегося молчаливого переглядывания прозвучал еще один стук, уже настойчивее. Громко вздохнув и набравшись смелости, кто-то из собравшихся у двери открыл её.

-«Здравствуйте, чего не открываете?»
-«Так мы вроде бы никого не ждали сегодня..»
-«Как же не ждали? День сегодня какой? Договаривались же…»

Недавний храбрец перевел взгляд на настенный календарь с корпоративным логотипом и на его лице появилось смятение. От осознания тяжелого продолжения вечера затрещала голова. Заказчик неторопливо стряхнул промокший плащ и повесил на вешалку.

-«Пройдемте в переговорку. Чай? Кофе?»

Оставьте лирику, займемся гипнозом


Этим художественным вступлением хотелось бы затронуть такую тему, как взаимодействие триумвирата: менеджера, разработчика и заказчика. Об этой проблематике написано много статей, сделано много докладов на конференциях, поломано много копий в дискуссиях, но в основном они посвящены критике чрезмерного управления. В настоящей статье, читателю будут представлены две истории в картинах. Посмотрим на ситуацию, когда того самого, критикуемого менеджмента, не хватает. В основе двух зарисовок лежат реальные истории, возможно вы узнаете среди них свою.

Мы начинаем, закройте глаза. Представьте себе среднестатистическую IT-контору, забудьте о корпорациях-гигантах и доблестных рыцарях фриланса…

Картина «Всё по-взрослому»


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

Реальность: автор понимает, что подобная манера повествования, когда в начале идет длительное перечисление наивного позитива, опытного читателя наверняка бросит в скуку: он уже будто смотрел этот фильм и знает, что сейчас «титаник врежется в айсберг». Ничего нового, увы, драматурги не придумали: звонки разгневанного заказчика по ночам с требованием исправить ошибку, экспоненциальный рост требований и правок, недовольство работодателя, общая неудовлетворенность положением вещей.

Вердикт: не каждый, особенно в начале своего карьерного пути, способен грамотно общаться с заказчиком. Иногда именно на этом фронте добиваются ключевых побед, гарантирующих проекту успешное завершение. Не зря в крупных компаниях между рядовым разработчиком и заказчиком выстроены целые когорты из аналитиков, sales engineer’ов, руководителей департаментов и прочих представителей IT-фауны. Думайте, стоит ли на такое подписываться, даже за хорошие деньги.

Картина «Я у мамы дизайнер»


Диспозиция: у вас небольшая, но разноплановая команда (фронт, бэк, тестирование), по разным причинам проект долго буксовал, но в последние месяцы летит на всех парусах, чтобы успеть в срок. Заказчик — то ли крупная корпорация, то ли и вовсе государство, и его представитель периодически просит показать результат работы в формате демо-показа по скайпу. Руководитель фронтенда проводит показ и все выглядит так, будто в него вселился Стив Джобс — в конце заказчик уйдет вечно голодным и безрассудным. Красивая речь словно убаюкивает остальных, отключивших микрофон… Затишье перед бурей. Снова эта манера повествования, ничего не могу поделать.

Реальность: резко, словно удар кинжала, заказчик бросает вопрос: «А почему у вас кнопка удаления не там, где кнопка редактирования?». (Р — разработчик, З — заказчик)

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

Вердикт: классика жанра. Мораль сей басни в том, что иногда нужно уметь говорить нет, иногда признавать свои ошибки, а иногда твердо стоять на своем. Как именно поступить, зависит от конкретной ситуации. Если всегда иметь «лихой и придурковатый вид» подчиненного из петровского указа, то проект рискует быть незаконченным, сделка сорванной. Но важнейшим вопросом здесь является не «как поступить», а «кому поступить». Постараемся найти ответ в заключении.

Итого


Чаще всего разработчик не умеет разговаривать с заказчиком и в обеих ситуациях видна проблема отсутствия или недостаточности управления. Сказывается она не только на процессе разработки, но и на судьбе всего мероприятия в целом. Только наличие того самого «фильтра идей», умельца грамотно распределять ресурсы, ставить правильные сроки и отвечать на неудобные вопросы позволит разработчику не мерить шляпу проектного менеджера и сосредоточиться на своей работе.

Комментарии (11)


  1. Temmokan
    10.10.2017 05:54
    +2

    взаимодействие триумвирата: менеджера, разработчика и заказчика.


    Э-э-э… Это вряд ли триумвират. Как по-научному называется композиция «лебедь, рак и щука»?


    1. Deosis
      10.10.2017 07:25

      Если сумма приложенных усилий менеджера, разработчика и заказчика равна нулю,
      то проект либо находится на одном месте, либо движется прямо к своему концу.


    1. Dr_Dash
      10.10.2017 07:52
      +1

      Биоценоз


    1. cesare
      10.10.2017 14:39
      -1

      Пищевая цепочка. Только в другом порядке: р — м — з


  1. DarkTiger
    10.10.2017 10:40

    Помнится, после ВУЗа я сделал открытие — если сваять на C++ Builder за пару часов для заказчика макет приложения, вообще без функционала, только кнопки, то контракт обычно подписывается именно с нами и проблем с UI на сдаче не возникает. Шеф, технарь до мозга костей, разумеется, считал меня дураком, но держал — за умение общаться с такими же, как я, дураками у заказчика.
    Это уже сильно после я прочел про «Соломенное чучело» у деМарко


    1. mayorovp
      10.10.2017 10:47
      +2

      Проблема таких вот макетов — в том, что заказчик считает их почти готовыми приложениями и в своих оценках сроков исходит из этого предположения...


      1. DarkTiger
        10.10.2017 12:21

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


        1. qw1
          12.10.2017 19:56

          Допустим, сердце системы — БД, и нужно реализовать работу с Oracle.
          Вы предлагаете сляпать по-быстрому пару функций на SQLite, прямыми запросами, без ORM, а потом, получив мелкое требование: «а сюда добавьте ещё пару критериев в выборку», получить переделку на 2 месяца якобы уже готовых фич, потому что правильно было их писать ну совсем с другой схемой данных, а не с игрушечной?


          1. DarkTiger
            12.10.2017 21:25

            Справедливое замечание. Разумеется, такой подход не универсален, было бы смешно применять его также и к строительству тоннеля, и к разработке серверов.
            Тем не менее, наберите в Гугле «деМарко соломенное чучело», у него эта идея описана куда как красивее и лучше, чем у меня


  1. isden
    10.10.2017 10:43
    +2

    «А почему у вас кнопка удаления не там, где кнопка редактирования?».

    После этой фразы должно быть что-то вроде такого:

    — Сделано согласно утвержденного ТЗ, вот тут написано и нарисовано. Хотите перенести? Давайте составим новое ТЗ с доплатой за переделку.


    1. DarkTiger
      10.10.2017 12:24
      -1

      Так бывает только в сказках. В реальности обычно идет торг «вы, конечно, негодяи, что вот это, вот это и вот это реализовали через одно место, ну да ладно, перенесите вот эту пару кнопок и добавьте еще пару, с вот этими функциями»