Почему ТЗ - это медленно и больно

 

 Корень проблемы с ТЗ

 

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

Жалобы на заказчика-дурака и разработчика, который “весь в белом” уже набили оскомину. Про это я писать не буду. Я несколько лет работал с ТЗ, а последнее время без него, хочу поделиться с вами размышлениями на эту тему и своими граблями. 

Обычно ТЗ составляет заказчик для исполнителя. В нем он сам интерпретирует задачу и придумывает, как ее можно решить (зачем решать, обычно вообще при этом за кадром). Получается ситуевина с исполнителем, изолированным от цели.

Это может быть ок, если технически заказчик сильнее исполнителя и потратил достаточно времени на изучение вариантов решений, выбор лучшего и подробное его описание. Но что-то это прям не похоже на стандартную ситуацию с привлечением родненького аутсорсного IT! 

 

Хороший исполнитель, - скажете мне вы, - изучая ТЗ, задаст уточняющие вопросы, исправит неточности и противоречия! Но для него в Т.З описана граница, выход за которую ему не оплатят, и вся фантазия останется в рамках общего решения. От заказной разработки нужно быстро и качественно делать, а не задаваться философскими вопросами, типа: “а вам точно нужно приварить сюда треугольное отверстие диаметром 3 на 4?”.

Как это все выглядит: 

Вот как выглядит процесс разработки по ТЗ:   

 

Как видим, после ТЗ нас ожидает великолепное тянущееся болото правок, которые портят жизнь и мотают нервы не только разработчиков, большинство из них из разряда «не подумали сразу, надо прикрутить пока не поздно». Поэтому обычно после демо переделывать приходится и процессы, и документы, и, собственно, разработку - работы хватает всем.

Спустя месяцы, вы обнаруживаете себя в 5 утра редактирующим ТЗ ver 1003.0.1.  Продолжаться это может очень долго и дорого. На эту тему есть не анекдот, а суровая жиза: как-то мы по частям переписывали гигантскую IT-систему одного заказчика, а после посчитали, что на составление и согласование ТЗ очередного модуля системы со всеми подразделениями и другими подрядчиками уходит столько же времени, сколько на разработку этого модуля.  

 

В сухом остатке:

  • сопоставление задачи и результата происходит уже после разработки, непредсказуемо сдвигает срок запуска и заставляет всех работать с горящей жопой, а не с горящими глазами.
  • всю дорогу бизнес, ПМ заказчика и исполнители упарываются, пересылая и согласовывая друг с другом правки, а могли бы деньги делать


Передастический АД. Вид сбоку

 

Еще хуже, когда отраслевые организации запускают у себя внутри «цифровую трансформацию», имея в виду, что сейчас они соберут свой IT-отдел из 1000 человек и перестанут наконец зависеть от всех этих дорогих и неэффективных аутсорсеров. Но при этом не меняют подхода: задачу осознают одни, решение описывают другие, а реализуют третьи (тот самый свеженький штат IT-шников). И когда количество IT-шников переваливает за сотню (не успевают закрывать задачи ведь, понятное дело, из-за нехватки ресурсов же!), вся эта возня с перекидыванием заданий, правок, замечаний и внезапных осознаний «это же не так как мы хотели» почти полностью занимает бизнес и останавливает развитие. И вот тогда IT превращается в «гребанных программистов». 

 

На эту тему есть фантастический кейс Леруа Мерлен о том, как 400 IT-шников в штате не могли запилить фичу на сайт, и как они решили эту проблему.

Как быть

Очевидно, что нанимать 400 IT-шников также весело и результативно, как на лыжах по асфальту, однако не всем нравятся подобные формы извращений и поэтому логично, что цепочку из тех, кто думает, описывает и реализует надо замкнуть. Создать процесс, когда на вопрос: «что нужно сделать в техническом плане, чтоб снять вот это ограничение?» сразу отвечают IT-специалисты, которые будут это делать. Так под задачу собирается группа из стейкхолдера, product owner-а, разработчиков и отраслевых специалистов. Команда вместе обсуждает, как можно добиться этой цели, вместе решает, что именно им нужно изменить в процессах и, что для этого разработать.


Чем хорош подход с кроссфункциональными командами и без ТЗ:

  • Разработчики сами себе планируют фронт работ - идеальная приватизация задачи, по сравнению со спущенным сверху заданием
  • Всем понятна связь между конкретной фичей и бизнес-целью, а значит, специалист может сам принимать решения по ходу реализации. Это особенно важно во время разработки продуктов, когда «как правильно» не знает никто
  • Если команда на самом деле кроссфункциональная (а не носится челноком согласовывать все так же, как в случае с ТЗ), то бизнес на ходу сравнивает результат с поставленной задачей, экономит на обсуждениях и переписках
  • Исполнители, максимально погруженные в бизнес-процессы, проактивно подходят к решению возможных проблем. В этом случае невозможна ситуация, когда на демо вдруг выясняется, что функционал не решает задачу 
  • На стыке компетенций (IT, отраслевики, бизнес) обычно находятся лучшие решения

Кому нужен такой подход

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

Когда же бизнес решает создать что-то новое, это новое лучше планировать сразу со специалистами. Они, включившись, сами создадут и возьмут себе задачи лучше любого ТЗ.

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

 
Open