Читать книгу Откровения модераторши - Анна Федорова - Страница 10
Про профессию
Мастер-класс
ОглавлениеКак я пишу техническое задание? Беру исходный материал и отрезаю все лишнее.
Требования, как правило, принимают в течение своей жизни следующие состояния:
1. понятны клиенту;
2. понятны мне;
3. понятны разработчику.
ТЗ появляется между вторым и третьим. То, что происходит между первым и вторым, называется анализ.
Выжимать исходный материал нужно, как свежевыстиранную вещь, до тех пор, пока в нем почти не останется воды. Но немного надо оставить – иначе разработчики поперхнутся.
Как я обрабатываю информацию. Сначала группирую по принципу «белое к белому», «синее к синему». Таким образом получаю несколько больших групп, объединяющих требования к крупным частям системы. Внутри, как правило, элементы связаны сильнее, чем с элементами других групп. Вам все это должно быть знакомо из курса объектно-ориентированного программирования. Модульность.
Теперь выделяем кандидатов в требования. Находим описания похожих функций и детализируем их до такого состояния, когда становится понятно, что является общим случаем, что – частным. Если не хватает описаний каких-то частных случаев, уточняем их у клиента. Последовательно проходим все сценарии развития событий. Устраняем дубликаты.
Готовые болванки начинаем обтачивать напильником. Добиваемся непротиворечивости формулировок и ситуации, когда каждое требование упоминается в ТЗ только один раз.
Когда все лишнее отпилили, можно заняться дизайном. Я строю ТЗ следующим образом: сначала очень сжатое описание всех функций, а потом по разделу на каждую группу родственных функций, где они описываются детально. Важно найти базовый принцип, на основании которого устанавливается родство. Скажем, если некая система печатает отчеты в файлы MS Excel, получает данные из системы 1С и отправляет смс-сообщения, то все три функции будут являться частными случаями обмена с внешними системами. Объединяет их как минимум необходимость шлюза и согласованности форматов между обменивающимися системами. Аналогично все требования к отображаемым меню и экранным формам объединяются в раздел, где описываются требования к дизайну.