11.Назначение и структура технического задания на разработку ИС
Техническое задание – документ, определяющий цели, требования и основные исходные данные, необходимые для разработки ИС.
ТЗ на ИС является основным документом, определяющим требования и порядок создания (развития, модернизации) АС, в соответствии с которым проводится разработка АС и ее приемка при вводе в действие
Структура тех. задания :
1. Общие сведения
2. Назначение и цели создания (развития) системы
3. Характеристика объектов автоматизации
4. Требования к системе
Требования к системе в целом:
Требования к функциям (по подсистемам):
Требования к видам обеспечения:
6. Порядок контроля и приемки системы
7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
8. Требования к документированию
9. Источники разработки
Структура тех. задания:
1. Общие сведения
- полное наименование системы и ее условное обозначение
- шифр темы или шифр (номер) договора;
- наименование предприятий разработчика и заказчика системы, их реквизиты
- перечень документов, на основании которых создается ИС
- плановые сроки начала и окончания работ
- сведения об источниках и порядке финансирования работ
- порядок оформления и предъявления заказчику результатов работ по созданию системы, ее частей и отдельных средств
2. Назначение и цели создания (развития) системы
Как составить задание на проектирование? Что из себя представляет задание? Выпуск 4
- вид автоматизируемой деятельности
- перечень объектов, на которых предполагается использование системы
- наименования и требуемые значения технических, технологических, производственно-экономических и др. показателей объекта, которые должны быть достигнуты при внедрении ИС
3. Характеристика объектов автоматизации
- краткие сведения об объекте автоматизации
- сведения об условиях эксплуатации и характеристиках окружающей среды
4. Требования к системе
Требования к системе в целом:
· требования к структуре и функционированию системы (перечень подсистем, уровни иерархии, степень централизации, способы информационного обмена, режимы функционирования, взаимодействие со смежными системами, перспективы развития системы)
· требования к персоналу (численность пользователей, квалификация, режим работы, порядок подготовки)
· показатели назначения (степень приспособляемости системы к изменениям процессов управления и значений параметров)
· требования к надежности, безопасности, эргономике, транспортабельности, эксплуатации, техническому обслуживанию и ремонту, защите и сохранности информации, защите от внешних воздействий, к патентной чистоте, по стандартизации и унификации
Требования к функциям (по подсистемам):
· перечень подлежащих автоматизации задач
· временной регламент реализации каждой функции
Что лучше: Техническое Задание, Прототип или разработка Без Технического Задания
· требования к качеству реализации каждой функции, к форме представления выходной информации, характеристики точности, достоверности выдачи результатов
· перечень и критерии отказов
Требования к видам обеспечения:
· математическому (состав и область применения мат. моделей и методов, типовых и разрабатываемых алгоритмов)
· информационному (состав, структура и организация данных, обмен данными между компонентами системы, информационная совместимость со смежными системами, используемые классификаторы, СУБД, контроль данных и ведение информационных массивов, процедуры придания юридической силы выходным документам)
· лингвистическому (языки программирования, языки взаимодействия пользователей с системой, системы кодирования, языки ввода- вывода)
· программному (независимость программных средств от платформы, качество программных средств и способы его контроля, использование фондов алгоритмов и программ)
· организационному (структура и функции эксплуатирующих подразделений, защита от ошибочных действий персонала)
· методическому (состав нормативно-технической документации)
- перечень стадий и этапов работ
- сроки исполнения
- состав организаций — исполнителей работ
- вид и порядок экспертизы технической документации
- программа обеспечения надежности
- программа метрологического обеспечения
6. Порядок контроля и приемки системы
- виды, состав, объем и методы испытаний системы
- общие требования к приемке работ по стадиям
- статус приемной комиссии
7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
Источник: mei06.narod.ru
Разработка технического задания. Разработка технического задания на создание ИС. Источники информации для формирования технического задания. Примеры заполнения разделов документа
Требование — это условие или возможность, которой должна соответствовать система. Жизненно важной частью проектирования ИС является формирование требований к создаваемому решению, т.е. разработка технического задания.
Требования отражают потребности достаточно широкой аудитории (заинтересованных сторон, будущих пользователей, заказчиков ИТ — решения и пр.), на удовлетворение которых направлен проект. Однако требования обычно претерпевают существенные изменения по мере реализации проекта: дополняются, модифицируются, сокращаются.
Состав процедур управления требованиями:
- «Анализ проблем» — разработка и согласование правильного описания проблемы, решить которую призвана новая система.
- «Выявление потребностей пользователей» — сбор информации о действительных потребностях пользователей создаваемого решения и других заинтересованных лиц; идентификация функций системы.
- «Определение системы» — преобразование понимания проблемы и потребностей пользователя в обобщенное описание системы, которая будет удовлетворять эти потребности.
- «Управление масштабом» — согласование определения системы и ограничений проекта.
- «Уточнение определения системы» — разработка детальных требований к системе.
- «Построение правильной системы» — методики верификации создаваемого ИТ -решения и управления изменениями.
Задачей процесса анализа проблем является осознание реальных проблем и потребностей заказчика, и предложение решения для удовлетворения этих потребностей.
Процесс включает в себя следующие этапы:
- Достижение соглашения об определении проблемы
- Выделение основных причин
- Выявление заинтересованных лиц и пользователей
- Определение границ системы, предлагаемой в качестве решения
- Выявление ограничений.
Выявление потребностей пользователей
Потребность — это отражение некоей личной, рабочей или бизнес-проблемы (или возможности), решение которой оправдывает замысел создания, приобретение или модернизацию системы.
Выявление потребностей сопряжено с выполнением следующих задач:
- интервьюирование и анкетирование;
- совещания, посвященные требованиям;
- мозговой штурм;
- применение «раскадровок»;
- анализ прецедентов;
- обыгрывание ролей;
- создание прототипов.
Определение системы
Требования к системе редко удаётся зафиксировать в едином документе. Причины кроются в сложности системы, в организации выявления и документирования требований, система может быть членом семейства родственных продуктов, проектируемая система может удовлетворять только часть выявленных требований и пр. Поэтому на этапе определения системы выбирается формат представления требований . Это может быть иерархическая структура, когда требования задаются для отдельных подсистем. Или один документ может содержать общие определения функций системы, другой — конкретные требования. (Первый обычно называется концепцией, второй — спецификацией требований).
Завершается этап разработкой и согласованием концепции системы, отражающей на верхнем уровне абстракции как проблему, так и решение.
Управление масштабом проекта
Управление масштабом проекта осуществляется с целью выявления реальных рамок проекта. При этом решаются следующие основные задачи:
- Оценка приоритетов требований.
- Оценка трудоёмкости выполнения требований.
- Оценка рисков.
С точки зрения приоритетов функции делятся на критические (без которых система не может существовать), важные и полезные. Трудоемкость и риск оценивается по шкале «низкий — средний — высокий». После этого применяются эвристические правила принятия решений по организации проекта. Например:
- если функция является критической и имеет высокий риск, то нужно реализовать эффективную стратегию снижения риска;
- если функция является важной и имеет высокий риск она может разрабатываться «по возможности» или переносится в следующую версию;
- если функция является полезной и имеет высокий риск, следует рассмотреть возможность её полного удаления.
Таким образом, появляется возможность объективно выделить те функции, которые, с одной стороны, необходимы заказчику, а с другой стороны, могут быть действительно реализованы в рамках проекта.
Уточнение определения системы
На этапе уточнения определения системы осуществляется детализация требований к технической реализации системы, т.е. выявляются разнообразные условия или возможности, которым должна соответствовать система. Таки образом, осуществляется переход от требований в области проблем (определённых на предыдущих этапах) к требованиям в области решений.
Требования в области решений делятся на две группы: функциональные требования и нефункциональные.
Функциональные требования определяют действия, которые должна быть способна выполнить система (без рассмотрения физических связей между её элементами). Они определяют внешнее поведение системы. Функциональные требования используются для выражения поведения системы путем задания предпосылок и возможностей, ожидаемых в качестве результата.
Нефункциональные требования описывают только атрибуты системы или среды. Нефункциональные требования служат для создания системы с приемлемым качеством.
Создание правильной системы
В процессе создания системы осуществляются два вида контроля её правильности: верификация и валидация .
Верификация — постоянно выполняемый процесс оценивания системы с целью определить, удовлетворяют ли результаты некой фазы условиям, наложенным в начале данной фазы, т.е. удовлетворяют ли они потребностям последующей деятельности.
Как минимум , подлежит верификации:
- Соответствие функций потребностям
- Соответствие функциям производных от них прецедентов и требований
- Полнота реализация прецедентов при проектировании
- Поддержка при проектировании функциональных и нефункциональных аспектов поведения системы
- Соответствие программного продукта результатам и целям проектирования
- Полнота покрытия тестами требований и прецедентов.
Валидация — процесс оценивания системы (или компонента) во время или по окончании процесса разработки с целью определить, удовлетворяет ли она указанным требованиям.
Сведения о проекте
Заказчик разработки | Федеральное агентство «Государственные Кадры». |
Структура: центральное агентство, региональные отделения. | |
Исполнитель разработки | ООО «Софт» |
Фрагмент иерархии функций агентства
Функции агентства (уровень 1)
- Учет персонала государственных организаций
- Управление персоналом
- Анализ
- Взаимодействие с населением
Учет персонала государственных организаций (уровень 2)
- Ведение НСИ.
- Сбор и хранение информации о структуре гос. организаций.
- Ведение архивов данных.
Управление персоналом (уровень 2)
- Планирование структуры организаций, штатных расписаний и кадровых политик .
- Расчет заработной платы.
- Оперативный учет движения кадров.
- Ведение административного документооборота по персоналу и учету труда, аттестации и определению потребностей (обучение, повышение квалификации) работников.
Анализ (уровень 2)
- Анализ кадровых процессов.
- Подготовка по запросам аналитических и статистических отчетов.
- Рекрутинг персонала на вакантные должности.
Планирование структуры организаций, штатных расписаний и кадровых политик (уровень 3)
- создание и ведение корпоративной структуры предприятия или холдинга любой сложности;
- поддержка множественных иерархических структур, объединяющих персонал: организационных, функциональных, проектных, бюджетных;
- ведение и планирование штатного расписания (ШР);
- т.п.
Поддержка множественных иерархических структур (уровень 4)
- Добавление новых типов структур;
- Редактирование существующих типов;
- Создание шаблонов структур;
- Хранение истории изменений;
15.1. Общие положения
- Полное наименование системы и ее условное обозначение;
- шифр темы или шифр (номер) договора;
- наименование предприятий (объединений) разработчика и заказчика (пользователя) системы и их реквизиты;
- перечень документов, на основании которых создается система, кем и когда утверждены эти документы;
- плановые сроки начала и окончания работы по созданию системы;
- сведения об источниках и порядке финансирования работ;
- порядок оформления и предъявления заказчику результатов работ по созданию системы (ее частей), по изготовлению и наладке отдельных средств (технических, программных, информационных) и программно-технических (программно-методических) комплексов системы;
- состав используемой нормативно-технической документации;
- определения, обозначения, сокращения
15.1.1. Полное наименование системы и ее условное обозначение
Полное наименование системы: Единая автоматизированная система учета кадров всех государственных предприятий «АС Кадры».
Краткое наименование системы: АС Кадры.
15.1.2. Шифр темы или шифр (номер) договора
Шифр темы: АИС-КА-ФА-07.
Номер контракта: №1/11-11-11-001 от 11.11.2008.
15.1.3. Наименование предприятий (объединений) разработчика и заказчика (пользователя) системы и их реквизиты
Заказчиком системы является Федеральное агентство «Государственные Кадры».
Адрес заказчика: 111000 г. Москва, Красная площадь, д.1.
Разработчиком системы является ООО «Софт».
Адрес разработчика: 222000 г. Москва, Лубянка, д.1.
15.1.4. Перечень документов, на основании которых создается система, кем и когда утверждены эти документы
Основанием для разработки АС «Кадры» являются следующие документы и нормативные акты:
- Государственный контракт №1/11-11-11-001 от 11.11.2008 года на выполнение работ по выполнению первого этапа работ по созданию Единой автоматизированной системы учета кадров всех государственных предприятий «АС Кадры»;
- Федеральный закон от 01 июля 2006 г. N 555-ФЗ «Управление государственными кадрами»;
- Постановление Правительства РФ от 01 января 2005 г. N 11.11 «О федеральной целевой программе «Электронные кадры (2002 — 2009 годы)»;
- Концепция информатизации федерального агентства «Государственные кадры» на 2000-2010 годы.
15.1.5. Плановые сроки начала и окончания работы по созданию системы
Плановый срок начала работ по созданию Единой автоматизированной системы учета кадров всех государственных предприятий «АС Кадры» — 01 апреля 2009 года.
Плановый срок окончания работ по созданию Единой автоматизированной системы учета кадров всех государственных предприятий «АС Кадры» — 15 декабря 2009 года.
15.1.6. Сведения об источниках и порядке финансирования работ
Источником финансирования является бюджет Российской Федерации.
Порядок финансирования определяется условиями Госконтракта.
15.1.7. Порядок оформления и предъявления заказчику результатов работ
Система передается в виде функционирующего комплекса на базе средств вычислительной техники Заказчика и Исполнителя в сроки, установленные Госконтрактом. Приемка системы осуществляется комиссией в составе уполномоченных представителей Заказчика и Исполнителя.
Порядок предъявления системы, ее испытаний и окончательной приемки определен в п.6 настоящего ТЗ. Совместно с предъявлением системы производится сдача разработанного Исполнителем комплекта документации согласно п.8 настоящего ТЗ.
15.1.8. Состав используемой нормативно-технической документации
При разработке автоматизированной системы и создании проектно-эксплуатационной документации Исполнитель должен руководствоваться требованиями следующих нормативных документов:
Источник: intuit.ru
Определение технического задания в строительстве
Техническое задание
Техни́ческое зада́ние (ТЗ, техзада́ние) — исходный документ для разработки и испытания интернет магазина.
Понятие ТЗ
Техническое задание — исходный документ на проектирование технического объекта (изделия). ТЗ устанавливает основное назначение разрабатываемого объекта, его технические характеристики, показатели качества и технико-экономические требования, предписание по выполнению необходимых стадий создания документации (конструкторской, технологической, программной и т. д.) и её состав, а также специальные требования.
Техническое задание также используется при создании творческого объекта ( видео ролик, статья, графическое изображение).
Можно сказать, что ТЗ — документ, в котором описывается, ЧТО нужно заказчику, в отличие от последующей проектной документации, в которой акцент переносится на ответ на вопрос, КАК этого достичь.
Техническое задание является юридическим документом — как приложение включается в договор между заказчиком и исполнителем на проведение проектных работ и является его основой: определяет порядок и условия работ, в том числе цель, задачи, принципы, ожидаемые результаты и сроки выполнения.
Все изменения, дополнения и уточнения формулировок ТЗ обязательно согласуются с заказчиком и им утверждаются. Это необходимо и потому, что в случае обнаружения в процессе решения проектной задачи неточностей или ошибочности исходных данных возникает необходимость определения степени вины каждой из сторон-участниц разработки, распределения понесенных в связи с этим убытков.
Место ТЗ в структуре проектирования
Проектирование — это процесс (разработки проекта), который обладает определённой структурой, то есть последовательностью и составом стадий и этапов, совокупностью процедур и привлекаемых технических средств, взаимодействием участников процесса.
В соответствии с Гражданским кодексом, проектирование — это один из видов подрядных работ, результатом которых является продукция (проект), то есть комплект проектной документации на другой продукт (объект проектирования). Проект предназначен для создания объекта, его эксплуатации, ремонта и ликвидации, а также для проверки или воспроизведения промежуточных и конечных решений, на основе которых этот объект был разработан.
Слово «проект» в области деятельности «управление проектами» применяется в значении «программа», «план действий», «комплекс работ».
Участников проектных работ разделяют на потребителей (заказчиков этих работ) и поставщиков (исполнителей этих работ, подрядчиков). Исполнителя-специалиста называют проектировщиком или разработчиком. Поставщиком, как и потребителем продукции, может быть организация (юридическое лицо) или конкретный человек (физическое лицо).
Объектом проектирования может быть материальное устройство, или выполнение работы, или оказание услуги, например, сооружение или промышленный комплекс, техническое устройство (прибор, машина, аппарат), система управления, информационная система, нормативная документация (например, стандарт) и т. д.
Стадии проектирования регламентированы стандартами. Это следующая последовательность:
- Техническое задание (по ГОСТ 2.103-68 к стадиям разработки не относится),
- Техническое предложение,
- Эскизный проект,
- Технический проект,
- Стадии рабочего проекта.
Решение любой задачи начинается с её осмысления и уточнения исходных данных. Те (технические) требования, которые выдаются заказчиком, формулируются на языке потребителя-неспециалиста и не всегда бывают технически четкими и исчерпывающими. Перевести требования на язык предметной области, сформулировать задачу максимально полно и грамотно, обосновать необходимость её решения, это и есть главная цель ТЗ, обязательный этап работы. Исполнитель выполняет его в тесном контакте с заказчиком. Фактически это означает, что работа исполнителя над проектом уже началась.
В машиностроении этот этап иногда называют внешним проектированием.
Как правило, ТЗ составляют на основе анализа результатов предварительных исследований, расчётов и моделирования.
Частные технические задания
В процессе проектирования сложного объекта (системы), требующего участия нескольких разработчиков, создаются частные технические задания на подсистемы.
В соответствии с полученными техническими требованиями разработчик системы формирует ТЗ и на стадии технического предложения выполняет декомпозицию объекта и подготавливает частные технические задания на подсистемы. После выполнения всех этапов технического предложения разработчик согласовывает и утверждает его у заказчика системы, при этом они совместно уточняют исходное ТЗ.
После утверждения технического предложения разработчик системы распределяет по соисполнителям частные ТЗ, на основании которых могут вырабатываться частные ТЗ для подсистем более низких уровней. Если подсистемы второго уровня отсутствуют, то техническое предложение для подсистем часто не выполняется, поскольку практически было завершено на уровне системы.
По завершении этапа распределения ТЗ разработчики системы и её подсистем приступают к выполнению стадии эскизного проекта. Проработка структуры на этой стадии ведется при тесном взаимодействии всех разработчиков. В процессе такой работы увязываются между собой отдельные части, согласовываются основные параметры проектируемого объекта. Качество проектирования зависит от широты видения разработчиком проблемы, то есть от его кругозора и способности учесть все связи рассматриваемого объекта, и наличия у него знаний, захватывающих смежные области. В процессе эскизного проектирования и согласования частных решений с общим возможна корректировка ТЗ.
После завершения эскизного проектирования, согласования и утверждения полученных технических решений у заказчика переходят к стадии технического проектирования. Здесь выполняется вся основная конструктивная проработка объекта и его частей. Возможно уточнение технических решений с возвратом на предыдущие стадии. Техническое проектирование ведется при тесном взаимодействии всех разработчиков.
Необходимость ТЗ
Исходное задание выдаётся заказчиком. Основными причинами, заставляющими его обратиться к разработчику, являются отсутствие у заказчика соответствующих специальных знаний либо ограниченность его ресурсов (нехватка времени на решение задачи, необходимого количества людей, оборудования).
Задание может быть чётко определено, например, когда всю работу ведет один человек, либо оно выдано авторитетным специалистом, либо не может быть подвергнуто сомнению (госзаказ). Но чаще оно формулируется в общих чертах на языке потребителя-неспециалиста, далёким от языка разработчика и терминов предметной области. Неопределенные требования вызывают неуверенность у всех участников работ, так как допускают различное толкование требований и не позволят объективно оценить качество разработанного изделия. Также, разработчик должен понимать, что заказчик может не знать (или знает частично) специальных требований, что не снимает с разработчика ответственности и обязательности выполнения требований надзорных органов независимо от их наличия в задании. Таким образом, не только заказчик, но и разработчик (исполнитель) являются ответственными за постановку целей разработки и полезность ее результата.
Составление ТЗ — сложная и ответственная задача: многие данные ещё не известны, но то, как задание будет поставлено, способно облегчить или затруднить последующее проектирование (образно говоря, «как корабль назовешь, так он и поплывет»).
Специалисты считают, что грамотное ТЗ — это более 50 % успеха в решении задачи, а время, затраченное на подготовку ТЗ, — одно из лучших вложений, которые фирма может сделать в период проектирования. Недаром составление ТЗ поручается ведущим специалистам — главным конструкторам, руководителям проектов и работ и т. п.
Академик А. Н. Крылов рассказывал. На одной фабрике установили новую машину, но никак не могли её запустить. Тогда обратились за помощью к профессору университета. Приехав на фабрику, он долго ходил вокруг машины, внимательно что-то высматривая и к чему-то прислушиваясь. Затем, взяв молоток, ударил по её корпусу. И машина заработала.
За свою помощь профессор запросил у правления фабрики 100 рублей (дело было в начале 20 века). Но правление фабрики посчитало, что за один удар молотком это слишком большая плата. На что профессор ответил, что сам удар стоит один рубль, а вот то, куда ударить — 99 рублей. [4] Замечено, что если стоимость исправления проектной ошибки, допущенной на этапе технического проектирования принять за 1, то стоимость её исправления возрастает приблизительно в 10, 100 и 1000 раз, если ошибка была допущена соответственно на этапах эскизного проектирования, технического предложения и ТЗ!
Как инструмент коммуникации в связке общения заказчик-исполнитель, ТЗ позволяет:
- Обеим сторонам:
- представить (вообразить) готовый продукт,
- выполнить попунктную проверку готового продукта (приёмочное тестирование — проведение испытаний),
- уменьшить число ошибок, связанных с изменением требований в результате их неполноты или ошибочности (на всех стадиях и этапах создания, за исключением испытаний).
- осознать, что именно ему нужно,
- в том числе, опираясь на существующие на данный момент технические возможности и свои ресурсы,
- понять суть задачи, показать заказчику «технический облик» будущего изделия, программного продукта или автоматизированной системы,
- спланировать выполнение проекта и работать по намеченному плану,
- отказаться от выполнения работ, не указанных в ТЗ.
Содержание ТЗ
Регламентированное ТЗ
В части выполнения научно-исследовательских работ ТЗ регламентируется следующими документами:
- ОСТ 95 18-2001. Порядок проведения научно-исследовательских и опытно-конструкторских работ. Основные положения.
- Приложение №3 к Правилам приемки НИОКР, утвержденным Приказом Роспрома 16.09.2004 №95. Техническое задание на научно-исследовательскую работу (приложен образец технического задания на разработку в рамках ГОЗ)
Разделы ТЗ по ГОСТ 34.602-89 (пример)
Согласно ГОСТ 34.602-89 ТЗ должно содержать следующие разделы (приведены в сокращенном виде):
Вид и состав требований ТЗ
Обычно заказчик задаёт цель (как он её понимает) и ресурсные ограничения (время, деньги). Задача исполнителя, прежде всего, — перевести требования на язык предметной области, сформулировать задачу максимально полно и грамотно, обосновать необходимость её решения. В итоге ТЗ будет включать следующие сведения:
- Цели в функциональном виде. Изделие является лишь материальным носителем определенных функций, выполнение которых и позволяет достигать заданные цели (удовлетворять потребности). Но одну и ту же функцию могут выполнять разные устройства. Поэтому функциональное, а не предметное указание цели расширяет область возможных решений, что необходимо для поиска оптимального решения. Также, функция — более четкий термин для описания сути назначения устройства. Уточнение целей и назначение соответствующих им функций — наиболее важная часть работы по составлению ТЗ;
- Выполнение функций, реализующих заданные потребности, всегда увязывается с удовлетворением определенных требований (см. перечень типовых требований к техническим устройствам), которые делают изделия более привлекательными, учитывают и конкретизируют особенности производства и эксплуатации и т. п. Для удобства требования по виду подразделяют на три группы:
- условия, характеризуются конкретными значениями данных (формально их можно представить в виде равенств). Например, масса изделия должна составлять 10 кг, применять сталь 40Х, место эксплуатации — тундра. Важную часть условий формирует оценка доступных ресурсов;
- ограничения, задают допустимую область данных (формально их можно представить в виде односторонних или двусторонних неравенств). Например, вес изделия не должен превышать 10 кг, применять углеродистые стали;
- показатели качества (которые преобразуются в критерии оптимизации), задают только перечень характеристик и направление поиска предпочтительного значения (максимальное или минимальное значение, например, вес изделия должен быть минимальным, а удобство обслуживания — максимальным). Конкретное значение показателя становится известным только в конце этапа или всего цикла проектных работ и служит мерой предпочтения в процессе поиска оптимального варианта (основой выбора окончательного варианта).
Как и процесс проектирования, работа с требованиями также подлежит управлению. Эти процедуры хорошо отработаны, например, в управлении требованиями к программному обеспечению.
Для конкретизации целей и требований, заданных нечётко либо качественно, применяют метод декомпозиции.
При формировании системы требований обязателен анализ следующих источников:
- Доступность ресурсов, находящихся в распоряжении заказчика и разработчика: финансовые, производственные, людские, временные. Все ресурсы взаимосвязаны, например, за счет увеличения финансирования проекта можно добиться сокращения периода разработки. Следствием степени доступности является введение ограничений на методы и точность решения проектной задачи, что, в свою очередь, влияет на вид выбираемой модели. Так, при ограниченности времени ведут оценочные расчеты упрощенными методами или используют готовое программное обеспечение, стандартные методики, типовое оборудование, стандартные и покупные детали и узлы и т. д. В то же время модель, метод и точность решения должны обеспечивать исполнение требований ТЗ, даже если они и высоки.
- Учет требований надзорных и лицензионных органов при проектировании, например, технологических комплексов (производств). В соответствии с законами Российской Федерации любое производство требует получения региональной лицензии на эксплуатацию. Помимо этого многие производства лицензируются надзорными органами и подлежат с их стороны контролю. Наиболее часто контролирующими являются региональные органы Ростехнадзора, Росстандарта, Минрегион России (бывш. Госстрой), Роспотребнадзора, Росприроднадзора, ГПС, МВД России, Роструда.
- Жизненная среда проектируемой системы. Она задает требования, характеризующие взаимное влияние спроектированной системы и окружающих её живых и неживых объектов и внешней среды. Основные указания на нее приводятся в технических требованиях в условиях потребления будущей продукции. Эти условия могут быть охарактеризованы достаточно обобщенно и нуждаться в конкретизации.
Составление списка требований ТЗ
Работа над ТЗ включает выполнение ряда этапов. А неопределенность, свойственная этой работе, вызывает прохождение их по несколько раз, итерационно, от более общей постановки задачи — к детальной её проработке (проектирование носит итерационный характер и то, что не учтено в начале, может быть учтено на последующих этапах).
Сначала приведем рассказ о том, как Эдисон ставил перед собой техническую задачу.
Прежде, чем приступить к разработке электрического освещения в быту, Эдисон провел исследования, при каких условиях оно выдержит конкуренцию в цене, яркости и удобстве с газовым освещением (рожком). Он до тонкостей изучил газовую промышленность, разработал план центральной электростанции и схему линий электропередач к домам и фабрикам.
Затем подсчитал стоимость меди и других материалов, которые потребуются для изготовления ламп и добычи электроэнергии с помощью динамо-машины, движимой паром. Анализ данных определил не только размеры лампы, но и её конкурентоспособную цену, равнявшуюся 40 центам. И лишь когда Эдисон убедился, что сможет решить проблему электрического освещения, он принялся работать над лампой накаливания с угольной нитью, помещенной в стеклянный шар, из которого откачан воздух. В поисках материала нити он опробовал около 6 000 разновидностей растительного волокна.
Анализ задания заказчика
Исходное задание выдаётся заказчиком и оформляется в виде технических требований. Перевести эти требования на язык предметной области, сформулировать задачу максимально полно и грамотно, обосновать необходимость её решения, осмыслить и уточнить исходные данные — первый этап работы. Исполнитель выполняет его в тесном контакте с заказчиком.
Следует выявлять и стараться избегать решения следующих задач:
- задачи, не соответствующие общественным потребностям — криминальные, аморальные, негуманные. Их решение — дело совести разработчика;
- технические псевдозадачи, с ошибочно выдвинутыми целями. Это — задачи, которые уже имеют решение, либо не имеют объективных предпосылок для своего решения (преждевременные задачи, но это нуждается в обосновании, чтобы отказ в решении не был следствием психологической инерции или других субъективных причин);
- химерические задачи. Это — задачи с ошибочно поставленной целью, достижение которой противоречит законам физики (например, создание устройства с КПД более 100 %, устройства мгновенного действия и т. п.), либо абстрактно выдвинутые задачи, принципиально не имеющие решения (типа философского камня).
При составлении ТЗ важно критически, без предрассудков подойти к исходным требованиям. Для этого необходимо:
- убедиться, действительно ли заявленные потребности ценны для заказчика, правдивы ли исходные данные, какие неблагоприятные или вредные последствия могут возникнуть в процессе реализации этой потребности;
- выяснить суть потребности, отыскать источник её возникновения;
- выяснить, что мешает использованию прежнего изделия для удовлетворения новых потребностей.
Основной причиной, вызывающей необходимость новой разработки, служит наличие противоречия между желанием и возможностью удовлетворения потребности. Если противоречия нет, то потребность может быть удовлетворена без создания новых изделий. Если кажется, что противоречия нет, но существующее решение не подходит, то это означает, что противоречие в действительности существует, и следует внимательно его поискать.
Противоречие может быть декомпозировано, то есть представлено в виде элементарных проблем.
В большинстве случаев известен прообраз: прототип или исходное изделие, переставшее удовлетворять заказчика. Наличие прообраза упрощает решение, но его отсутствие не создает психологической инерции в виде предопределенных путей решения, которые не всегда ведут к лучшему результату.
Если прообраз существует, то рекомендуют:
- либо забыть о его существовании и, отталкиваясь от исходной потребности, предложить возможные варианты с последующим выбором лучшего;
- либо усовершенствовать прообраз, воспользовавшись ИКР;
- либо локализовать потребность. Обычно неудовлетворительная работа связана с несовершенством только некоторых подсистем. С этой целью прообраз декомпозируют по функциональному признаку, а противоречие представляют в виде элементарных проблем. Соотнося элементарные проблемы с определенными подсистемами прообраза, выявляют «несовершенные» подсистемы. Таким образом, от решения общей и сложной задачи переходят к более простой частной задаче. Но степень улучшения свойств может оказаться невысокой, могут возникнуть проблемы по состыковке усовершенствованных подсистем с прежними.
Конкретизация целей проектирования
После уточнения и обоснования целей разработки назначают соответствующие им функции. Чтобы предубеждения и психологическая инерция не сужали область поиска, а заказчик своей формулировкой задачи не предопределял направления поиска решения, желательно функцию формулировать обобщенно и в нейтральных терминах. Так, функцию «сбивать» (допустим, доски) лучше заменить термином «соединять», что позволяет отвлечься от естественной ассоциации — сбивать гвоздями, и предлагает более широкий круг возможных решений.
В процессе поиска наиболее полной и точной формулировки строится цепочка функций (дерево целей) — от первоначально предложенной до окончательно принятой. Этому помогает ответ на вопрос «Зачем это нужно?» (и другие вопросы метода контрольных вопросов). В большинстве случаев за приведенной в требованиях целью стоит необходимость выполнения (последовательно или одновременно) нескольких функций. Цепочка функций строится для каждой из них.
Наряду с потребностью в каком-то действии может существовать и потребность в несовершении действия или совершении действия с отрицательным эффектом.
Обработка собранной информации
1. Обобщение и абстрагирование.
Увязываются и обобщаются отдельные фрагменты, чтобы, по возможности, получилось цельное, ясное и лаконичное представление о разрабатываемом объекте с учетом возможных изменений. Убираются дублирующие сведения, в том числе и такие, которые повторяют друг друга в иных формулировках или являются частным случаем.
Абстрагирование предназначено дать такую формулировку требованиям, чтобы избежать предопределения путей решения задачи (не создавать психологических барьеров). Для получения «сильных» решений рекомендуют проводить усиление системы требований и обострение противоречий путем формулирования ИКР.
2. Проверка на противоречивость.
При наличии нескольких функций часть их по своему действию может оказаться противоречивыми (например, вода должна быть горячей (для заварки), но не обжигать руки). Для разрешения противоречий эффективно применение эвристических методов. При этом устранение противоречий возможно как на этапе составления ТЗ (изменение формулировок функций, разнесение их действия во времени или в пространстве и т. д.), так и на последующих этапах проектирования.
Условия и ограничения также следует проверять на противоречивость. Так, ограничения могут задавать пустое множество. Подобные противоречия не всегда очевидны: сведения по верхней и нижней границам могут поступать в разное время или помещаться в разных местах ТЗ, быть представлены в неявном виде.
3. Разграничение требований на условия, ограничения и показатели качества.
Представление требований в виде показателей позволяет получить решения с высокими характеристиками, но такая задача решается сложнее. В качестве показателей выбирают те, которые характеризуют наиболее важные свойства (с целью возможности получения наилучших значений). Для вводимых условий необходимо оценить величину разброса и необходимость указания предельных значений, то есть представления их в виде ограничений.
4. Параметризация.
Точность суждения и верность выбора зависят от степени конкретности исходных требований, представлены ли они в формализованном или неформализованном виде. Для однозначности выводов все требования должны быть переведены в формализованный вид, то есть указаны характеризующие их параметры, причем такие, которые можно измерить, проконтролировать, рассчитать. Это также позволит выделить дублирующие требования (те, которые характеризуются одними и теми же параметрами) и обобщить их (ввести обобщенные параметры с целью сокращения общего их числа, удельные характеристики).
При решении задачи оптимального проектирования рекомендуют показатели качества приводить к критериальному формализованному виду, то есть назначать им численную меру. Основной метод конкретизации формулировок — построение дерева целей (И или ИЛИ-деревья): исходный показатель декомпозируется до выявления элементарных понятий, однозначно характеризуемых наборами параметров.
Проблемами оценки качества посредством количественных показателей занимается наука «Квалиметрия».
5. Усечение списка требований.
Большой объем информации хотя и способен дать максимально полное представление о решаемой задаче, но труднее удерживается в голове, усложняет решение задачи. Для сокращения сведений до разумного объема (под способности каждого конкретного разработчика, соответствие его финансовым, организационно-техническим, временным ресурсам) можно воспользоваться их ранжированием или разделением на группы обязательных к учету, желательных и несущественных. К обязательным относятся те, неудовлетворение которых существенным образом влияет на выбор вариантов решений. Это — функциональные параметры, условия взаимосвязи систем и их частей и другие. Желательные требования позволяют различить варианты по степени качества.
Стоит принимать во внимание слова Ли Якокки: «… беда в том, что ты учился в Гарварде, где тебе вбили в голову, что нельзя предпринимать никаких действий, пока не соберёшь все факты. У тебя 95 % информации, а для того, чтобы собрать недостающие 5 %, тебе понадобится ещё шесть месяцев. За это время все факты устареют, потому что рынок развивается гораздо быстрее.
Самое главное в жизни — всё делать вовремя. … главная задача состоит в том, чтобы собрать все важные факты и точки зрения, которые вам доступны. Но в какой-то момент надо начинать действовать решительно. Во-первых, потому, что даже самое правильное решение оказывается неверным, если оно принято слишком поздно.
Во-вторых, потому, что в большинстве случаев не существует такой вещи, как полная уверенность. Вам никогда не удастся собрать все 100 % информации. К сожалению, жизнь не будет ждать, пока вы оцените все возможные просчеты и потери. Иногда надо просто двинуться вперед наудачу и исправлять ошибки по ходу движения».
Источник: diakonov.com
Как правильно разработать техническое задание для автоматизированной системы ч.1
Как правильно разработать техническое задание для автоматизированной системы. Часть 1
Меня часто спрашивают: «Как правильно разработать техническое задание для автоматизированной системы?». Аналогичная тема постоянно обсуждается на различных форумах. Этот вопрос настолько широкий, что ответить в двух словах никак нельзя. Поэтому я решил написать большую статью на данную тему.
- В первой части « Разработка Технического задания. Что это такое, зачем оно нужно, с чего начать и как должно выглядеть ?» я подробно попытаюсь ответить на вопросы темы, рассмотрю структуру и назначение Технического задания, дам некоторые рекомендации по формулировке требований.
- Вторая часть « Разработка Технического задания. Как формулировать требования ?» будет полностью посвящена выявлению и формулировке требований к информационной системе.
Для начала надо разобраться, какой в действительности вопрос интересует тех, кто спрашивает «Как разработать техническое задание?» Дело в том, что от того, для каких целей это делается, а также кем будет использоваться, будет сильно зависеть и подход к разработке технического задания. О каких вариантах я говорю:
- Коммерческая организация решила внедрить у себя автоматизированную систему. Она не имеет собственной IT-службы и решили поступить так: Заинтересованное лицо должно разработать Техническое задание и отдать его на разработку сторонней организации;
- Коммерческая организация решила внедрить у себя автоматизированную систему. Она имеет собственную IT-службу. Решили поступить так: разработать Техническое задание, затем согласовать его между IT-службой и заинтересованными лицами, и реализовать собственными силами;
- Госструктура решила затеять IT-проект. Тут все настолько мутно, куча формальностей, откатов, распилов и пр. Я не буду рассматривать такой вариант в данной статье.
- IT-компания занимается услугами по разработке и/или внедрению автоматизированных систем. Это наиболее сложный случай, ведь приходится работать в самых различных условиях:
- Клиент имеет своих специалистов со своими взглядами, и они предъявляют конкретные требования к Техническому заданию;
- Техническое задание разрабатывается для собственных разработчиков (клиенту все равно);
- Техническое задание разрабатывается для передачи подрядчику (т.е. группе программистов, находящихся за штатом компании, или отдельному специалисту);
- Между компаний и клиентом возникает непонимание в вопросе полученного результата, и компания вновь и вновь задается вопросом: «Как надо разрабатывать Техническое задание?». Возможно, последний случай кажется парадоксом, но это правда.
- Возможны и другие, реже встречающиеся варианты;
Думаю, сейчас у читателя должны возникнуть вопросы:
- А почему нельзя разрабатывать Техническое задание всегда одинаково?;
- Существуют ли какие-то стандарты, методики, рекомендации? Где их взять?
- Кто должен разрабатывать Техническое задание? Должен ли этот человек обладать какими-то специальными знаниями?
- Как понять, хорошо составлено Техническое задание или нет?
- За чей счет должно оно разрабатываться, да и нужно ли оно вообще?
Этот список может быть бесконечным. Говорю так уверенно от того, что уже 15 лет в профессиональной разработке программного обеспечения, а вопрос о Технических заданиях всплывает в любом коллективе разработчиков, с кем приходиться работать. Причины тому разные.
Поднимая тему разработки Технического задания, я прекрасно отдаю себе отчет в том, что не смогу изложить ее на 100% для всех интересующихся темой. Но, попробую, как говорится «разложить все по полочкам».
Те, кто уже знаком с моими статьями знают, что я не пользуюсь «копи-пастом» труда других людей, не перепечатываю чужие книги, не цитирую многостраничные стандарты и прочие документы, которые Вы и сами сможете найти в интернете, выдавая их за свои гениальные мысли. Достаточно набрать в поисковике «Как разработать Техническое задание» и Вы сможете прочитать много интересного, но, к сожалению, многократно повторяющегося.
Как правило, те, кто любит умничать на форумах (попробуйте все-таки поискать!), сами никогда не делали толкового Технического задания, и непрерывно цитируют рекомендации ГОСТов по данному вопросу. А тем, кто действительно серьезно занимается вопросом, обычно некогда сидеть на форумах. Про ГОСТЫ, кстати, мы тоже поговорим.
В разные годы своей работы мне приходилось видеть множество вариантов технической документации, составленной как отдельными специалистами, так и именитыми командами и консалтинговыми компаниями. Иногда еще я занимаюсь такой деятельностью: выделяю себе время и занимаюсь поиском информации на интересующую тему по необычным источникам (такой небольшой разведкой). В результате приходилось видеть документацию и по таким монстрам, как ГазПром, РЖД и много других интересных компаний. Конечно же, я соблюдаю политику конфиденциальности, несмотря на то, что эти документы попадают ко мне из общедоступных источников или безответственности консультантов (разбрасывают информацию по интернету). Поэтому сразу говорю: конфиденциальной информацией, которая принадлежит другим компаниям не делюсь, независимо от источников возникновения (профессиональная этика).
Как ни странно, проблемы у всех одинаковые! У всех бывают как успешные документы (и проекты), так и совсем бестолковые (исключение, пожалуй, составляют Технические задания, разработанные еще во времена, когда не было персональных компьютеров, но там были совсем другие условия). Почему так получается?
Именно потому, что цели у проектов бывают разные, как и пользователи этих документов. И, конечно, компетенции непосредственных специалистов не на последнем месте. В этих двух статьях я попытаюсь поделиться своим личным опытом, накопленном за многие годы. Конечно, получится в сжатом виде, т.к. вопрос достоин целой книги (кстати, идея, а может написать?)…
Что такое техническое задание?
Первое, что мы сейчас сделаем, так это разберемся с тем, что за зверь такой, «Техническое задание».
Да, действительно существуют ГОСТы и стандарты, в которых предприняты попытки регламентировать эту часть деятельности (разработки программного обеспечения). Когда-то все эти ГОСТы были актуальны и активно применялись. Сейчас существуют разные мнения по поводу актуальности данных документов.
Одни утверждают, что ГОСТы были разработаны очень дальновидными людьми и до сих пор актуальны. Другие говорят, что они безнадежно устарели. Возможно, кто-то сейчас подумал, что правда где-то по середине. Я бы ответил словами Гете: «Говорят, что между двумя противоположными мнениями находится истина. Ни в коем случае! Между ними лежит проблема».
Так вот, между этими мнениями истины нет. Потому как ГОСТы не раскрывают практических проблем современной разработки, а те, кто их критикует, альтернативы (конкретной и системной) не предлагают.
Заметим, что в ГОСТе явно не дано даже определения, сказано лишь: «ТЗ на АС является основным документом, определяющим требования и порядок создания (развития или модернизации — далее создания) автоматизированной системы, в соответствии с которым проводится разработка АС и ее приемка при вводе в действие».
Если кому-то интересно, о каких ГОСТах я говорю, то вот они:
- ГОСТ 2.114-95 Единая система конструкторской документации. Технические условия;
- ГОСТ 19.201-78 Единая система программной документации. Техническое задание. Требования к содержанию и оформлению;
- ГОСТ 34.602-89 Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы.
Куда более удачное определение представлено в википедии (правда про ТЗ в целом, а не только для программного обеспечения ): « Техническое задание – это исходный документ на проектирование технического объекта. Техническое задание устанавливает основное назначение разрабатываемого объекта, его технические и тактико-технические характеристики, показатели качества и технико-экономические требования, предписание по выполнению необходимых стадий создания документации (конструкторской, технологической, программной и т. д.) и её состав, а также специальные требования. Задание как исходный документ на создание чего-то нового существует во всех областях деятельности, различаясь по названию, содержанию, порядку оформления и т. п. (например, проектное задание в строительстве, боевое задание, домашнее задание, договор на литературное произведение и т. д.)»
Отличное определение, полностью раскрывающее суть. Впрочем, требования ГОСТа направлены как раз на раскрытие этого определения.
Я ни в коем случае не критикую требования ГОСТа, я просто утверждаю, что их там явно недостаточно, чтобы разработать эффективное Техническое задание . И это нормально, ведь есть ГОСТ, например, на изготовление хлеба, и это вовсе не значит, что любой человек может выпечь хлеб по ГОСТу. Кроме ГОСТа требуется знание методик и практик, как в любом деле.
Именно этот факт лежит в корне проблемы, которая лежит посерединеJ. А многие специалисты почему-то при необходимости разработать Техническое задание, обращаются только к требованиям ГОСТа. Ну, давайте начнем жить по ГОСТу, посмотрим, что получится!
Но ведь не может такого быть, что в столь распространенном занятии, как разработка и внедрение автоматизированных систем не проводилось исследований, не изучались практики, не писалось книг об этих самых практиках! И это так. Конечно, есть много отличных (!) трудов, посвященных тематике формулирования требований и в конце статьи я приведу такие примеры.
Многое в своей практике я использовал именно оттуда, а когда работал над этой статьей, то тоже нашел много интересных мыслей, которыми рад буду поделиться. Так что, велосипеда изобретать не нужно, но есть потребность систематизировать эти знания. Кстати, любопытный факт, ни одного отечественного автора в этих трудах нет. Вся литература в переводе с западных авторов, но зато каких!
Среди них есть просто виртуозы своего дела, у которых есть чему поучиться и нужно это делать. Иначе, споры о том, «Как разработать техническое задание» будут продолжаться бесконечно. Однако, я увлекся лирикой…
И так, как следует из определения, основное назначение Технического задания — сформулировать требования к разрабатываемому объекту, в нашем случае к автоматизированной системе.
Именно основное, но единственное. Настало время взяться за главное: разложить все «по полочкам», как и обещал.
Что необходимо знать о требованиях?
Необходимо четко понимать, что все требования нужно разделять по видам и по свойствам. Сейчас мы научимся это делать. Для разделения требований по видам нам как раз поможет ГОСТ. Тот перечень видов требований, который там представлен, является хорошим образцом того, требования каких видов следует рассматривать. Например:
- Требования в функциональности;
- Требования к безопасности и правам доступа;
- Требования к квалификации персонала;
- …. И т.д. Вы можете прочитаете о них в упомянутом ГОСТе (а ниже я их тоже рассмотрю немного подробнее).
Думаю, для Вас очевидно, что ключевым фактором успешного Технического задания являются именно хорошо сформулированные требования к функциональности. Именно этим требованиям посвящено большинство работ и методик, о которых я говорил. Требования к функциональности – это 90% сложности работ по разработке Технического задания.
Все остальное зачастую является «камуфляжем», который надет на эти требования. Если требования сформулированы плохо, то какой красивый камуфляж на них не натягивай, успешного проекта не выйдет. Да, формально все требования будут соблюдены (по ГОСТу J), ТЗ разработано, утверждено и подписано, деньги за него получены. И что? А дальше начнется самое интересное: что делать-то?
Если это проект на ГосЗаказе, то проблем нет – там бюджет такой, что ни в какой карман не влезет, в процессе реализации (если она будет) все и будет выясняться. Именно таким образом и пилится большинство бюджетов проектов на ГосЗаказах (накалякали «ТЗ», слили десяток миллионов, а проект делать не стали. Все формальности соблюдены, виновных нет, новое авто возле дома. Красота!). Но ведь мы говорим о коммерческих организациях, где деньги считают, да и результат нужен другой. Поэтому давайте разбираться с главным, как разрабатывать полезные и работающие Технические задания .
Про виды требований я сказал, а что же со свойствами? Если виды требований могут быть различными (зависит от целей проекта), то со свойствами все проще, их 3:
- Требование должно быть понятным ;
- Требование должно быть конкретным ;
- Требование должно быть тестируемым ;
Причем последнее свойство невозможно без двух предыдущих, т.е. является этакой «лакмусовой бумажкой». Если результат выполнения требования невозможно протестировать, значит, оно либо не понятное, либо не конкретное. Подумайте об этом. Именно во владении этими тремя свойствами требований и заключается мастерство и профессионализм. На само деле все очень просто.
Когда разберешься.
На этом повествование о том, что такое Техническое задание можно было бы завершить и перейти к главному: как формулировать требования. Но не так все быстро. Есть еще один крайне важный момент:
- на каком языке (в смысле сложности понимания) должно быть написано техническое задание?
- Должны ли быть описаны в нем спецификации различных функций, алгоритмы, типы данных и прочие технические штуки?
- А что такое техническое проектирование, о котором, кстати, сказано и в ГОСТах, и как оно связано с Техническим заданием?
В ответах на эти вопросы кроется очень коварная вещь. Именно поэтому часто возникают споры о достаточности или отсутствии необходимой детализации требований, о понятности документа Заказчиком и Исполнителями, об избыточности, формате представления и т.д. А где вообще граница между Техническим заданием и Техническим проектом?
Техническое задание – это документ, в основе которого лежат требования, сформулированные на понятном (обычном, привычном) для Заказчика языке. При этом может и должна использоваться отраслевая терминология, понятная Заказчику. Никаких привязок к особенностям технической реализации быть не должно.
Т.е. на этапе ТЗ в принципе не важно, на какой платформе будут реализовываться эти требования. Хотя есть исключения. Если речь идет о внедрении системы на основе уже существующего программного продукта, то такая привязка может иметь место, но только на уровне экранных форм, форм отчетов и пр.
Выяснением и формулированием требований, а также разработкой Технического задания должен заниматься бизнес-аналитик. И уж никак не программист (если только он не совмещает в себе эти роли, такое случается). Т.е. этот человек должен говорить с Заказчиком на языке его бизнеса.
Технический проект – это документ, который предназначен для технической реализации требований, сформулированных в Техническом задании. Как раз в этом документе описываются структуры данных, триггеры и хранимые процедуры, алгоритмы и прочие штуки, которые потребуются техническим специалистам . Заказчику в это вникать вовсе не обязательно (ему и термины такие могут быть непонятны). Технический проект делает Архитектор системы (вот совмещение этой роли с программистом вполне нормально). А точнее группа специалистов АО главе с архитектором. Чем больше проект, тем и больше людей работает над Техническим заданием.
Что мы имеем на практике?
Забавно наблюдать, когда директору приносят на согласование Техническое задание, которое изобилует технической терминологией, описанием типов данных и их значений, структуры базы данных и пр. Он, конечно, пытается вникнуть, раз надо утверждать, пытаясь найти между строк знакомые слова и не потерять цепочку бизнес-требований. Что, знакомая ситуация? И чем это заканчивается?
Как правило, такое ТЗ утверждается, затем реализуется, а в 80% случаев потом совсем не соответствует факту выполненных работ, т.к. много чего решили изменить, переделать, неправильно поняли, не так думали и т.д. и т.п. А потом начинается сериал про сдачу работ. «А вот тут не так как нам надо», а «это у нас работать не будет», «это слишком сложно», «это неудобно» и т.д. Знакомо. Вот и мне знакомо, пришлось набить шишек в свое время.
Так что мы имеем на практике-то?
А на практике мы имеем размытую границу между Техническим заданием и Техническим проектом. Она плавает между ТЗ и ТП в самых разных проявлениях. И это плохо. А получается так потому, что культура разработки стала слабой. Частично это связано с компетенциями специалистов, частично со стремлением сократить бюджеты и сроки (ведь документация занимает много времени — это факт).
Есть и еще один важный фактор, влияющий на использование Технического проекта как отдельного документа: стремительное развитие средств быстрой разработки, а также методологий разработки. Но это отдельная история, чуть ниже несколько слов об этом скажу.
Еще небольшой, но важный момент.
Иногда Техническим заданием называют небольшой кусочек требований, простой и понятный. Например, доработать поиск объекта по каким-либо условиям, добавить колонку в отчет и пр. Такой подход вполне себе оправдан, зачем усложнять жизнь. Но применяется не на больших проектах, а на мелких доработках. Я бы сказал это ближе к сопровождению программного продукта.
В этом случае в Техническом задании может быть описано и конкретное техническое решение реализации требования. Например, «В алгоритм такой-то внести такое-то изменение», с указанием конкретной процедуры и конкретного изменения для программиста. Это тот случай, когда граница между Техническим заданием и Техническим проектам полностью стирается, т.к. нет никакой экономической целесообразности раздувать бумаготворчество там, где это не нужно, а полезный документ создается. И это правильно.
А нужно ли вообще техническое задание? А Технический проект?
Не перегрелся ли я?
Разве такое возможно, вообще без Технического задания ?
Представьте себе возможно (точнее, встречается), и у такого подхода есть много последователей, и их число увеличивается. Как правило, после того, как молодые специалисты начитаются книг про Scrum, Agile и прочие технологии быстрой разработки. На самом деле это замечательные технологии, и они работают, только в них не говорится дословно «не надо делать технических заданий».
В них говорится «минимум бумаг», особенно ненужных, ближе к Заказчику, больше конкретики и быстрее к результату. Но фиксирование требований никто не отменял, и там это явно сказано. Как раз там требования и фиксируются исходя из трех замечательных свойств, о которых я говорил выше.
Просто у некоторых людей так устроено сознание, что если можно что-то упростить, так давайте это упростим до полного отсутствия. Как сказал Эйнштейн « Сделай так просто, как возможно, но не проще этого» . Золотые ведь слова, ко всему подходят. Так что Техническое задание нужно, иначе успешного проекта Вам не видать. Другой вопрос, как составлять и что туда включать.
В свете методологий быстрой разработки надо сосредоточиться только на требованиях, а весь «камуфляж» можно отбросить. В принципе, я с этим согласен.
А что же с Техническим проектом?
Данный документ весьма полезный и не утратил свою актуальность. Более того, часто без него просто не обойтись. Особенно, если речь идет о передаче работ по разработке на сторону, т.е. по принципу аутсорсинга. Если этого не сделать, есть риск узнать много нового о том, как должна выглядеть система, которую Вы задумалиJ. Должен ли с ним знакомиться Заказчик?
Если хочет, почему нет, но настаивать и утверждать данный документ нет никакой необходимости, он будет только сдерживать и мешать работать.
Спроектировать систему до мелочей практически невозможно.
В этом случае придется непрерывно вносить изменения в Технический проект, что занимает немало времени. А если организация сильно забюрократизирована, то вообще все нервы там оставите. Как раз о сокращении такого рода проектирования и идет речь в современных методологиях быстрой разработки, о которых я упоминал выше. Кстати, все они базируются на классическом XP (экстремальном программировании)- подходе, которому уже порядка 20 лет. Так что сделайте качественное Техническое задание, понятно Заказчику, а Технический проект используйте как внутренний документ, для взаимоотношений между архитектором системы и программистами.
Интересная деталь по поводу технического проектирования: некоторые средства разработки, устроенные по принципу предметной ориентированности (типа 1С и аналогичных) предполагают, что проектирование (имеется ввиду процесс документирования) требуется только на действительно сложных участках, где требуется взаимодействие между собой целых подсистем. В простейшем случае, например создать справочник, документ, достаточно лишь правильно сформулированных бизнес-требований.
Об этом говорит и стратегия бизнеса этой платформы в части подготовки специалистов. Если посмотреть на экзаменационный билет специалиста (именно так он называется, а не «программиста»), то Вы увидите, что там присутствуют лишь бизнес-требования, а как их реализовать на программном языке это и есть задача специалиста.
Т.е. ту часть задачи, которую призван решать Технический проект, специалист должен решить «в голове» (речь идет о задачах средней сложности), причем здесь и сейчас, следуя определенным стандартам разработки и проектирования, которые формирует опять же компания 1С для своей платформы. Таким образом, из двух специалистов, результат работы которых внешне выглядит одинаково, один может экзамен сдать, а второй нет, т.к. грубо нарушил стандарты разработки. Т.е заведомо предполагается, что специалисты должны обладать такой квалификацией, чтобы типичные задачи проектировать самостоятельно, без привлечения архитекторов системы. И такой подход работает.
Продолжим исследование вопроса: «Какие требования включать в Техническое задание?»
Формулирование требований к информационной системе. Структура Технического задания
Сразу определимся: мы будет говорить именно о формулировании требований к информационной системе, т.е. предполагая, что работа по выработке бизнес-требований, формализации бизнес-процессов и вся предшествующая консалтинговая работа уже выполнена. Конечно, некоторые уточнения могут выполняться и на этом этапе, но именно уточнения.
Сам проект автоматизации не решает проблем бизнеса – помните об этом. Это аксиома. Почему-то некоторые руководители пытаются ее опровергнуть, считая, что если купят программу, то наступит порядок в хаотичном бизнесе. Но ведь аксиома на то и аксиома, что доказательств не требует.
Как и любую деятельность, формулирование требований можно (и нужно) разделить на этапы. Всему свое время. Это тяжелый интеллектуальный труд. И, если относится к нему с недостаточным вниманием, то результат будет соответствующий. По экспертным оценкам, стоимость затрат на разработку Технического задания может составлять 30-50%.
Я придерживаюсь такого же мнения. Хотя 50 – пожалуй, перебор. Ведь Техническое задание – это еще не последний документ, который должен быть разработан. Ведь еще должно быть и техническое проектирование. Такой разброс обусловлен различными платформами автоматизации, подходами и технологиями, применяемыми проектными командами при разработке.
Например, если речь идет о разработке на классическом языке типа С++, то без детального технического проектирования тут не обойтись. Если речь идет о внедрении системы на платформе 1С, то тут с проектированием ситуация несколько иная, как мы видели выше (хотя, при разработке системы «с нуля», она проектируется по классической схеме).
И так, ГОСТ рекомендует следующие разделы:
Итого, 9 разделов, каждый из которых тоже делится на подразделы. Разберем их по-порядку. Для удобства представлю все в виде таблицы по каждому пункту.
Раздел 1. общие сведения.
Рекомендации по ГОСТ | Что с этим делать на практике |
полное наименование системы и ее условное обозначение; | Тут все понятно: пишем, как будет называться система, ее краткое наименование |
шифр темы или шифр (номер) договора; | Это не актуально, но можно и указать, если требуется |
наименование предприятий (объединений) разработчика и заказчика (пользователя) системы и их реквизиты; | указывают, кто (какие организации) будут работать над проектом. Можно указать и их роли.Можно вообще удалить этот раздел (достаточно формальный). |
перечень документов, на основании которых создается система, кем и когда утверждены эти документы; | Полезная информация. Тут стоит указать ту нормативно-справочную документацию, которую Вам предоставили для ознакомления с определенной частью требований |
плановые сроки начала и окончания работы по созданию системы; | Пожелания по срокам. Иногда в ТЗ об этом пишут, но чаще такие вещи описываются в договорах на работы |
сведения об источниках и порядке финансирования работ; | Аналогично, как и в предыдущем пункте про сроки. Более актуально для государственных заказов (для бюджетников) |
порядок оформления и предъявления заказчику результатов работ по созданию системы (ее частей), по изготовлению и наладке отдельных средств (технических, программных, информационных) и программно-технических (программно-методических) комплексов системы. | Не вижу необходимости в этом пункте, т.к. требования к документированию вынесены отдельно, а кроме этого есть целый отдельный раздел «Порядок контроля и приемки» системы. |
Раздел 2. назначение и цели создания (развития) системы.
Рекомендации по ГОСТ | Что с этим делать на практике |
Назначение системы | С одной стороны с назначением все просто. Но желательно формулировать конкретно. Если написать что-то вроде «качественно автоматизировать складской учет в компании Х», то потом можно долго обсуждать результат при его завершении, даже независимо от хорошей формулировки требований. Т.к. Заказчик всегда может говорить, что под качеством он имел ввиду нечто иное. В общем, нервов можно попортить друг другу много, а зачем? Лучше сразу написать примерно так: «Система предназначена для ведения складского учета в компании Х в соответствии с требованиями, зафиксированными в данном Техническом задании». |
Цели создания системы | Цели – это безусловно важный раздел. Если уж его включать, то надо уметь эти цели формулировать. Если у Вас трудности с формулировкой целей, то лучше вообще исключить данный раздел. Пример неудачной цели: «Обеспечить быстрое оформление документов менеджером». Что такое быстрое? Это можно потом доказывать бесконечно. Если это важно, то лучше переформулировать данную цель так: «Менеджер по продажам должен иметь возможность оформить документ «Реализация товаров» из 100 строк за 10 минут». Подобная цель может появиться, если, например, в настоящее время менеджер тратит на это около часа, что слишком много для этой компании и для них это важно. В такой формулировке цель уже пересекается с требованиями, что вполне естественно, т.к. при разворачивании дерева целей (т.е. дробя их на более мелкие связанные цели), мы и так будем приближаться к требованиям. Поэтому, увлекаться не стоит. |
Вообще, умение выделять цели, формулировать их, строить дерево целей это тема совершенно отдельная. Запомните главное: умеете – пишите, не уверены – вообще не пишите. А что будет, если не сформулировать цели? Будете работать по требованиям, такое часто практикуется.
Раздел 3. Характеристика объектов автоматизации.
Рекомендации по ГОСТ | Что с этим делать на практике |
краткие сведения об объекте автоматизации или ссылки на документы, содержащие такую информацию | На практике обычно это не включают. Но можно привести ссылки на документы, которые полезно изучить составу проектной команды для погружения в вопрос (отраслевые особенности, например) |
сведения об условиях эксплуатации объекта автоматизации и характеристиках окружающей среды | Не актуально для проектов по автоматизации учета |
Раздел 4. Требования к системе
Рекомендации по ГОСТ | Что с этим делать на практике |
Требования к системе в целом. |
ГОСТ расшифровывает перечень таких требований:
- требования к структуре и функционированию системы;
- требования к численности и квалификации персонала системы и режиму его работы;
- показатели назначения;
- требования к надежности;
- требования безопасности;
- требования к эргономике и технической эстетике;
- требования к транспортабельности для подвижных АС;
- требования к эксплуатации, техническому обслуживанию, ремонту и хранению компонентов системы;
- требования к защите информации от несанкционированного доступа;
- требования по сохранности информации при авариях;
- требования к защите от влияния внешних воздействий;
- требования к патентной чистоте;
- требования по стандартизации и унификации;
Несмотря на то, что основным, безусловно, будет раздел с конкретными требованиями (функциональными), данный раздел тоже может иметь большое значение (и в большинстве случаев имеет). Что может оказаться важным и полезным:
- Требования к квалификации . Возможно, разрабатываемая система потребует переподготовки специалистов. Это могут быть как пользователи будущей системы, так и IT-специалисты, которые будут нужны для ее поддержки. Недостаточное внимание к данному вопросу нередко перерастает в проблемы. Если квалификация имеющегося персонала явно недостаточна, лучше прописать требования к организации обучения, программе обучения, срокам и т.п.
- Требования к защите информации от несанкционированного доступа. Тут комментарии излишни. Это как раз и есть требования к разграничению доступа к данным. Если такие требования планируются, то их нужно расписать отдельно, как можно более детально по тем же правилам, что и функциональные требования (понятность, конкретность, тестируемость). Поэтому, можно эти требования включить и в раздел с функциональными требованиями
- Требования к стандартизации. Если существуют какие-либо стандарты разработки, которые применимы к проекту, они могут быть включены в требования. Как правила, такие требования инициирует IT-служба Заказчика. Например, у компании 1С есть требования к оформлению программного кода, проектированию интерфейса и пр.;
- Требования к структуре и функционированию системы. Тут могут быть описаны требования к интеграции систем между собой, представлено описание общей архитектуры. Чаще требования к интеграции выделяют вообще в отдельный раздел или даже отдельное Техническое задание, т.к. эти требования могут оказаться достаточно сложными.
Все остальные требования менее важны и можно их не описывать. На мой взгляд, они только утяжеляют документацию, и практической пользы несут немного. А Требования к эргономике описывать в виде общих требований очень сложно, лучше их перенести к функциональным. Например, может быть сформулировано требование «Получить информацию о цене товара нажав только одну кнопку».
На мой взгляд, это все-таки ближе к конкретным функциональным требованиям, хоть и относится к эргономике.Требования к функциям (задачам), выполняемым системойВот он, тот самый главный и ключевой пункт, который будет определять успех. Даже если все остальной сделать на отлично, а этот раздел на «3», то и результат по проекту будет в лучшем случае на «3», а то и вообще проект провалится. Именно эти мы и займемся более детально во второй статье, которая войдет в 5-й выпуск рассылки. Именно к этому пункту относится «правило трех свойств требований», о которых я говорил.Требования к видам обеспечения
ГОСТ выделяет такие виды:
- Математическое
- Информационное
- Лингвистическое
- Программное
- Техническое
- Метрологическое
- Организационное
- Методическое
- и другие…
На первый взгляд может показаться, что эти требования не важны. В большинстве проектов это действительно так. Но не всегда. Когда стоит описывать данные требования:
- Решения о том, на каком языке (или какой платформе) будет вестись разработка не принято;
- К системе предъявляются требования мультиязычного интерфейса (например, русский/английский)
- Для функционирования системы должно быть создано отдельное подразделения или приняты на работу новые сотрудники;
- Для функционирования системы у Заказчика должны произойти изменения в методиках работы и эти изменения должны быть конкретизированы и запланированы;
- Предполагается интеграция с каким-либо оборудованием и к нему предъявляются требования (например, сертификации, совместимости и пр.)
- Возможны другие ситуации, все зависит от конкретных целей проекта.
Рекомендации по ГОСТ | Что с этим делать на практике |
Перечень стадий и этапов работ по созданию системы в соответствии с ГОСТ 24.601, сроки их выполнения, перечень организаций — исполнителей работ, ссылки на документы, подтверждающие согласие этих организаций на участие в создании системы, или запись, определяющую ответственного (заказчик или разработчик) за проведение этих работ | Другими словами, это план разработки системы, ее этапность, возможность привлечения подрядчиков и т.п. |
Раздел 6. Порядок контроля и приемки системы
Рекомендации по ГОСТ | Что с этим делать на практике |
Виды, состав, объем и методы испытаний системы и ее составных частей (виды испытаний в соответствии с действующими нормами, распространяющимися на разрабатываемую систему); |
Общие требования к приемке работ по стадиям (перечень участвующих предприятий и организаций, место и сроки проведения), порядок согласования и утверждения приемочной документации;Настоятельно рекомендую с ответственностью отнестись к порядку сдачи работ и проверке системы. Именно для этого и нужны тестируемые требования.
Но даже наличие тестируемых требований может оказаться недостаточно при сдаче системы, если четко не прописан порядок приемки-передачи работ. Например, распространенная ловушка: система сделана, вполне работоспособна, но Заказчик по каким-либо причинам не готов в ней работать. Причины эти могут быть любые: некогда, поменялись цели, кто-то уволился и т.п.
И говорит: «Поскольку мы еще не работаем в новой системой, значит и не можем быть уверены, что она работает». Так что учитесь правильно выделять этапы работ, способы проверки результатов по этим этапам. Причем Заказчику такие способы должны быть понятны изначально. Если они зафиксированы на уровне Технического задания, то всегда можно при необходимости к ним обратится и подвести работы с передаче.
Чавалах Александр Владимирович
Продолжение в части 2
дата: 00.00.0000 00:00:00 просмотров: 6415
Источник: www.lobanov-logist.ru
Техническая документация
разработка техдокументации по ГОСТ без бумаги и расстояний
Как писать техническое задание?!
Методика разработки технического задания на автоматизированную систему по ГОСТ 34.602-89 (и не только), практические приемы подготовки содержимого разделов, подразделов, пунктов и подпунктов технического задания. Большая часть уже готовых к применению логических элементов ТЗ приведены в конце статьи. Редакция от 06.01.2022.
Создан 05.02.2005 11:41:19
Кто печаль твою разделит?
«Как писать техническое задание?!» — вопль отчаяния из уст т. н. начинающего «технического писателя», далее по тексту — техписа. Вот она — страшная цена развала Союза и переход российской высшей школы на двухступенчатую систему образования.
Вернемся к вопросу. При «раскладке» получается:
- первый вопрос — «а зачем оно надо»;
- второй вопрос — какова должна быть структура разделов документа «Техническое задание»;
- третий вопрос — какие существуют способы подготовки текстов содержимого разделов технического задания?
Третий — самый сложный, как уборка домов и квартир. Ответы на указанные вопросы появятся в ходе изложения.
Цели и задачи статьи
Цель статьи — облегчить жизнь совсем уж начинающим техписам.
- дать ответы на поставленные вопросы;
- показать необходимый минимум практических приемов подготовки текстов технического задания;
- дать начинающему техпису шанс:
- повысить собственный рейтинг;
- или окончательно уронить себя в глазах Большого Босса.
История
Все, что когда-либо производилось, производится и будет производиться, делится (условно, разумеется) на:
Первым (специфицированным) изделием, быть может, стал каменный топор. Или (рукотворный) глиняный черепок (неспецифицированное изделие), позволяющий зачерпнуть водички в ручейке.
Первым программным изделием, реализованным на «железном носителе», стал, возможно, «музыкальный автомат» с вращающимся диском, утыканным колышками. Колышки в определенное время ударяли по определенному камертону. Таким образом, мелодия оказывалась запрограммированной, «зашитой» на металлическом носителе — настоящее программное изделие по ГОСТ 19.004-80, только что не промышленного, а кустарного производства. Увидеть это чудо чудное можно в Политехническом Музее г. Москвы.
Первой автоматизированной системой, возможно, стала ветряная мельница. Вытащил стопор — «лопасти» вращаются, жернова молотят. «Нажатие одной кнопки» — 100-процентная автоматизация.
Далее — леденящая душу история.
История, леденящая душу
. и наказал тогда царь (заказчик) — построить мельницу, да такую, чтобы от силы ветра работала, круче, чем у короля аглицкого («хотелки» заказчика), да чтоб на зависть всем буржуям (соответствующую современному уровню развития науки и техники и не уступающую аналогичным требованиям, предъявляемым к лучшим современным отечественным и зарубежным аналогам).
Приволокли опричники холопа государева, умепьца местного (разработчика), кинули царю-батюшке в ноги. Бился лбом умелец о пол каменный — дык, оно, конечно! Сделаем, твое величество, все безоговорочно, точно, в срок и в полном объеме!
Настало время, прибыл царь на мельницу (приемка-сдача работ). Смотрит и диву дается — крылья крутятся, жернова жито молотят, мука сама собой в мешки сыплется! (Полное соответствие требованиям к функциям (задачам), выполняемым системой). Да возьми и запусти руку в мешок. (что не было предусмотрено ни техническим заданием, ни программой и методикой испытаний, поскольку не существовало таковых).
Побагровел царь — что ж, смерд, мельница сия муку непотребно мелет?! (Несоответствие производимой народно-хозяйственной продукции требованиям ГОСТ 7045-90 Мука ржаная хлебопекарная. Технические условия). Схватили мужика опричники, да долбанули по буйной его головушке топором каменным. И кончил жизнь Левша под звуки «Реквиема» Моцарта из музыкального автомата.
Выводы
В стародавние времена в отношениях сторон, заказчика и исполнителя (разработчика), равноправия было маловато. Чем-то, само-собой, отношения регламентировались. Возможно, готовились берестяные грамоты — прообразы современных договоров. Вряд ли в подобных договорах можно было учесть все, даже качество помола. Да и не было общепризнанных стандартов, нормативных документов, в широком смысле регламентирующих все аспекты взаимоотношений заказчика и исполнителя.
Издавались Указы, Распоряжения — «в университете московском студиозусам надобно на соломе сидеть, сморкаться в кулак, нос утирать пучком соломы. А нарушивших правила сии розгами драть нещадно» (или что-то в этом роде).
Равноправия нет и сейчас — кто платит, тот и заказывает музыку. А платит заказчик.
Примечание от 10.05.2014 г. — Но не все так печально Если действовать с умом, то можно запросто прогнуть любого заказчика, см. Как писать техническую документацию? и Урегулирование разногласий и разрешение споров между заказчиком и исполнителем.
Современное состояние
. и было придумано то, что сделали танк.
из серии «Армейские приколы»
Может быть, все было иначе, но танк, в целом, получился хорош — что подтверждается и представителями ГОССТАНДАРТа, и отзывами опытных разработчиков.
Техническое задание и его назначение
Большому Боссу, непосредственно взаимодействующему с заказчиком, техническое задание дает возможность избежать участи мастера-умельца (об этом ранее упоминалось неоднократно).
Для маааааааленького техписа, работающего на Большого Босса, разработка технического задания есть:
- средство заработать себе «таки на покушать»;
- способ показать, что техпис — не тварь дрожащая, а право имеет — способ вырасти в глазах Большого Босса.
Крайнее утверждение — палка о трех концах. Ах, ты умный, умеешь? Так на тебе еще работенки. А жалование поднимем. Когда-нибудь.
В любом случае способность грамотно разработать техническое задание (особенно — владение терминологией) — показатель высокой квалификации разработчика.
Считаем, что первый вопрос (в первом же приближении) закрыт.
ГОСТы на технические задания
Куст есть совокупность веток, произрастающих из одной точки.
После тяжких трудов (и страданий) увидели свет, как минимум, четыре документа, соответствующие весьма условному делению продуктов человеческой жизнедеятельности:
- ГОСТ 2.114-95 Единая система конструкторской документации. Технические условия;
- ГОСТ 19.201-78 Единая система программной документации. Техническое задание. Требования к содержанию и оформлению;
- ГОСТ 15.016-2016 Система разработки и постановки продукции на производство. Техническое задание. Требования к содержанию и оформлению;
- ГОСТ 34.602-89 Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы.
- Существуют и иные отечественные ГОСТы, содержащие требования к содержанию и оформлению документа «Техническое задание». Сей факт обусловен спецификой предметных областей. Перечисленная четверка была и остается основополагающей для большинства предметных областей;
- Техзадание было и остается основополагающим документом, той самой «точкой опоры», из которой все и произрастает.
Что общего в разделах перечисленных выше документов? Любое техническое задание должно содержать разделы, отражающие сведения:
- что надо сделать;
- для чего, с какой целью надо сделать это;
- где, в какой области применения, на каком объекте это должно решать задачи и выполнять свои функции;
- какие требования будут предъявлены к этому;
- какие работы потребуется выполнить, чтобы сделать это;
- каков порядок проведения испытаний и приемки-сдачи работ заказчику;
- как должно быть задокументировано проведение работ;
- и, наконец, на основании каких нормативно-технических документов должны проводиться работы?
Такова обобщенная структура разделов технического задания. Второй вопрос считаем закрытым.
Потребовалось разработать техническое задание на изделие — пользуемся ГОСТ 2.114-95, поскольку ГОСТ 15.001 — кривой по жизни, а разделы технических условий (в целом) соответствуют разделам технического задания. Надо ТЗ автоматизированную систему — открываем ГОСТ 34.602-89. На программу — ГОСТ 19.201-78.
Покажем необходимый минимум практических приемов, позволяющих даже самому начинающему техпису немедленно приступить к разработке содержимого разделов техзадания и достичь приемлемых результатов (отдельные готовые структурные элементы технического задания по ГОСТ 34.602-89 можно найти в «подвале» данной статьи).
Практические приемы разработки технического задания
Практические приемы разработки технического задания буквально выстраданы на основе опыта взаимодействия с заказчиком как самого автора, так и его старших товарищей, за что низкий им поклон, почет и уважение (и ныне, и присно, и во веки веков. Аминь).
Самый первый прием — создание шаблонного документа с ГОСТированной структурой разделов. Если Боссом поставлена задача разработки технического задания, положим, на автоматизированную систему, скачивается ГОСТ 34.602-89 в виде htm-файла, затем просто открывается вордом и сохраняется в формате dot.
Электронные версии ГОСТов, хранящиеся на Интернет-ресурсах, в целом соответствуют официальным бумажным версиям. Сомнительные моменты всегда можно проверить путем сравнения, если не лень, конечно.
Примечание от 25.12.2011 г. — На сайте Ростехрегулирования (protect.gost.ru) не так давно стали публиковать официальные версии ГОСТов, правда, далеко не в редактируемом формате.
Детализация
Детализация — один из основополагающих приемов. Кое-кто предпочитает наукообразный термин, заимствованный у буржуев — декомпозиция. Речь пойдет о детализации структуры разделов ГОСТов на техническое задание.
Вспомним родительское — «пока ты не разложишь все по-полочкам, «ничего у тебя не получится (мама)» или «ни хрена у тебя не выйдет (папа)». И мама, и папа, безусловно, были и остаются бесконечно правы. Несложную задачку по физике решить невозможно, пока векторы сил не будут разбросаны по осям координат. Тройной интеграл взять невозможно, пока не будут поочередно взяты интегралы по dx, dy и dz. За исключением случая, когда «интеграл настолько прост, что взять его можно даже без dx».
Произвольно выбранная цитата из ГОСТ 34.602-89:
Здорово, да? Придется разгрести эту свалку. Итак, явным дроблением создаются дополнительные подпункты технического задания (это и можно, и нужно делать).
4.3.2.1 Требования к лингвистическому обеспечению системы
4.3.2.1.1 Требования к применению в системе языков программирования высокого уровня
4.3.2.1.2 Требования к языкам взаимодействия пользователей и технических средств системы
4.3.2.1.3 Требования к кодированию данных
4.3.2.1.4 Требования к декодированию данных
4.3.2.1.5 Требования к языкам ввода-вывода данных
4.3.2.1.6 Требования к языкам манипулирования данными
4.3.2.1.7 Требования к средствам описания предметной области (объекта автоматизации)
4.3.2.1.8 Требования к способам организации диалога
Примечание — Термины «понятность», «понимаемость» (understandability) фигурируют сразу в нескольких ГОСТах. Вот квинтэссенция — «совокупность свойств чего-то, характеризующая затраты усилий человека на понимание логической концепции этого чего-то».
После трансформирования сплошного текста в перечисление (перечень, список, подразделы, подпункты) на понимание (хотя бы запоминание) логической концепции структуры технического задания автору потребовалось меньше времени (и затрат усилий), поскольку подпункты стали явно «видны».
Детализация, детализация и еще раз детализация. До приемлемого (атомарного) уровня.
Шаблонное построение фраз
Следует взять на вооружение тот факт, что в каждом вопросе (правильно поставленном) — половина ответа. Допустим, необходимо сформулировать текст подпункта «Требования к применению в системе языков программирования высокого уровня». Итак:
4.3.2.1 Требования к применению в системе языков программирования высокого уровня
В системе должны быть (именно должны — это же требования!) применены перечисленные ниже языки программирования высокого уровня:
- язык C++;
- язык Pascal;
- и т.д.
Для тех, кто не прочувствовал, как построить фразу, слева приведена схема ее построения.
Еще один пример — Требования к численности и квалификации персонала системы и режиму его работы. Настоятельно рекомендуется не забывать о детализации, за детализацию разделов технического задания никто никого еще не наказывал. Итак, пишем пункт технического задания:
4.1.2 Требования к численности и квалификации персонала системы и режиму его работы
(детализируем — создаем подпункты 4.1.2.1, 4.1.2.2 и 4.1.2.3)
4.1.2.1 Требования к численности персонала
(правильно формулируем текст подпункта — отвечаем на вопрос, каким требованиям должна удовлетворять численность персонала)
Численность персонала должна удовлетворять требованиям:
- быть достаточной для реализации автоматизированных функций (процессов) системы во всех режимах работы системы;
- обеспечивать полную занятость персонала при реализации автоматизированных функций системы и т.д.
4.1.2.2 Требования к квалификации персонала
Квалификация персонала должна обеспечивать эффективное функционирование технических и программных средств системы во всех режимах работы системы»
В пояснительной записке, в решениях по квалификации персонала, можно будет указать, что, на основании опыта эксплуатации более сотни ранее разработанных аналогичных систем, персонал должен иметь образование не ниже трех классов церковно-приходской школы. Сие утверждение порадует заказчика. Можно будет воспользоваться сверхдешевой рабочей силой. Но об этом в следующих статьях.
4.1.2.3 Требования к режиму работы персонала
Режим работы персонала — трехсменный круглосуточный.
В подразделе предусмотрен также порядок подготовки персонала, контроля знаний и навыков. О составе — ни слова. И это правильно. Состав персонала, деление его на оперативный (пользователей), эксплуатационный, ремонтный и пр., определяется при проектировании системы. Хотя никто не может запретить добавить в техническое задание Требования к составу персонала.
Пожалуй, не стоит.
Простенько, но со вкусом. Чистая практика, без глубокого погружения в языковые тонкости. Детализация плюс анализ конктерных требований технического задания.
Формализация при подготовке текста технического задания
Возможно Двести Вариантов
Один из двухсот вариантов расшифровки аббревиатуры «ВДВ»
Вернемся к примеру из предыдущего подраздела статьи.
4.1.2.1 Требования к численности персонала
Численность персонала должна удовлетворять требованиям:
- быть достаточной для реализации автоматизированных функций системы во всех режимах работы системы;
- обеспечивать полную занятость персонала при реализации автоматизированных функций системы и т.д.
Лапша полнейшая, но формально все верно. Рекомендуется к применению, если невозможно конкретизировать какой-либо пункт технического задания. Если Большой Босс не будет удовлетворен, можно вежливо попросить его уточнить требования заказчика по данному пункту, дать более точную информацию. Это право техписа, не контактирующего непосредственно с заказчиком.
Можно добавить — «численность персонала уточняется на стадии «Технический проект»». Большой Босс будет поражен такой осведомленностью техписа (даже если и сам ни черта не знает) в части стадий и этапов создания автоматизированных систем. А если устно предложить Боссу добавить (потом) в пояснительную записку к проекту фразу — «на основе опыта эксплуатации более сотни ранее разработанных подобных систем численность персонала должна составлять 10 штатных единиц» — Босс будет сражен наповал. Можно смело готовить Приказ о назначении техписа на должность системного аналитика (которая также отсутствует в общероссийском классификаторе). Или ждать, что подкинут дополнительную работенку, раз такой умный.
Примечание от 17.04.2018 г. — В ОКПДТР должность технического пейсателя тоже отсутствует. А должность укладчика текста так и осталась с прежних времен
Штампы и унификация при подготовке текста технического задания
Вы, бабы, красивы,
А я — без прикрас
Но, все же, мужчины
Ю. Рыбчинский, «Две сестры»
Унификация текста техзадания достигается применением штампов. Прежде всего следует усвоить простую истину — никогда, ни в одном документе не следует называть вещи своими именами.
Положим, разрабатывается универсальный преобразователь энергии солнечного излучения в энергию человеческого разума (Существование человеческого разума сомнительно. Разумно ли вешать на свою шею работу по созданию такого преобразователя? А вот рефлексы существуют объективно). Следует сразу, в разделе «Наименование изделия» обозвать этот самый преобразователь Изделием:
Наименование изделия — преобразователь энергии солнечного излучения в энергию человеческого разума (далее по тексту — Изделие).
И, в тексте — Изделие, Изделие, Изделие.
Тоже самое относится к программным изделиям и автоматизированным системам. Наименование АС — автоматизированная система раздачи грубых кормов для крупного рогатого скота (далее по тексту — Система).
И, в тексте — Система, Система, Система. Программа, Программа, Программа.
Итог — догнали и завалили сразу двух зайцев. Склонять-спрягать целую кучу слов не потребуется, да и читать построенное таким образом техническое задание будет проще.
Примечание от 05 февраля 2010 г. — При автоматизированной разработке техдокументации с применением single source приемлем как вариант со всякими склонениями-спряжениями, так и без них. К примеру, можно единожды создать переменную и вставлять в требуемые топики библиотеки документов — так иногда бывает удобнее.
Ниже — типовые перечни штампов, долго и успешно применяемых при разработке технических заданий (по основным разделам, выделено жирным):
- назначение системы — система предназначена для решения перечисленных ниже задач:
- задачи такой-то (первой);
- задачи сякой-то (второй);
- и так далее.
- увеличение скорости. ;
- повышение точности. ;
- уменьшение издержек. ;
- снижение потребления. ;
- улучшение показателей. ;
- и так далее.
Любая цель всегда подразумевает положительную динамику, изменение каких-либо показателей в лучшую сторону. К примеру, цель — повышение благосостояния всего советского народа (но не коммунизм: коммунизм — это мишень!). Цель — повышение удовлетворенности заказчика. Исключение составляют:
- получение прибыли (в контексте технического задания);
- подписание Акта завершения работ заказчиком.
Встречаются еще и не такие фокусы. Пример из практики одного из самых маститых техписов (пример привел он сам, без всякого принуждения, в одном из техписовских форумов) — «программа позволяет. программа выполняет. программа делает. ». Милостивый государь, технический писатель! Программы еще нет, она еще не разработана, не проверена, не отлажена, не настроена, не испытана и не сдана заказчику, поэтому еще ничего не позволяет, не делает и не выполняет. Что за непобедимая совковая привычка выдавать желаемое за действительное?!
- требования к функциям (задачам), выполняемым системой — система должна обеспечивать возможность выполнения перечисленных ниже функций:
- в рамках первой задачи — выполнение функции такой-то, такой-то и еще какой-то;
- в рамках второй задачи — выполнение функции такой-то и пр.
Если функция (как и процесс) автоматизированная, тогда именно обеспечивать возможность выполнения указанной функции. Пользователь может убрать стопор — мельница начнет молоть муку. Но пользователь может стопор и не убрать. В указанном случае мельница (система) будет находиться в режиме ожидания (простоя).
Если функция (как и процесс) автоматическая, тогда система должна именно обеспечивать выполнение функции. Функция автоматического резервирования базы данных запускается программными средствами системы (без участия персонала) по заданному расписанию и сливает базу данных на резервный носитель.
По части рамок задач. Задачи решаются, а функции выполняются. Чтобы решить задачу, надо выполнить ряд функций, процедур или операций. Иными словами — задача есть более крупный структурный элемент вопреки измышлениям ГОСТ 34.003-90.
В ГОСТ 34.003-90 функция поставлена впереди задачи, задача является как бы частью функции. И это странно: еще в школе все решали задачки, вычисляя внутри них значения различных функций. И представьте себе, как дико звучала бы декларация: «Цель партии и правительства — повышение благосостояния всего советского народа.
Ради достижения цели партия ставит перед собой функцию обеспечения к 2ххх году каждой семьи отдельной квартирой». (Кстати, заниматься уборкой домов и квартир> самостоятельно сейчас уже не модно и некогда особенно — для этого есть клининговые компании). Таким образом, функция является частью задачи, а не наоборот. Пусть даже вопреки священному ГОСТ 34.003-90.
В рамках задачи (или для решения задачи) ведения базы данных программные средства системы должны обеспечивать выполнение перечисленных ниже функций:
- автоматизированной функции добавления записей в таблицы базы данных;
- автоматизированной функции удаления записей из таблиц базы данных;
- автоматизированной функции сортировки записей в таблицах базы данных;
- . ;
- функции автоматического резервирования базы данных.
И из предыдущего подраздела:
- должны быть. ;
- должна удовлетворять требованиям..
В результате применения штампов тескт технического задания становится унифицированным и формализованным. Никаких прикрас. И заказчик-мужчина никуда не уйдет от вас, милые девушки-техписы, поскольку требования технического задания будут для него прозрачны.
Перечни и нумерация разделов
Перечни (маркированные или нумерованные списки) весьма уместны при подготовке текста технического задания. Нормальный человек способен воспринять (запомнить и безошибочно воспроизвести) от трех до девяти элементов перечня. Свыше девяти — признак гениальности.
В эксплуатационных документах, пожалуй, число элементов перечня следует снижать. В техническом задании — необязательно. Следует помнить, что техническое задание взаимоувязано с множеством иных документов, разрабатываемых на различных стадиях и этапах создания системы (да чего угодно).
«В рамках задачи (или для решения задачи) ведения базы данных программные средства системы должны обеспечивать возможность выполнения перечисленных ниже функций:
- автоматизированной функции добавления записей в таблицы базы данных;
- автоматизированной функции удаления записей из таблиц базы данных;
- автоматизированной функции сортировки записей в таблицах базы данных. ;»
«4.3.2.1 В рамках задачи (или для решения задачи) ведения базы данных программные средства системы должны обеспечивать возможность выполнения перечисленных ниже функций:
- автоматизированной функции добавления записей в таблицы базы данных;
- автоматизированной функции удаления записей из таблиц базы данных;
- автоматизированной функции сортировки записей в таблицах базы данных. ;»
Отличия, казалось бы, невелики. Но!
В первом случае, в документе «Программа и методика испытаний», придется написать «методика проверки выполнения системой автоматизированной функции добавления записей в таблицы базы данных».
Во втором случае, всего-навсего — «методика проверки выполнения п. 4.3.2.1(1) технического задания».
В протоколе испытаний, в первом случае — «требования технического задания к выполнению автоматизированной функции добавления записей в таблицы базы данных выполнены». Во втором случае — «требования п. 4.3.2.1(1) технического задания выполнены». Есть разница?
Что касается многоуровневой нумерации разделов, подразделов, пунктов и подпунктов — на практике указанные требования в подавляющем большинстве случаев обязательны.
По ГОСТ 2.105 списки следует «нумеровать» не цифрами, а буквами:
а) функция такая-то;
б) функция еще какая-то;
Вопрос принципиальный, поскольку ТЗ на АС (дополнение к ТЗ) до передачи его на утверждение должно быть проверено службой нормоконтроля организации — разработчика ТЗ и, при необходимости, подвергнуто метрологической экспертизе [из 8 прил. 1 ГОСТ 34.602-89]. Ведь если техническое задание разработано криво (по форме и по существу), кривыми будут проектные и эксплуатационные документы.
Чуть-чуть о метрологической экспертизе. Если в ТЗ имеется подраздел «Метрологическое обеспечение. », то метрологическая экспертиза должна быть проведена по полной программе. Если указанный подраздел отсутствует, то метрологическая экспертиза сводится к проверке сокращений физических величин согласно ГОСТ 8.417. И только.
Связка «общие сведения, назначение и состав» в техническом задании
Связка «общие сведения, назначение и состав» прекрасно показала себя не только при разработке технического задания. Связка подойдет для любых нехудожественных текстов описательного характера.
Пример — Требования к числу уровней иерархии и степени централизации системы. Вот что можно написать в указанном подразделе технического задания?
Любой человек начнет рефлекторно просматривать разделы ГОСТа на техническое задание, пытаясь найти хоть какую-то зацепку. Человек с опытом сразу вспомнит о назначении системы.
2.1 Назначение системы
Товарищ, непосредственно что-то там паяющий, налаживающий, программирующий, всегда сможет подсказать техпису, для чего система создается. В рамках своей компетенции, разумеется. Системотехник или Босс скажут больше. Допустим,
Система должна обеспечивать решение (возможность решения) перечисленных ниже задач:
- задачи сбора данных с каких-то, допустим, датчиков;
- задачи обработки, хранения, отображения и пр. информации в центре сбора.
Вот и все. Немного фантазии, и раздел готов:
Система должна обладать иерархической структурой и включать в себя перечисленные ниже уровни иерархии:
- 1-й уровень — уровень сбора данных;
- 2-й уровень — уровень консолидации данных (централизованная обработка, хранение и пр.).
Снова оба зайца — и наповал. И уровни иерархии перечислены, и степень централизации. А что дальше?
Дальше — применение связки.
2.1.1 Уровень сбора данных
2.1.1.1 Общие сведения
Какие-то общие сведения. Можно, к примеру, написать, что уровень характеризуется территориальной распределенностью — любая водичка сойдет, если она приблизительно соответствует.
Уровень сбора данных предназначен (еще один штамп):
- для передачи данных каких-то датчиков уровню консолидации по запросу (инициативе) крайнего (последнего);
- для протоколирования события передачи данных в журнале событий (а если по ГОСТу, то в контрольном журнале);
- еще для чего-то.
В состав уровня сбора данных должны входить:
- датчики такие-то;
- датчики еще какие-то.
В чем удобство использования связки «общие сведения, назначение и состав»? А невольно получается хорошо структурированное техническое задание — древовидное и иерархическое.
2.2.2.3.1 Датчики такие-то
2.2.2.3.1.1 Общие сведения (о таких-то датчиках)
2.2.2.3.1.2 Назначение (таких-то датчиков)
2.2.2.3.1.3 Состав (таких-то датчиков)
Главное — вовремя остановиться.
Предостережение
При разработке и документировании наибольший интерес представляют перечисленные ниже нормативные документы:
- прежде всего — стандарты на термины и определения. Для автоматизированных систем таким стандартом является ГОСТ 34.003-90; , например ГОСТ 34.602-89 и РД 50-34.698-90; ; , например ГОСТ 34.601-90; ; и контроля, например ГОСТ 34.603-92;
- ряд других основополагающих стандартов.
Не следует особенно увлекаться подобными «тематическими» ГОСТами, содержащими очень уж конкретные требования к компонентам системы. Характерная ошибка начинающих — «каналы связи должны удовлетворять требованиям ГОСТ такому-то». Это фатальная ошибка. Известно, что приемке-сдаче работ по созданию системы, изделия, программного изделия всегда предшествует проведение испытаний.
Допустим, Большой Босс, пораженный глубокими познаниями техписа, доверился оному, читать ничего не стал и черканул на титульном листе технического задания утверждающую подпись (под УТВЕРЖДАЮ, в правом верхнем углу титульного листа). Заказчик, с гнусной ухмылкой, аккуратно поставил свою (под УТВЕРЖДАЮ, в левом верхнем углу). Все, техническое задание утверждено и внести в него изменения или корректировки возможно только по дополнительному соглашению с заказчиком. Вот тут-то техпис и попал.
Настало время проведения испытаний системы (программы, изделия) на соответствие требованиям технического задания. Заказчик, само собой, потребует показать, что каналы связи соответствуют требованиям ГОСТа такого-то.
Что делать? Полбеды, если каналами связи занимался субподрядчик, готовый предоставить Большому Боссу сертификаты соответствия. Босс отмажется перед заказчиком и техпис будет жить (до очередного прокола). Но неприятный осадок в душе Большого Босса останется навсегда. Повышения ждать не приходится.
Совсем беда, если сертификатов нет. Придется Боссу платить (не предусмотренные бюджетом) денежки органу сертификации, дабы заполучить вожделенный сертификат, предъявить заказчику и закрыть работу. Такую ошибку техпису могут и не простить.
Короче, писать надо примерно так, русским по белому:
«В качестве каналов связи могут быть применены (использованы):
- каналы связи Интернет-провайдеров;
- каналы операторов сотовой связи;
- каналы операторов спутниковой связи;
- коммутируемые телефонные линии общего пользования; объекта заказчика;
- и так далее»
Ни в коем случае нельзя указывать скорость обмена данными канала связи, т.е. конкретику. Если канал связи будет реализован на базе Ethernet, а в техническом задании будет явно указана скорость обмена не ниже 1200 бит/с, заказчик имеет полное право заставить исполнителя провести испытания по полной программе. Даже в такой, явно абсурдной ситуации.
Заключение
Итак, вспомним еще разок ключевые моменты:
- подготовка шаблона технического задания импортом электронной версии требуемого ГОСТа;
- детализация — дробление больших по объему разделов технического задания на короткие простые подразделы;
- шаблонное построение предложений в разделах (подразделах и пр.) технического задания так, чтобы «в ответе оказывалась половина вопроса»; содержимого тех разделов, где невозможно (или опасно) давать конкретику;
- применение штампов;
- применение перечней (маркированных или нумерованных списков);
- применение связки «общие сведения, назначение и состав»;
- минимальное применение «тематических» ГОСТов.
Учебно-тренировочное техническое задание на программу было разработано автором с применением перечисленных в статье практических приемов.
В заключении можно дать ряд дополнительных советов:
- отыскать «рыбу» технического задания и, после критического ее осмысления, позаимствовать содержимое подходящих разделов (только не с известного всем ресурса закупки.гов.ру — там лежит чушь полнейшая);
- пользоваться учебно-тренировочными документами;
- без стеснения задавать вопросы.
Заимствуйте наши материалы с блеском! При воспроизведении материалов портала tdocs.su установка активной гиперссылки на источник (адрес веб-страницы с заимствованной публикацией) обязательна ☠
Источник: tdocs.su