Как я научился работать по техзаданиям: неочевидные плюсы очевидного решения из песочницы

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

Дело в том, что заказчики приходили ко мне в основном по рекомендациям, задачи и пути их решения были схожими. Я лихо совмещал фриланс с постоянной работой (кстати, совершенно не связанной с разработкой). Все было замечательно, пока на горизонте не появился действительно серьезный заказчик с действительно серьезным заказом.


Итак, первая встреча – первые ошибки


Первая встреча с заказчиком (тогда еще потенциальным) прошла просто замечательно. Уже тогда я четко понимал важность технологий общения в бизнесе. И, хотя, бизнес на тот момент был даже не малым, а микроскопическим, мое отношение к общению с заказчиком было более чем серьезным. Я лихо демонстрировал последние проделанные мной работы, описывал процесс поиска тех или иных решений на пути к созданию совершенного конечного продукта, доступно раскрывал преимущества, которыми эти решения обладали. Представитель заказчика слушал меня, открыв рот. Он демонстрировал какие-то схематические каракули на мятых листках бумаги, показывал схожие системы, я с ходу генерировал и высказывал удачные идеи.Через какое-то время заказ был мой.

С этого момента моя история теряет положительный окрас. На переговорах с заказчиком я допустил роковую ошибку, сделав привычный ход, ранее позволявший мне с легкостью «завоевывать» прежних заказчиков. А именно: опираясь на исходные данные в виде невнятных рисунков на мятых листках, я обозначил стоимость. Конечно, я сделал оговорку, что эта стоимость – ориентировочная, однако в дальнейшем моя опрометчивость сыграла не в мою пользу.

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

Но мне в тот момент все это было неизвестно. И я рассудил как обычно: что не оговорено на «мятых листках» я решу сам по ходу работы. Отрицательные последствия этого решения не заставили себя ждать.

Тендер выигран, едем дальше


Более или менее в срок я выполнил работу и сдал сдал систему в виде той «куклы», которую задумал мой заказчик. Был завершен первый этап разработки. Далее стояла задача сделать из нашей «куклы» более-менее работающую систему.

И вот на этом этапе открылся ряд неприятных нюансов, связанных с заказчиком. И возникли первые негативные нотки в наших отношениях:
  • Поскольку заказчиком выступал не один человек, а отдел мой телефон и моя электронная почта стали общедоступными… Любой, кому в голову приходили светлые, по его мнению, (или просто какие-нибудь) мысли по поводу моей работы, считал нужным немедленно сообщать их мне лично по телефону или любым другим удобным ему способом… или всеми способами сразу. Мои просьбы руководителю отдела сократить количество общающихся со мной сотрудников имели, как правило, кратковременный эффект. Через пару дней мой телефон снова начинал разрываться в любое, удобное кому угодно время, а в почту летели нескончаемые потоки различных (подчас, противоречивых) предложений и пожеланий.
  • Часто возникающие противоречия в решении тех или иных вопросов сводились к спору «обсуждали – не обсуждали», «определили – не определили», «договаривались – не договаривались». Я оперировал сканами мятых бумажек, заказчик справедливо замечал «это же только макет, когда мы его рисовали, мы же не знали всех нюансов». Помимо этого приходилось разгребать мегабайты писем.
  • Руководитель отдела – человек занятой, и зачастую по очень важным вопросам приходилось общаться с его подчиненными. А они, по большей части вчерашние студенты, в разных спорных ситуациях норовили обелить себя перед начальством. Их любимая отговорка «я ему это говорил, просто он неправильно понял».
  • Со стороны заказчика по разным вопросам звучали фразы «вы же профессионал, придумайте, как это должно быть устроено », либо «как это должно выглядеть, мы не знаем, но то, как это выглядит сейчас, нас не устраивает».


Последняя капля


Результатом вышеописанных событий стало не только ухудшение отношений с заказчиком, но и лавинообразный рост объемов работы за те же деньги, и, что еще хуже, в те же сроки. А сроки работ, определенные мною на переговорах, были, мягко говоря, наивными – сказалось отсутствие опыта работы с подобным заказчиком. Я честно пытался уложиться в означенные сроки, однако объем моих негативных эмоций огромным водопадом переливался через край чаши моего терпения.

