Я ЕМ ПРАВКИ ЛОЖКАМИ

 

Холодным ноябрьским утром 2017-го к нам в почту постучался он — высокий, красивый и платёжеспособный представитель известного, высокого, красивого платёжеспособного бренда. Это была мечта… Мечта любой аутсорс-компании, такая же светлая, как финансовый магнат Эдвард Льюис для Вивиан и такая же желанная, как Памела Андерсон в  красном купальнике для любого подростка в 90-х.

Он сказал, что хочет от нас продукт, и сердце нашего сурового сейлза дрогнуло, потому что он тоже безумно и безудержно желал произвести на свет этот маленький кусочек счастья — интернет-магазин на 100-500 тысяч пользователей, где будут продавать не «синий мужик пластик дорого гвоздь воробей кактус», а то, чего нельзя называть, потому что три волшебные буквы «NDA».

Часть 1.  <Измена>

Окрыленный словами и совсем немного финансовыми перспективами, наш сейлз побежал к разработчикам оценивать смету, задавать вопросы, получать предоплаты и вот это вот всё сейлзовское фу-фу-фу, из-за которого разработчикам приходится потом работать, а не пить свой ароматный горячий кофе, потому что ноябрь, депрессия и Россия.

Спустя еще немного времени, красивых ухаживаний и получения предоплаты, мы приступили к «процессу производства». Всё было прекрасно, архитектура строилась, задачи начали закрываться и дизайн согласовываться. Но всего через пару недель, так же внезапно, как родители, вернувшиеся с работы пораньше, именно в тот день, когда 12-летний ты решил посмотреть Шоугёлз, и кассета как назло вытаскивается из видика целую вечность (для тех кто моложе 26, придётся потом погуглить, что такое VHS и Шоугёлз, а сейчас просто поверьте — она реально целую вечность вылезала, столько невинных жизней полегло под гнетом ремня из-за этих кассет с рейтингом 16+...), он появился на пороге с ещё двумя внешними подрядчиками, нежно уведомив нас, что теперь они будут жить с нами, ведь кто-то же должен делать ему АПИ, а еще ему хотелось бы попробовать бэк, а мы ведь можем только в мобилку, что не прибавляет разнообразия нашим отношениям.

Часть 2. <Торги>

Это не было для нас шоком, ведь заказчик не был у нас первым, и в современном мире «полиподрядочностью» уже никого не удивить, да и у нас к этому моменту стали появляться вопросы типа «кто будет делать АПИ и вот это вот всё», поэтому мы, конечно же, приняли эти условия. В конце концов, количество котиков, живущих у вас в квартире и просящих денег кушать — это проблема ваша, а не котиков.

Казалось бы, на этом историю можно заканчивать: у принца три принцессы, каждая из которых занимается своим делом и радует глаз результатами труда. Но история тут только начинается и берет крутой неожиданный поворот: оказалось, что ни один из подрядчиков (включая нас, но мы-то ладно) не знаком с имеющимся бэком и CRM-кой заказчика, что спровоцировало нереальное количество чатов, бесконечные выяснения требований  и вопросы (почему-то адресованные нам) типа «а из какой таблицы это поле взять?». Более того, ребята, которые должны писать АПИ, писали его только в своих самых смелых мечтах (даже более смелых, чем у семиклассника Витьки при взгляде на старшеклассниц соседней школы) и понятия не имели, как состыковать то, что есть, с тем, что нужно фронту в лице мобилок и при этом не ударить в грязь лицом всеми частями подмаранной профессиональной репутации.

Стоит отметить, что на тот момент проект длился уже несколько месяцев и был в стадии самой что ни есть активной разработки, когда наш Эдвард понял, что с  АПИ все идет «по П» (где П — это не план), и принял решение столь филигранное и восхитительное, сколь и запоздалое примерно на полгода — поставить проект на HOLD и пойти искать тех подрядчиков, которые могут.

Он покинул нас на квартал, 3 долгих зимних месяца, таких же долгих, как очередь на кассе магазина в 8 вечера, когда ты голодный, хочешь домой и уже не уверен, что тебе нужна была эта картошка и шоколадка, но за виски идти уже как-то не хочется.

Часть 3. <Принятие>

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

Но как писала автор «Карлсона, который живет на крыше» — «Он вернулся!», с поправкой на то, что вернулся не веселый мужик с вентилятором, а наш горячо любимый заказчик. И не один, а с новыми подрядчиками, которые по крайней мере были уверены что АПИ — это не «Агентство правовой информации», а что-то про REST и Json.

Помните, мы упомянали о течении времени и ненадежности памяти разработчиков? Это было не зря. Представьте себе следующие вводные  успешного проекта:

  • Разработчики, которые делали проект, уже давно канули в лету (т.е. заняты в других проектах).
  • Подрядчики опять новые и не представляют, что происходит.
  • Заказчик считает, что первых двух вышеописанных факторов для успеха проекта недостаточно, и меняет требования, потому что «сорян, но концепция поменялась».

Замолкли птицы. Заплакали дети. Менеджер, который вел этот проект, преждевременно поседел и пошел пить свою утреннюю чашечку валерианки с двумя таблетками валидола. Разработчики в очередной раз прокляли тот день, когда решили стать программистами.

Часть 4. <Рефлексия>

Родители отправили меня учиться на программиста, чтобы я смог узнать, каково это — зарабатывать много денег и выслушивать общественное порицание «вас бы всех на завод, бездельники!». 840 часов разработки спустя я знаю только одно, хотя нет, не одно… четыре:

  • Не проектируйте API без знающего бэк человека со стороны заказчика. Лучше потратить несколько недель одного человека на эту работу, чем несколько месяцев работы команды по постоянным корректировкам корректировок и изменениям изменений. Если ваш заказчик говорит «а давайте вы в процессе  разработки это сделаете, надо бы побыстрее, сроки жмут», помните, что где-то далеко теплота разлилась в сердце гробовщика, который уже готовится снимать с вас мерки.
  • При подключении внешних подрядчиков, незнакомых с системой, следует закладывать риски в стоимость сроки проекта. Если ваш заказчик не готов инвестировать в коммуникации между подрядчиками, вспоминайте грустное лицо менеджера, когда 30 часов в неделю из 40 вы будете тратить на то, чтобы в цензурной, что немаловажно, форме, вступать в полемику с другими участниками процесса по любому поводу. Начиная от применимости UPPERCASE, заканчивая доказательствами того, что подрядчик сам предложил то, что сейчас активно пытается переложить на вас.
  • Если людей в коммуникации много, то не ответственен никто.
  • Инструменты, которые вам помогут (git, jira)

Резюмируя, отвечаем на главный вопрос: как сделать так, чтобы это с вами не случилось:


 

 
Open