Техническото задание описва какво се разработва, за кого, как се проверява и какво не влиза в проекта. Пише се преди договора и се подписва като приложение към него.
По българския Закон за задълженията и договорите (ЗЗД) клиентът е длъжен да приеме работата, извършена „съгласно договора“ (чл. 264 ЗЗД). Заданието е документът, по който се вижда дали работата е съгласно договора.
Без задание агенцията и клиентът спорят за обхвата при всяко приемане. Със задание спорът се свежда до въпроса дали критерият е изпълнен.
Какво трябва да съдържа техническото задание?
| Раздел | Какво пише в него | Защо е нужно |
|---|---|---|
| Цел | Бизнес задачата и критерият за успех | Рамка за всички решения после |
| Потребители и сценарии | Роли и какво прави всяка | Основа за функциите |
| Функции | Списък с критерии за приемане | По тях се приема работата |
| Интеграции и данни | Външни системи, API, миграция | Най-честият източник на закъснения |
| Нефункционални изисквания | Скорост, натоварване, сигурност, браузъри | Иначе се подразбират различно |
| Извън обхвата | Какво не правите | Спира „а това не влиза ли?“ |
| Промени и приемане | Процедура и срокове | Превръща спора в процедура |
Как се пише техническо задание стъпка по стъпка?
1. Запишете целта
Две-три изречения: каква бизнес задача решава системата и как клиентът ще разбере, че проектът е успешен. Например: „Клиентите сами записват час за сервиз онлайн. Телефонните обаждания за записване намаляват наполовина.“
2. Опишете потребителите и сценариите
Изброете ролите: посетител, регистриран клиент, администратор, служител. За всяка роля основните сценарии във формата „кой, какво прави, какъв резултат получава“.
3. Изброете функциите с критерии за приемане
Всяка функция получава проверим критерий. „Бързо търсене“ не е критерий.
- Лошо: „Бързо търсене на продукти.“
- Добре: „Търсене по име и код на продукт. Резултатите се показват до 1 секунда при 10 000 продукта. Търсенето не прави разлика между главни и малки букви.“
4. Опишете интеграциите и данните
За всяка външна система: кой е собственикът, има ли документация на API, кой дава тестов достъп и до кога. За миграцията: откъде идват данните, в какъв формат, кой ги почиства.
5. Запишете нефункционалните изисквания
- брой едновременни потребители;
- време за отговор на основните страници;
- поддържани браузъри и устройства;
- хостинг и кой го плаща;
- изисквания за сигурност и резервни копия;
- какви лични данни се обработват и къде се пазят.
Ако системата обработва лични данни на клиентите на клиента, агенцията вероятно е обработващ по GDPR. Тогава е нужен и отделен договор: GDPR за агенции.
6. Изброете какво не влиза в проекта
Отделен раздел. Типични примери: съдържание и текстове, преводи, SEO, поддръжка след гаранцията, обучение на служители, интеграции, които не са изброени по-горе.
7. Опишете реда за промени и приемане
- Клиентът заявява промяната писмено.
- Агенцията оценява часовете и новия срок до уговорен брой работни дни.
- Клиентът одобрява писмено. Без одобрение промяната не се прави.
- При приемането клиентът проверява по критериите и подписва протокол или дава писмени забележки в уговорен срок.
8. Подпишете заданието като приложение към договора
Задание, подписано отделно и без препратка в договора, лесно се оспорва. Като приложение то става част от договора за изработка. Подробно: договор за изработка.
Как заданието работи при приемането?
ЗЗД дава ясни правила, които заданието прави приложими:
- Клиентът може да проверява работата по всяко време, ако не пречи на изпълнението (чл. 262, ал. 1 ЗЗД).
- При приемането клиентът трябва да прегледа работата и да направи възраженията си. Скритите недостатъци съобщава веднага след откриването им. Ако не направи възражения, работата се смята за приета (чл. 264 ЗЗД).
- Ако работата има недостатъци или се отклонява от поръчката, клиентът може да иска поправка без заплащане, заплащане на разходите за поправка или намаление на възнаграждението (чл. 265 ЗЗД).
Всяко от тези правила препраща към „поръчката“ и „договора“. Ако поръчката е неясна, неясни са и правата на двете страни.
Какво общо има заданието с кода на агенцията?
Заданието е мястото, където се вижда кое се пише специално за клиента и кое е съществуващ код на агенцията. Запишете в него:
- списък на готовите модули, библиотеки и шаблони на агенцията, които влизат в проекта;
- че те остават на агенцията;
- че клиентът получава лиценз да ги използва в системата.
Така след проекта агенцията може да използва тези части отново и да ги лицензира на други. Как да уредите правата: чий е кодът. Колко може да струва този код: колко струва кодът.