Зачем нужно техническое задание и о чем это
«А зачем нужна разработка технического задания, когда в целом то и так понятно, что мы хотим?» — этот вопрос я встречаю довольно часто в своей работе программирования и сайтостроения. Поэтому я решил написать статью, почему это важно и почему без этого трудно работать.
История вопроса. Осмелюсь предположить, что возникновение вопроса про техническое задание берет свои корни из истории. Большинство людей, которые делают бизнес, родом из СССР или как минимум они застали времена Союза. Тогда за многое отвечало государство и не было смысла напрягаться, а это придавало ощущение безопасности. Да и бизнеса как такового (по крайней мере таким, каким мы знаем его сейчас) тогда не было. Однако с развалом СССР и прихода рыночной экономики всё резко изменилось. Причем произошли эти изменения не просто стремительно, но и в огромных масштабах, затронув все отрасли. И многие начали задумываться над тем, что неплохо было бы сделать своё дело. А те бизнесмены, у кого это получилось, вскоре начали задумываться о том, что часть своего бизнеса (или даже весь бизнес) было бы неплохо автоматизировать. Это и понятно, так как это экономит время и позволяет вести бизнес грамотно.
Однако фокус верного бизнеса в том, что вопросами автоматизации надо заниматься ДО его создания!
Об этом, разумеется, бизнесмену в начале никто не расскажет и надо обладать, как минимум, развитым системным мышлением, чтобы начать думать об этом где-то в самом начале создания своего дела. Обычно бизнес в России начинается с желания нескольких людей заработать деньги. О проектировании того, как это будет выглядеть сейчас и потом, редко кто задумывается. На западе ситуация иная — там понимают важность проектирования и стремятся изначально расставить фигурки на шахматной доске максимально выгодно для себя до начала партии. И на западе в бизнесе нет мягкой постилки в виде государства — там народу приходится решать многое самостоятельно, беря на себя ответственность за своё дело. Поэтому в России у бизнесмена, когда ему через какое-то время что-то удалось таки заработать, возникает желание сделать работу внутри компании удобной и сэкономить время и деньги. Реализация таких пожеланий называется автоматизацией.
Пожелания заказчика. Автоматизация — это как раз о том, что хочет заказчик и делается она на базе каких-то инструментов. Есть бизнес-процесс, есть понимание того, что и в какой последовательности в нем происходит. И тут надо понимать, что автоматизировать можно как весь бизнес, так и какую-то его часть. На автоматизацию всего бизнеса обычно денег не хватает, поэтому за исходники берут самую «головняковую» часть — у кого-то это заказы, у кого-то — складской учет, у кого-то расчет сервиса и т.д. Разумно предположить, что на рынке уже есть что-то готовое….
Что предлагает рынок? Рынок уже давно сделал сегментацию потенциальных клиентов и подготовил типовые готовые решения под них.
Саму сегментацию готовых решений на рынке можно представить в виде куба, по осям которого расположены отрасль, функциональность готового решения и его стоимость.
И основная задача потенциального заказчика — найти себя где-то на пересечении координат этого куба.
То есть, заказчику надо найти «себя» в этом пространстве «сегмент-решение-стоимость». Но даже в том случае, когда такая точка найдена, остается много вопросов у самого заказчика и не факт, что такое готовое решение ему подойдет. В этом случае логично предположить, что заказчик захочет что-то «допилить». А рынок неохотно доделывает свои готовые решения, а если и доделывает, то за большие деньги.
В итоге у заказчика головная боль посреди «вроде как» большого выбора разных готовых решений. А консультантам разработчиков таких решений выгодно «посадить» заказчика на именно выбранное ими готовые решение — так проще! Это напоминает уже некий «выбор без выбора».
Процесс такого поиска можно сузить, четко понимая, что заказчик хочет получить на выходе и чем именно из многообразия платформ и программ на рынке он будет пользоваться для получения этого результата. И если в случае внедрения такого готового решения, которое устроило бы заказчика, техническое задание писать необязательно, то при выборе условно готового решения, которое надо где-то «допилить», без ТЗ уже не обойтись.
Участники проекта по доработкам. Как вы уже поняли, в большинстве случаев допиливать что-то всё равно приходится. И вот заказчик выбрал платформу (программу), которая ему максимально подходит, но что-то немного не устраивает и согласен на доработки. И вот тут задача исполнителя — доработать такую платформу (программу) под потребности и пожелания заказчика. Вроде бы все просто, верно? Но на деле заказчик не всегда знает, как именно он хочет видеть такие доработки — это раз. А у исполнителя есть программист (техник), который должен как раз четко понимать, что и как он должен сделать. То есть, должен быть документ, который будет подписан сторонами и он не должен содержать двусмысленностей. Такой документ называют техническим заданием. Опять же, на практике заказчик предоставляет не столько ТЗ, сколько его описательную часть, которую нужно еще много корректировать в соответствие с особенностями той платформой (программой), которую он выбрал и тех задач, который он поставил.
Поэтому в проекте со стороны исполнителя всегда участвует аналитик, который такое техническое задание составляет. И он же должен проследить, чтобы конечное ТЗ было понятно и программисту исполнителя и заказчику. Тогда программист не будет в процессе звонить заказчику и спрашивать у него какие-то сложные и непонятные вещи, а все эти вопросы будут решены «на берегу». И заказчик должен понимать, что такое ТЗ стоит денег. Осталось понять еще одну важную вещь….
Сколько стоит написание ТЗ? Ну, хорошо, допустим заказчик согласился с тем, что ТЗ и вправду важно в проекте. А как его оценить? Оценку тут идет по нескольким векторам. Во-первых, что именно мы автоматизируем? Во-вторых, уровень специалиста, который этим занимается. В-третьих — сколько такой спец потратит своего времени на это. Если брать минимальную ставку 500-1000 рублей в час работы аналитика, то получается, что написание ТЗ начинается от 1 недели и будет начинаться от 20 000 — 40 000 рублей. Это самые небольшие проекты. В средних проектах ТЗ начинается от 80 000 рублей в зависимости от сложности того, что нужно автоматизировать. И, поверьте, это того стоит! И прежде чем вы начнете кидать в меня камни, давайте разберемся, что в итоге будет на выходе….
Почему же выгодно написание ТЗ всем сторонам проекта? Коснусь того, с чего начал эту статью. Понятно, что заказчик хочет сэкономить. Понятно, что программисту трудно дорабатывать то, что есть, не понимая, как именно он будет это делать. Но давайте прикинем, что будет, если технического задания нет в принципе?
- Трудно оценить проект изначально по стоимости. Заказчик хочет понимать стоимость проекта до его начала и это справедливо. Но исполнителю трудно дать конечную стоимость, не зная исходников. Можно, конечно, сказать цену наобум. Но такой подход рисковый и не всегда попадает в точку — тут многое зависит от опыта исполнителя и его ресурсов.
- Проект однозначно затягивается. Причем страдают обе стороны. Там, где появляются «подводные камни», которые никто не оговаривал (или не увидел), заказчик может трактовать их в свою пользу. Но в то же время есть программист, которые получает деньги за время, потраченное за работы. И тут «камни» — это риски. На практике они могут увеличить проект по времени исполнения в несколько раз, что точно не понравится ни исполнителю, ни заказчику.
- Отношения между заказчиком и исполнителем будут накаляться. Хотя тут важно понять, что в проекте участвуют всегда обе стороны и обе стороны ответственны в равной степени за тот результат, который будет на выходе.
- Страдает бизнес заказчика. Если автоматизация касается того кусочка бизнеса заказчика, что связан с заказами или скоростью работы, то любые проволочки могут привести к тому, что заказчик будет терять деньги.
- И еще один нюанс — заказчик будет менять исполнителей как перчатки, не получая в итого того, что ему надо. Сумма в 20К на входе пугает заказчика? Ок, его право отказаться от исполнителя и найти кого-то другого, а потом еще одного и еще одного…пройдёт год и станет ясно, что на программу потратили уже больше 100К, а результат хромой. То есть, да, он рабочий, но работать в нем чертовски неудобно, да и считает криво. Смеётесь? А это рядовая ситуация. И разница между 20К и 100К для заказчика тут может быть не видна, так как она растянута во времени. Но по факту она 80К….
И если сложить все эти риски воедино, то становится очевидно, что лучше один раз потратить деньги с толком на написание технического задания и наслаждаться результатом. Такой подход уже сам по себе является гарантом того, что все будет хорошо и на выходе будет тот результат, который хотел видеть заказчик (даже, если он сначала представляем его немного иначе, но это уже тема отдельной статьи…).
Пример в тему не из области программирования. Приведу пример вообще не из области программирования. Сейчас у многих женщин есть молочница. Если изначально знать, откуда она берется, то можно продлить жизнь не на один десяток лет! По телевизору рассказывают про чудодейственные лекарства, которые излечат молочницу (готовые решения). Но если копнуть глубже, то молочница провоцируется определенными видами низших паразитических грибков, которые есть во всех мучных изделиях. А чем грибы отличаются от любых паразитов на земле? Тем, что если их начать травить (что и делают лекарства из рекламы), то они реагируют мгновенным и быстрым размножением. Причем каждое следующее поколение уже имеет сопротивляемость к данному лекарству. И тут речь идет о днях! То есть, через несколько дней курс антибиотиков уже не сработает и только будет ломать печень и почки человека. Грибкам этого достаточно, чтобы потом уже паразитировать на ослабших печени и почках. И молочница будет радостно возвращаться к вам снова и снова! А лекарства стоят немалых денег по нынешним временам….
Но если четкий план и понимание того, как именно надо выводить грибков, учитывая их особенности (наше ТЗ), то за квартал-полгода вы можете избавиться они них условно навсегда (результат доработок). Почему условно? Да потому что если вы будете продолжать жрать хлеб с прилавков, то вы продолжите кормить тех грибков, которые остались. Ой, а я разве не сказал, что грибки быстро размножаются, когда получают ту пищу, которую любят?