Опоздав на «два этапа» я обратился к руководителю отдела с электронным письмом, в котором подробно поделился наболевшим и изложил свое видение ситуации. Самое главное – я потребовал в срочном порядке сформировать техзадание, отметив свою личную заинтересованность в успешном завершении проекта (что было чистой правдой). В завершение письма я заявил, что, несмотря на эту самую заинтересованность, дальнейшее сотрудничество без техзадания продолжено быть не может. Через две недели техзадание было представлено – заказчик разрабатывал его самостоятельно, без моего участия (однако отсутствие должной квалификации в вопросах организации веб-систем и, как следствие, должного представления того, что же в конечном счете надо получить, сказалось на техзадании плачевно). В результате оно получилось лаконичным, простым и понятным. Беда только в том, что его объем составлял 4 листа, и это для системы, которая на тот момент разрабатывалась уже полгода! Ничтожность объема этого задания на фоне размеров системы становится понятна, если немного забежать вперед — когда система была готова, для описания ее установки и настройки потребовалось 20 листов, а мануал по работе с ней занимал более 70 листов. В довершение ко всему последним пунктом значился переход на совершенно другую платформу (другая СУБД и другая операционная система были корпоративными стандартами). Заказчик (в лице руководителя и нескольких его подчиненных) объяснил, что, да, об этих корпоративных стандартах было известно с самого начала, но не считал необходимым ставить меня в известность о дальнейшем обязательном переходе на другую СУБД. И вообще, другая, отличная от корпоративной, платформа изначально была выбрана намеренно, чтобы (якобы) ускорить процесс разработки (так руководитель видел оптимизацию задачи для скорейшей победы на конкурсе). И на десерт – сроки оставались все теми же. Наше сотрудничество закончилось плачевно: я вынужден был отказаться от дальнейших совместных планов, хотя заказчик пытался «умаслить» меня обещаниями дальнейших заказов. При этом, денег за незавершенную работу я был вынужден не брать.

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

А дальше я бы, как раз, хотел разобрать все те ошибки, которые я допустил, изначально не придавая большого значения написанию техзадания.

Те самые плюсы техзаданий, которые очевидны


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

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

Техзадание может должно быть частью маркетинга. Я опасаюсь слова «маркетинг». И особенно забавно слышать о маркетинге, когда речь идет об одиноких фрилансерах, но в данном контексте считаю его наиболее уместным и поэтому разовью свою мысль.

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

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

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

Техзадание помогает «держать марку». Этот тезис можно было бы отнести к пункту о маркетинге или о рекламе, но я хочу рассмотреть его отдельно.

Представьте – вы ничего не понимающий в вопросах (к примеру, сайтостроения) человек, у которого есть какой-то бизнес, и Вы не готовы тратить уйму времени на то, чтобы въехать в чуждые и неинтересные для вас вопросы. Вам просто нужен сайт. Обозначая фрилансеру отвлеченное видение будущего сайта, Вы получаете четкое, подробное и приятное техзадание на красивом бланке (чуть не сказал фирменном). Да ко всему прочему – предоставляющий это техзадание специалист охотно и аргументировано дает советы, общается и вообще – всесторонне открыт. Я думаю, технологии общения в этом вопросе играют далеко не последнюю роль.

Техзадание победителя – каким оно должно быть


Я думаю, что все разработчики в ходе своего профессионального развития накапливают некий инструментарий, который в дальнейшем помогает им сокращать сроки разработки (в редких случаях повышать качество получаемых на выходе продуктов). Поэтому, если Вы решили работать по техзаданию, оно должно тоже иметь некий шаблон, содержащий неотъемлемые атрибуты (помимо, непосредственного описания задачи).

  • Дата и подпись сторон
  • Контактная информация исполнителя
  • Название (пусть даже рабочее) проекта или продукта
  • Оглавление
  • Цели и задачи проекта (если это проект) или продукта (если это продукт)
  • Технические нюансы реализации, жесткие и конкретные требования к платформе, на которой проект или продукт должен быть реализован
  • Сроки выполнения
  • Стоимость
  • Пункт об отчуждении прав на конечный результат деятельности в пользу заказчика (пункт довольно редкий в нашей стране)


