К примеру, обсудили, что на сайте или в приложении должна быть определённая форма для заявок, заказчик посчитал, что она должна валидироваться по всем полям, а программист, что раз явно клиент не написал, что нужна валидация, то он может делать на своё усмотрение, к примеру, сделав обязательным только поле телефона.
Толковый материал. Но еще есть проблема гарантийной поддержки продукта. Часто заказчик думает, что проект после запуска будет дорабатываться бесплатно. Это же поддержка, типа, а не новые фичи. Ну и собственно, сама поддержка и багфикс должен быть осуществлен бесплатно и через пару лет, даже если это проблема изменений АПИ операционной системы, а приложение до того работало стабильно.
Мы в договоре учитываем.
Может кому пригодится, а может кто посоветует, как улучшить:
2.5. Гарантийное обслуживание
2.5.1. Гарантийное обслуживание начинается с момента размещения сайта в сети Интернет на рабочей площадке и доменном имени. Срок гарантийного обслуживания составляет 6 (шесть) месяцев.
2.5.2. Гарантийное обслуживание включает исключительно устранение ошибок в разработанном Подрядчиком сайте, а также консультирование Заказчика по работе с сайтом в пределах 20 (двадцати) часов, суммарно, в течение гарантийного периода. Фактически затраченное на консультирование время устанавливает Подрядчик на основании табельного учета часов, отработанных каждым специалистом Подрядчика по данным работам.
2.5.3. При обнаружении ошибок в работе Сайта в течение гарантийного срока, Заказчик информирует об этом Подрядчика. Предварительно Заказчик обязан убедиться, что выявленная им ошибка действительно является качественной или количественной недоработкой и сослаться на соответствующие пункты Технического задания. После чего Подрядчик в течение трех рабочих дней производит их диагностику и/или устранение. В случае, если устранение ошибки потребует дополнительное время, срок гарантийного обслуживания продлевается на время, необходимое для ее устранения.
2.5.4. Подрядчик, получив от Заказчика уведомление (рекламацию, претензию) по недоработкам, обязуется в течение 5 (Пяти) рабочих дней рассмотреть требования Заказчика, провести диагностику проблемы, и предоставить письменный ответ в адрес Заказчика.
2.5.5. В случае признания требований Заказчика правомерными, Подрядчик своими силами и за свой счет устраняет допущенные по его вине недоработки в результатах работ, в сроки, установленные дополнительным соглашением Сторон.
2.5.6. В случае, если в ходе диагностики выявлено, что ошибка в работе сайта не является качественной или количественной недоработкой, Подрядчик выставляет Заказчику счет за ее диагностику и устранение по фактически затраченному времени по действующим тарифам Подрядчика на техническую поддержку – ___ рублей за 1 час работы специалиста. Фактически затраченное на диагностику и устранение время устанавливает Подрядчик на основании табельного учета часов, отработанных каждым специалистом Подрядчика по данным работам.
А меня вот ужасно бесят анкеты IT контор, которые собирают информацию о бизнесе под предлогом того, что мол мы так лучше поймем задачу. Вас сайт просят сделать, а вы пытаетесь скомуниздить всю подноготную.
А потом жалуетесь...
Самый сложный этап любой кастомной разработки - корректно перенести мысли из головы заказчика в голову исполнителя. По сути, задача программиста – реализовать ваши бизнес-процессы в виде работающего кода/продукта. А чтобы их реализовать – надо их досконально понять.
Нафиг никому не нужна ваша "информация о бизнесе" и "комуниздить подноготную" вне контекста решения задачи по разработке.
Все эти проблемы вам приходится решать в силу отсутствия конкуренции. На самом деле этих проблем нет, когда есть рынок. А когда его нет - нет и пилюли волшебной.
Что такое программист вообще? Примеры кейсов из статьи очень забавны.
И вот пример реальной задачи для программирования:
"Имеется 20 больших файлов (по гигабайту). В каждом файле записаны 32-битные числа в неубывающем порядке. Нужно найти медиану множества всех этих чисел. В распоряжении имеется только компьютер с 4 килобайтами свободной оперативной памяти".
И задача есть, верно? И четко сформулирована. И не имеет она ничего общего с головной болью статьи. Чтобы ее решить, нужно сначала знать, что такое медиана, потом множество и после этого запихнуть решение внутрь ограничений о 4 кб. Вот о чем программрование.
У Вас в ТЗ нет требований к вводу данных и как вывести результат, вот о чем статья)
Только человек, которого несколько раз обманывали программисты (первый раз - в 1994 году, последний - в 2013 году) может понять некоторые пункты статьи господина Гордиенко. Я понимаю.
Сам господин Гордиенко сейчас борется на форумах с одним из "обманутых заказчиков", так что многое из его статьи "написано кровью проваленных проектов". (в смысле "не стреляйте в пианиста, он так играет").
Открыть проект готовых технических заданий - отличная идея, которая сэкономит миллионы рублей заказчиков и миллиарды нервных клеток программистов.