Заключение


Безусловно, все вышеописанное ставит под сомнение термин «техническое задание». Быть может, стоит воспользоваться терминами «техническое предложение», «описание», «соглашение» и так далее… но в любом случае – смысл публикации совершенно в другом. Желаю вам приятной, прибыльной и продуктивной работы!

UPD: спасибо моему партнеру Александру Афанасьеву, которого я считаю соавтором этой статьи.
+53
9 декабря 2010, 22:19
98
Alexeyco 2,9

комментарии (53)

+2
bigazzzz #
Очень знакомо. Именно после схожего случая тоже стал запрашивать техзадание или готовить его сам.
0
Vladson #
Я сам сторонник полноценного ТЗ во всех случаях (даже если в нём будет написано только «делай что угодно как хочешь») но…

Вы тоже говорите что «техническое задание» это просто ОЧЕНЬ необходимая часть, и тут-же пишете что до встречи с серьёзным заказом, вы прекрасно обходились без оного.
Так может не всё так категорично?
0
Alexeyco #
Я пишу, что понял, насколько это серьезный момент после того, как меня решил привлечь очень серьезный заказчик
+3
s0rr0w #
Я перефразирую. Отсутствие внятной модели поведения с крупными заказчиками привело вас к мысли, что положение спасет техзадание. Но наличие техзадания не решает основную проблему — неумение себя продать, хоть с ТЗ, хоть без.

Если заказчик хитровжареный, то в вашем замечательном ТЗ все равно будут пункты по типу данного: «Журналирование и вывод событий, которые происходят в системе». Вы будете думать, что это банальные логи, а заказчик будет вам доказывать, что под словом «вывод» он имел в виду систему построения отчетности со архивом отчетов, рассылкой их на почту, с графиками и прочей лабуденью.

А подпись ваша стоит под документом, а денег получить хочется…
+1
Alexeyco #
Опять же — в таком случае любое сотрудничество может быть прервано в одностороннем порядке и больше уже никогда не начато. И я со своей стороны буду прав. Я не могу уместить сразу все нюансы общения с заказчиком в крохотную (ха-ха) статью. Но на стадии общения я обычно оглашаю, что любое желание поиграть со мной будет пресечено.

Но чтобы быть еще более правым обычно ключевой функционал я прототипирую прямо в тз. Пусть, примитивно, зато наглядно.
0
s0rr0w #
Поиграть вами? Вы можете, сами того не желая, поставить подпись под неоднозначными моментами. И тогда у вас будет выбор следующий: сделать так как хочет заказчик и получить деньги, или отказаться от проекта и не получить деньги.

Лично я видел ТЗ, в котором в третьесортном перечислении, где-то в середине огромного ТЗ, стоял пункт «Разработка документооборота».
0
un1t #
В ТЗ обязательно нужно писать «весь функционал явно не прописанный в ТЗ реализуется на усмотрение разработчика». Тогда заказчик не сможет сказать, что про словом «поиск» в ТЗ он имел ввиду аналог гугла.
0
fenrirgray #
Вполне категорично т.к. абсолютно аналогичные проблемы бывают с совершенно мелкими и несерьезными заказчиками.

0
Alexeyco #
Совершенно крупные и серьезные заказчики обычно делают ТЗ сами, да. Обычно. Зависит от представителя заказчика. Бывает, что представителем выступает довольно молодой человек, который позавчера стал выпускником института.
0
crash #
как разруливаете ситуацию, когда в середине разработки у заказчика внезапно появляются светлые идеи, и они на самом деле вполне реализуемы, но +время и деньги, редактируете ТЗ и меняете условия, или оставляете уже на следующую версию?
0
Alexeyco #
Дело в том, что опыт работы в несколько этапов у нас — довольно редкий случай. Я считаю, что здесь есть много нюансов. Если нам реализация светлой идеи не принесет особенных трудозатрат, но отнимет время, то мы сообщаем (обязательно электронкой, а потом подтверждаем прочтение по телефону) заказчику о том, что на это уйдет (например) еще день. Если это существенная часть функционала или эта доработка противоречит уже одобренному ТЗ (или речь идет об изменении дизайна), то тут есть несколько вариантов:

1. если идея не очень светлая, всегда можно попробовать переубедить заказчика, не нанеся при этом вред его самолюбию
2. пересмотреть сроки и стоимость работ
3. отложить работы, как вы и говорите… например, с формулировкой «давайте пока так, а потом посмотрим, может это будет ненужная трата времени и денег».

Короче говоря, не надо стесняться открыто контактировать с заказчиком и это принесет свои плоды. Я не знаю как у кого, но на моей памяти откровенные дубы (в плане общения я имею в виду) среди заказчиков не попадались. Есть определенные нюансы, конечно… но, как говорится, это же бизнес — платить (даже по своим) счетам никто не любит.
0
kSx #
Если на это требуется значительное время, то: «Отлично, давайте запишем ваши идеи и составим из них следующее задание». Если нужно сейчас — то за отдельные деньги, пусть незначительные по сравнению со стоимостью проекта, но которые тоже сейчас. На разговоры типа «да тут же немного» лучше не поддаваться, ну если только когда вы действительно хотите сделать такой подарок.
Но это всё лично мой опыт, которого пока не очень много.
0
leenq #
Хотел бы добавить: стоимость «светлых идей» зачастую очень зависит от момента, в который они решили появиться. Поэтому еще на момент общения с заказчиком стоит донести до него одну простую мысль: стоимость дополнительной фичи на начальной стадии проекта может быть нулевой, а к концу проекта та же «светлая идея» может превратиться в двойную стоимость всего проекта в целом, поскольку переделывание, казалось бы, маленькой фишечки, будет сходно созданию проекта с нуля.

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

А далее уже можно делать дополнения к ТЗ, где корректировать задачи, сроки и финальную стоимость.
+4
Bartez #
Иногда попадаются такие ТЗ, в которых на всю страницу детально расписан простой функционал, а где-то на странице 36, в самом низу одним предложением будет требование, которое увеличит трудозатраты на неделю.
+1
Alexeyco #
Поэтому я пишу, что «Техзадание должен писать либо разработчик, либо разработчик вместе с заказчиком»
0
s0rr0w #
Это не избавляет вас от проблем несовпадения терминологии и разнице в знаниях в предметной области.
0
Alexeyco #
Когда вы пишете задание, заказчик, видя ваш серьезный подход, старается вникнуть в эту терминологию. Обычно с первого раза все правильно описать не получается. Если, скажем, это не относительно типовой проект «сайт для автомастерской» где при всем желании, сложного скорее всего ничего нет.
0
s0rr0w #
Это не заказчику надо вникать в вашу терминологию, а вам в его. :)
0
Alexeyco #
Если оба ориентированы на успех — вникнут оба. Если только я — значит только я.
0
Quiz #
Не могли бы Вы дать почитать грамотно составленное техническое задание?
Реальное, а не пустую рыбу или шаблон.
Потому что очень часто приходится описывать те или иные задачу в процессе разработки и каждый раз получается либо «не то», либо «совсем не то», либо просто «криво».
Очень хотелось бы почитать и поучиться на грамотном примере.
0
Alexeyco #
Я дам почитать гораздо больше: я пообщался со своим партнером и мы решили выложить не просто сухое, готовое ТЗ, а описать принципы и подходы, которые мы используем для того, чтобы ТЗ максимально соответствовало всем тем принципам, которые я описал в статье, и было эффективно.
0
GRuff #
по-моему, если речь идет о разработке, то надо оперировать терминами разработчиков
0
s0rr0w #
И как вы себе это представляете? Вот вам заказчик выдаст фразу, что требования к финансовым и имущественным поручителям разные, а вы ему в ответ «М-м-м-м-м… Э-э-э-э...., для отображения временных данных мы будем использовать jQuery!». Обалдеть поговорили
0
Alexeyco #
Я думаю, бывают различные случаи. Если заказчика интересует конечный результат — это одно, а если его интересует еще и способ реализации, то можно и углубиться в терминологию. Просто статья охватила тему, в которой есть конкретика (немного) и куча-куча-куча контекстных нюансов, присущих конкретно этому разработчики и конкретно этому заказчику. Короче, надо эксплуатировать здравый смысл.
0
funca #
К слову, ГОСТ 34.601-90 «техническое задание» идет аж 3-м пунктом. До ТЗ есть ещё 2 равноценные стадии: «формирование требований» и «разработка концепции», а после — «эскизный проект», «технический проект» и т.п. ТЗ составляется совместно с заказчиком. А в 34.003-90 перечисляются отдельные компоненты. Например (2.9) как раз призвано решать проблему с лексиконом.

Нет, я не предлагаю оформлять отношения с заказчиком по ГОСТам. Просто хочу отметить тот факт, что на ТЗ свет клином не сошёлся. В простых случаях, отдельные стадии создания можно совмещать или даже пропускать целиком. Но чем крупнее проект, тем лучше обращать внимание на чужой опыт. Все-таки автоматизированные системы, тоже сложные штуки, и закономерно полагать, что разработчики на все эти грабли уже наступали, и выработали какую-то стратегию для достижения результата.
0
Alexeyco #
Нет, я не предлагаю оформлять отношения с заказчиком по ГОСТам.
Между прочим, это вы зря. После того, как я «созрел» для того, чтобы работать по плану везде и всегда — и начал это делать, я решил прошерстить интернеты и всякие нормативы на предмет чего-то полезного в этих вопросах. И обнаружил, что ГОСТы — довольно грамотно многие моменты, до которых я доходил самостоятельно, описывают. Безусловно, фанатизма не надо, но иметь представление о стандартах просто необходимо, я считаю.

Кстати, среди заказчиков не редкость люди, котрые по ГОСТам работали и работают. И это их подкупает обычно.
0
Vivad #
Так же всегда работаю по тех заданию. Обычно пишу за заказчика сам и даю на утверждение, так ли я его понял и т.п. И вот недавно наступил на «невидимые» грабли)
Подумал «Чего это я зазря трачу бесплатно по несколько часов на составление ТЗ?» и решил: Либо минимальная предоплата вперёд, после чего написание ТЗ и корректировка стоимости, либо оплата за составление ТЗ.

И тут же получил удар в лоб) Заказчик ушел к другому исполнителю, хотя его оценка работ была выше.

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

0
Robotex #
Хотелось бы взглянуть на пример готового ТЗ, чтобы знать как оно хоть должно выглядеть.
+3
chupkb #
Это называется взросление. Добро пожаловать в реальность :)
0
440hz #
Я бы еще очень рекомендовал в ТЗ указывать расчетную нагрузку на сервис/сайт. Общую. Например 100000 хитов в сутки. 100 пользователей онлайн. Пиковую. 300 хитов в секунду. 500 пользователей онлайн. Объемы по трафику/БД/контенту. Размеры каналов на хостингах и прочие характеристики, непонятные заказчику, но сильно влияющие на подходы к разработке и конечному результату.

0
Alexeyco #
Никогда не сталкивался с подобной необходимостью. Это что — своеобразная защищалочка от «у меня тут сайт погас»?
0
440hz #
по сути да. четко оговоренные требования к железу, системе, нагрузке даст понимание что и как должно жить.

А то выложат сайт на какой-нить говнохостинг, где рядом еще 100 сайтов крутиться и претензии «сайт долго грузится или не открывается» будут к вам, а то, что там сосед поимел общую БД или занял весь проц никого не волнует.
+1
un1t #
Да такое бывает. На последнем этапе работ я узнал что в базе проекта может быть не несколько сотен записей, а 20 млн. Такие вещи нужно прописывать.
+1
Alexeyco #
Вот-вот )))) было забавно когда я узнал, что в mysql-таблицу (не базу, а всего лишь в таблицу) в день планируется писать 4 гига логов )))) это как раз было в соответствующей описанной мной ситуации
+1
bifidokk #
у меня после 2ух лет фриланса только одно мнение «нельзя, нельзя и еще раз нельзя браться за заказ без конкретного ТЗ». всякие уловки типа поэтапной оплаты, предоплаты и т.д. конечно мотивируют заказчика сотрудничать и более серьезно относиться к любым видам изменений, но это все равно иногда играет не на руку исполнителю.
+1
Alexeyco #
Верно — каждый первый поняв, что можно покрутить-повертеть ситуацию в свое русло пытается это сделать. Благо в моем случае я сразу обозначил, что как только ситуация начнет быть мне невыгодной, я умою руки. Поэтому рабовладельцами они так и не стали. Конечно, это стоило мне недополученных денег. Но здоровье и честь дороже.
+1
dmodeus #
Можно, в случае, если договорились на почасовую оплату труда. Тогда любо согласование и изменение за счет заказчика. Правда редко встречается в российских реалиях, больше на западе.
0
Alexeyco #
Дело в том, что почасовая оплата требует участия заказчика в разработке. А на это вряд ли кто может пойти. Это, фактически, найм себя в команду разработчиков ))) Я думаю, если предложить это кому-то из моих заказчиков, их реакцию можно будет снимать на камеру и выкладывать на ютуб.
0
Albert_73 #
Мне кажется, что в описанной ситуации гораздо важнее не ТЗ, а интеграция исполнителя в структуры заказчика. Очевидно, что продолжительные проекты не возможно представить кроме как на салфетках. Только после двух или более итерраций возможно написание ТЗ в прошедшем времени.

В подобной ситуации важно объяснить заказчику что такое разработка «по живому». Договорится о повременном а не аккордном финансировании. Определить центры управления в структуре заказчика — тех кто платит и принимает решения.

ТЗ в подобном проекте, как мне кажется, это отмазка ака дисклаймер и не более. С точки зрения безопасности оно необходимо более чем с точки зрения достижения цели.
0
Albert_73 #
В не айти бизнесе есть договор и контракт. В договоре обычно сумму и содержание сделки указывают в тексте (читай ТЗ) а в контрактах сумма и содержание определяется как сумма всех приложений и дополнений. Договор это обычно краткосрочные обязательства — например одна поставка, а контракт может быть на десятки лет и в течение этого времени и условия и содержание может менятся как угодно, если пративное не оговорено в теле контракта.

Длительный проект всё-же стоит реализовать по контрактному типу. Это честнее и вернее для достижения цели.
0
Alexeyco #
Я никогда не думал о повременной оплате. Но полагаю, что если бы в данном случае я поставил вопрос так — заказчик потребовал бы от меня четких сроков выполнения и работу на его территории. Опять же — почему вы думаете, что невозможно прототипировать весь интерфейс и описать его? Я не представляю о чем вы говорите фразой «длительный проект», но думаю вы сильно переоцениваете большинство проектов, которые я реализую.
0
feligz #
Для больших проектов тех. задание это аксиома. Так же каждому разработчику все же нужно ознакомиться с agile разработкой, которая по сути сейчас является стандартом в разработке крупных систем. Основа agile это разработка по этапам, лист приоритетов по задачам и прочие вещи, значительно облегчающие разработку крупного проекта.
По сути статьи, да для мелких заданий можно делать простенькое тех. задание или просто отмечать основные детали, а вот при разработке крупных проектов нужно уже знать и применять методики управления, такие как agile например. Видимо для автора это еще один этап в проф. карьере :) а новичкам еще раз напоминание, что просто кодить можно до какого то этапа.
Так же можно отметить, что заказчик конечно неправильно с вами работал. Должен быть представитель заказчика и он должен быть один. Именно то лицо, которое выражает мнение всего отдела, главы отдела, замов и тд. Именно он составляет список приоритетных задач и решает, какую задачу выполнять, а какую нет. То есть ошибки в менеджменте у заказчика явно на лицо.
0
Alexeyco #
Все мы растем. По поводу agile — у меня уже куплена «зеленая доска» над рабочим местом (уж простите, люблю все физическое, а не виртуальное). Т.к. у меня сейчас только один по-сути долго играющий проект (где я сам заказчик).
0
ksusha #
Не совсем согласна с абзацем про маркетинг. Я так понимаю, Вы предлагаете составлять техзадание для заказчика еще до того, как он выбрал исполнителя. Это неверно. Составление техзадания — достаточно трудозатратная операция, требующая тщательной проработки и изучения всех сторон поставленной задачи, и должно включаться в стоимость работ. По моему мнению, для обоснования стоимости проекта достаточно грамотного коммерческого предложения, тем более что заказчик на этапе выбора исполнителя вряд ли будет вчитываться в детали.

Описанная Вами схема похожа на кидалово: это вы как бы выполнили часть работ, а заказчик бегает с вашим прототипом по другим исполнителям и ищет, кто ему дешевле все доделает, при этом не заплатив вам ни копейки.
0
Alexeyco #
Вероятно этот пункт я внес потому, что 90% достающихся мне проектов — довольно типовые с точки зрения реализации и подхода.
0
dslf #
Спешу заметить — дело здесь не в наличии/отсутсвии ТЗ, а в неправильной организации того самого общения, о котором Вы упомянули вначале.
> Уже тогда я четко понимал важность технологий общения в бизнесе.

За время, которое я работаю в сфере разработки ПО я понял одно: заказчик/начальник не знает чего он хочет, из него это надо вытягивать клещами. При этом все принятые решения следует записывать хотя бы в свободном виде. По сути, это называется совместное составление ТЗ. Кстати, очень важно убедить заказчика не скрывать информацию, которую он считает маловажной: лучше потратить некоторое время на фильтрацию информации от заказчика, чем проектировать и разрабатывать систему не представляя, как она будет использоваться и для чего она вообще нужна.
0
Alexeyco #
Ну да. Подчас приходится сближаться с заказчиком слишком близко (я вообще не «рубаха-парень»). Поэтому, вероятно, в больших студиях и работает такой большой штат менеджеров ))) а мы фрилансеры на все руки мастера.
0
Derailed #
Хорошая статья, автору респект. От себя хочу добавить к плюсам техзадания — оно помогает заказчику и исполнителю лучше понять, что каждый друг от друга ожидает получить, и каким образом это может быть выполнено. В процессе выработки и согласования техзадания заказчик и исполнитель ищут «золотую середину», компромисс, который удовлетворил бы каждого. Поэтому техзадание должно быть составлено (хотя бы в минимальном объеме) и утверждено всегда, даже когда работа кажется совсем простой, и даже если заказчик и исполнитель друг другу полностью доверяют.
0
Alexeyco #
Ключевое слово — компромисс. Я вообще противник выражения «клиент всегда прав». Как я читал у одного врача, «клиент всегда прав когда хочет выздороветь — но не прав когда дает ему советы». Так и здесь — надо помогать разобраться. Если заказчик очень категоричен и выступает с позиции своей непогрешимости на том лишь основании, что он платит деньги, я считаю, такой заказ лучше не брать (конечно, с оговоркой на бюджет).
0
Denisio #
Последнее моё техзадание суммарно занимало больше 100 страниц, на 2-х летний проект. И все равно это не помогло на 100%. Вышли за сроки по нескольким моментам. Но без ТЗ я даже примерно не могу сказать сколько это бы заняло. Помимо ТЗ ещё масса факторов влияет — заинтересованность заказчика, наличие со стороны заказчика человека-профессионала в данной области (=менеджер проекта заказчика), его открытость, заинтересованность в результате и т.д. Масса факторов вобщем.
0
funca #
Алексей, хорошая статья. Только не понял — в чем Вы видите основную цель составления ТЗ (неужели — маркетинг)?
0
Alexeyco #
Не совсем. В работе я вынужден привлекать сторонних разработчиков к выполнению тех или иных функций (дизайн, например… или фишки, реализованные на клиенте — жабаскрипт, например, который я считаю может сильно облегчить различные моменты в работе с сайтом и т.д.) Так что ИЗ — это своеобразный «дробовик», которым я стреляю по туче воробьев. Но маркетинг, конечно (этого у вас не отнять) серьезная часть того, зачем я пишу ТЗ.
0
twdragon #
Отличный пост, я уже на собственном опыте проверил большинство высказанного. Если техзадание на проект написано без участия ведущего «реализера» — можно сказать, что проекту если и не хана, то очень близко к тому. Насчет рекламы — не проверял, место работы к этому не располагает. Могу лишь сказать, что отношение к техзаданию как к маловажной детали со стороны начальства уже не раз уводило от меня подающих надежды людей. Правда, и сам однажды поддался соблазну спустить техзадание на тормозах. Ибо команда была такая, от какой трудно ожидать сколько-нибудь серьезной работоспособности.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.