чтз и тз в чем разница
Всегда ли нужен ГОСТ при разработке крупных проектов?
При написании требований к информационной системе (ИС), если она предназначена для госсектора или отдельных крупных предприятий, от подрядчика ожидают соблюдения ГОСТ 34 или 19.
Даже частные компании могут требовать документацию по ГОСТу, считая, что следование стандартам гарантирует качество ПО. Однако, хотя такой подход обоснован в производстве мороженого и многих других продуктов, в IT-индустрии у него есть определенные минусы — и в статье мы рассмотрим их подробнее.
Попробуем разобраться, почему вокруг ГОСТов сложилась такая ситуация и как можно выстроить работу с ними без ущерба для эффективности процессов.
Кому будет полезна статья:
представителям заказчиков (в первую очередь государственных), заинтересованным в получении результата, а не кипы бумаг;
тендерным специалистам со стороны как заказчика (специалистам по закупкам), так и исполнителя;
заинтересованным лицам команды разработки (аккаунтам, ПМ, аналитикам).
Если у вас есть опыт в этом вопросе, мы рекомендуем перейти к части второй, где мы расскажем, “откуда растут ноги” у ГОСТа и так ли он неизбежен при работе с госзакупками.
Часть 1. Общие понятия
Что такое техническое задание (ТЗ) и зачем оно нужно?
Представим себе абстрактную ситуацию: заказчику нужно произвести некий продукт. Для того, чтобы донести свою потребность исполнителю, заказчик фиксирует требования в следующем виде: “Система должна автоматизировать процесс получения услуги Х”. Заказчик считает необходимым указать лишь эти детали, возможно, считая всё остальное очевидным — но здесь есть риск ошибиться.
Отдельные вопросы очевидны для заказчика потому, что он живёт и работает в определённой парадигме, свойственной именно его роду занятий. При этом картина мира разработчиков будет кардинально отличаться от представлений заказчика, а значит, они могут иначе понять требования к продукту.
Если требования не проработаны совместно, возможна ситуация, когда продукт будет соответствовать восприятию разработчика, а не заказчика. В этом случае заказчик будет настаивать на изменениях в рамках оговоренного бюджета, а разработчик окажется недоволен тем, что должен за свой счет вносить изменения в продукт, который отвечает всем формально заявленным требованиям.
Однако, квалифицированный разработчик, скорее всего, не возьмется за выполнение слишком абстрактной задачи или, как минимум, разъяснит все минусы и риски такого подхода.
Для того, чтобы избежать недопонимания, одной из сторон следует задать уточняющие вопросы, а ответы зафиксировать в виде тезисов (как правило, эту роль берет на себя разработчик с необходимой экспертизой). Таким образом, он создает документ, детально описывающий требования к будущей системе, комплексно и с учётом всех “да, но” и “что, если”. Этот документ сочетает две парадигмы, заказчика и разработчика, помогая им говорить на одном языке и правильно понимать друг друга.
Между тем, «как это должно быть» (по требованию заказчика) и «как меня просят сделать» (в восприятии исполнителя) может быть огромная разница. Задача ТЗ — свести её к нулю.
Проекты без технического задания
Существуют задачи, которые не требуют полноценного ТЗ – например, когда проект сравнительно невелик или нужно лишь доработать часть готовой системы. В этом случае детализация требований может зависеть от методологии разработки, времени, погруженности каждого участника в проект и прочих сопутствующих факторов.
Тем не менее документация НУЖНА, даже если это просто описание user stories. Иногда команде достаточно иметь определенные паттерны, чтобы понимать, что определенная user story предполагает наличие функции, которая должна быть реализована тем или иным способом.
Таким образом, требования необходимы практически на любой стадии производства продукта и в конечном счете напрямую влияют на его качество.
Часть 2. ГОСТ: необходимость или неизбежность?
История вопроса
Начнём с того, что, исходя из здравого смысла, ТЗ всегда должно иметь структуру. Это непреложное правило: иначе невозможно ни управлять требованиями, ни качественно их реализовывать.
Помимо этого, требования должны быть подробными и исчерпывающими. В ином случае на стадии разработки будет больше простора для «творчества», и как следствие, есть большой риск получить продукт, не соответствующий поставленной задаче.
Для того, чтобы требования были максимально понятны всем участникам и детализированы в достаточной степени, требуются правила (стандарты). Исторически сложилось так, что при производстве информационных систем, по большей части в государственном секторе, для описания требований, используется ГОСТ 34.602-89 «Техническое задание на создание автоматизированной системы».
В СССР система ГОСТов была призвана сформулировать требования государства к производству продуктов, которые имеют важное межотраслевое значение. ГОСТы описывали требования к качеству и правилам производства таких продуктов. На сегодняшний день применение ГОСТов преимущественно добровольное, за некоторым исключением в части оборонзаказа.
Так как же получилось, что ГОСТ 34.602-89 стал практически обязательным для государственного заказчика?
Серия ГОСТ 34 рассматривает не только производство ТЗ. Она была создана как единый комплекс стандартов и регламентирует все стадии производства ИС, а также артефакты, которые в результате появляются.
Серия ГОСТ 34 описывает правила проведения испытаний при приемке работ. Исходным документом для программы и методики испытаний является ТЗ. При этом для госзаказчика проведение испытаний – очень важная часть контракта.
Стандарт используют по инерции, потому что долгое время не было других альтернатив. Стандарт имел государственное значение, разрабатывался на основе бесценного опыта при участии целых НИИ, а отрасль создания АИС являлась одной из важнейших для государства.
Существуют мнения, что работа над ГОСТ 34 не была доведена до своего логического завершения, тем не менее эта серия приобрела широкую популярность и до сих пор широко используется в России.
Недостатки ГОСТ
Наряду с бесспорными плюсами, ГОСТы серии 34 имеют ряд недостатков:
ГОСТы устарели морально. За время, прошедшее с их выпуска, изменились технологии и подход к процессу разработки, и появились новые более гибкие методологии.
ГОСТы избыточны. Современные гибкие подходы к разработке требуют того, чтобы с документацией можно было работать быстро и с удобством, а требования были понятны каждому члену команды.
В ГОСТ отсутствуют отдельные понятия IT-отрасли, связанные с управлением проектами и рисками.
ГОСТы серии 34 долгое время не актуализировали, они имеют незавершенный вид и зачастую недостаточно подробно рассматривают процессы сопровождения и обслуживания.
Так нужно ли писать ТЗ именно по ГОСТ 34.602-89?
В нашей практике мы придерживаемся мнения, что писать ТЗ исключительно по ГОСТ — как правило, нецелесообразно и даже вредно. Например, если у вас продуктовая разработка, в первую очередь ориентированная на клиента и его текущие потребности, стоит найти более гибкий подход к документации — для того, чтобы быстро реагировать на изменения рынка, в том числе конкурентной среды и потребительского спроса.
Если говорить о ТЗ как о юридическом документе для договора между сторонами, то соблюдать ГОСТ целесообразно, но с некоторыми оговорками. А вот на стадии производства такой документ будет практически бесполезен, так как большинство методологий разработки требуют других подходов и к взаимодействию в команде, и к основному фокусу. Как правило, в центре продукта — пользователь, его инсайты, его реакция на приложение в целом и каждый отдельный элемент.
Что же с госсектором?
ТЗ по ГОСТ 34 для госзаказчиков — это преимущественно юридический документ. Однако, в составе конкурсной документации нет понятия «Техническое задание» — этот документ правильнее называть “техническими требованиями”.
Посмотрим внимательно на состав ТЗ по ГОСТ 34, а именно:
Согласно этим документам, до формирования ТЗ проводится предпроектное обследование, а ТЗ — это неотъемлемая часть уже готового технического проекта. А значит, писать его нужно именно после обследования, но перед выполнением работ.
В ином случае будет сложно и бесполезно писать ТЗ к тому, что еще пока неизвестно. В составе конкурсной документации, как правило, такой документ будет содержать очень много “воды” и подобных формулировок: «Требования будут уточнены на стадии проектирования и зафиксированы в частном техническом задании (ЧТЗ)».
С другой стороны, в нашей практике были случаи, когда заказчик, чтобы снизить возможные риски, стремился создать ТЗ даже более подробное, чем предполагалось по ГОСТу.
В разработке, в отличие от конкурсной документации, ТЗ обычно используют в более развернутом виде (как частное техническое задание). Такой подход нацелен на более быстрое согласование формальностей, например, при проведении государственных торгов. Причина в том, что для госзаказчиков зачастую очень важны сроки, а торги занимают достаточно много времени.
В составе же техпроекта может быть больше документации, описывающей информационную систему такой, какой она должна быть (или такой, какая она есть на текущий момент).
Примеры: руководство пользователя, администратора, описание технических решений, пояснительная записка к проекту, программа и методика испытаний и так далее.
Также бывают случаи, когда на старте полная проработка системы не нужна. Например, для MVP не всегда возможно детально и точно описать всю систему, если нет детальной информации о тех модулях, которые будут добавлены в дальнейшем.
Что же делать?
Многие команды разработки стремятся найти гибкие решения для проектирования, подстраиваясь под пожелания крупного бизнеса и госсектора писать ТЗ по ГОСТ 34.
В частности, разработчики могут сформировать для заказчика отдельный документ (например, на один из модулей системы) по ГОСТ 34, как ЧТЗ. В некоторых случаях подобный документ называют “описанием постановки задачи” (ОПЗ), и он содержит в своем составе описание бизнесовой части, схемы бизнес-логики на основании требований законодательства (НПА). В таком виде документация презентуется заказчику.
Если документация согласована, для команды разработки зачастую пишут новый документ, который имеет в своем составе больше технических деталей, описания алгоритмов, логики автоматизации, схемы логических моделей, интеграцию. Иначе говоря, это вопросы, которые могут не интересовать заказчика, но будут необходимы разработчикам.
Этот документ может быть оформлен не по ГОСТ 34 (так называемая «дельта» для разработки), в нем нет общих формулировок и «воды». Естественно основной документ в базе знаний постоянно актуализируется, после мержа туда таких вот «дельт».
Такой подход тоже не всегда эффективен, как правило, он применим после того, как общая архитектура приложения согласована и уже определены подходы, выбраны методы разработки, стек технологий. (Кстати, подозреваем, что, скорее всего, отсюда и пошло деление на бизнес-анализ и системный анализ).
Другие стандарты
Помимо ГОСТ, существуют международные стандарты по проектированию требований, зачастую более современные:
Также есть стандарты и нотации практически для любой области разработки, например, по управлению услугами в сфере IT (SERVICE DESK) — ITIL Foundation.
На такие стандарты опираются международные сертификационные организации, например, IREB (International Requirements Engineering Board). В нашей команде аналитики по желанию проходят сертификацию IREB, и по нашим наблюдениям, многие заказчики обращают на это внимание (хотя если у специалиста нет сертификации, он все равно может иметь глубокие знания).
Выводы
По нашему мнению, стандарты – вещь, безусловно, полезная. На них можно и нужно опираться. Но делать ГОСТ “священной коровой” и считать его единственно верным стандартом составления технической документации – ошибочно, поскольку стандарты постепенно устаревают морально, технически и лексически.
Как правило, разработчики понимают, что следование ГОСТ в некоторых проектах имеет некую традиционную, “церемониальную” ценность, и к этому просто нужно адаптироваться. Однако, не следует забывать о здравом смысле. Как мы описали выше, можно сохранить гибкость и в жёстких условиях ГОСТа. Это справедливо как для заказчиков, так и для исполнителей.
Следуете ли вы ГОСТу или свободны в составлении документации, важно придерживаться нескольких принципов, направленных на качество требований. В их числе:
атомарность (независимость от других требований);
абстрактность (независимость от способов реализации);
Независимо от того, в какой форме нужна документация, будет уместен принцип «чем проще, тем лучше». Даже если ТЗ составлено по весьма избыточному ГОСТу, «текст ради текста» недопустим – нужно стремиться к полноте и простоте.
Спасибо за внимание! Будем рады услышать ваши мнения в комментариях.
Коллеги, возник вопрос по ТЗ.
Есть утвержденное ТЗ на АС. АС состоит из соответствующих подсистем, одна из которых в частности предназначена для получения информации из другой, сторонней АС.
Вот на эту подсистему необходимо разработать Частное Техническое Задание.
Вопросы:
1. Совпадает ли по структуре ЧТЗ ТЗ?
2. Есть ли смысл прописывать в ЧТЗ те разделы, которые уже существуют в общем ТЗ? Например, информационное обеспечение и т.п. общую муть.
3. Ваш опыт в создании ЧТЗ, если он есть, то хотелось бы услышать.
P.S. Заказчику не нужна вода в документации!
Спасибо.
ЧТЗ пишут, как правило, на составную часть чего-либо.
Привет, форумчане!
Есть вопрос по этой теме:
Имеется ТЗ на некоторую АС (IT-область), работы по которому выполнены, шампанское и другие горячительные напитки за их выполнение выпиты
Через некоторое время заказчик просит разработать дополнительный функционал АС, который частично использует основной. У нас это решается составлением ЧТЗ, в котором рассматриваются требования только на новый функционал.
Но как быть, если этот функционал частично использует уже рабочий и внедренный функционал?
Можно ли в требованиях сослаться на родительское ТЗ для обеспечения этих требований или необходимо эти требования продублировать полностью?
С уважением, Сергей.
Документирование в разработке ПО
INTRO
Добрый день, уважаемое сообщество.
Позвольте представиться. Я бизнес-аналитик, уже десять лет работаю в области разработки заказного программного обеспечения, в последнее время совмещаю роли аналитика и руководителя проектов.
Одним из болезненных вопросов в разработке ПО всегда был и остаётся процесс документирования этой самой разработки. Вам доводилось приходить на проект, который делают уже пару лет, но, при этом, вы никак не можете с ним разобраться, потому что из документов есть одно техническое задание, да и то написано в самом начале и не отражает и половины функционала системы? Мне доводилось. И это, честно говоря, очень печальное и байтораздирающее зрелище.
Поэтому на всех своих проектах я стараюсь изначально построить процесс так, чтобы неопознанного и неописанного функционала не было, все члены команды вовремя получали актуальную информацию и вообще был мир во всём
Итак, для начала отвечу на главный вопрос: для чего всё это нужно.
Есть несколько причин.
1. Документация обеспечивает «общее пространство» проекта. Любой участник в любой момент времени может получить необходимую информацию как по конкретной задаче, так и по общему направлению работы.
2. Команда говорит «на одном языке» — ведь гораздо проще понять человека, сообщающего «об ошибке в функции, описанной в Use Case №12», чем «о стрёмном баге в той фигне, которую Вася месяц назад делал».
3. Документирование позволяет четко разграничить зоны ответственности между участниками проекта.
4. Только тщательно описанные требования могут быть проверены на полноту и непротиворечивость. «Наколенные записки» — прямой и очень быстрый путь к тому, что границы проекта расползутся резвыми тараканами, а функционал, задуманный вначале, не будет монтироваться с возникающими в процессе «хотелками» заказчика.
Для себя я выработала набор базовых правил, которые позволяют эффективно документировать, планировать и контролировать разработку в комфортных для всех участников условиях.
1. Документация не должна быть избыточной и объемной. Мы пишем документы не за-ради приятного процесса постукивания по клавишам, а для того, чтобы их использовать в работе. Избыточное количество текста – раздражает и затрудняет восприятие.
2. Вся схема документирования проекта должна быть взаимоувязанной и логичной. Если в схеме существует документ, который не связан ссылкой с каким бы то ни было другим документом, то его можно безболезненно из схемы исключить.
3. Вся оценка трудозатрат должна производиться только на основании описанных атомарных задач. Сложно оценить разработку «функционала подсистемы ввода данных», гораздо проще оценить задачи «разработка формы ввода данных марсиан» и «разработка фильтра списка марсиан». Чем мельче оцениваемый элемент – тем точнее будет агрегированная оценка.
4. Всегда необходимо формировать списки оповещения заинтересованных участников. Разработчик, узнающий о необходимости доработки за три дня до релиза – это зло и подлейшая подлость, аналитик, втихаря поменявший требования и не уведомивший всех заинтересованных участников о необходимости доработки – последняя свинья, а РП, допустивший такую ситуацию – чума, холера и неприятный человек, который не справляется со своими обязанностями.
Я предлагаю на суд уважаемого сообщества схему документирования, которая кажется мне удобной, логичной и правильной. И – да, это работает.
Итак, какие типы документов используются в схеме.
1. Техническое задание.
2. Частное техническое задание (опционально).
3. Сценарий использования (Use Case).
4. Сценарий тестирования (Test Case).
5. Отчет об ошибке (Bug Report).
6. Руководство пользователя.
7. Руководство администратора (опционально).
На рисунке ниже — схема связи между этими документами.
Изначально, при обследовании, формируется Большое Техническое задание.
Оно включает в себя:
• словарь терминов предметной области;
• описание предметной области;
• описание ролевой системы;
• описание функциональных требований;
• описание нефункциональных требований.
Описание требований в этом документе фиксируется на «верхнем уровне», то есть мы описываем не конкретные действия, а только необходимые функции. Требования оптимально разбивать на смысловые группы по подсистемам.
Например, мы описываем подсистему «Администрирование» с функциями «Создание карточки пользователя», «Удаление карточки пользователя», «Редактирование карточки пользователя». Это требования верхнего уровня, ниже в ТЗ опускаться смысла нет.
В случае, если система большая, разумно сделать Частные технические задания на каждую подсистему.
ЧТЗ должны содержать:
• ссылку на пункт ТЗ;
• максимально подробную информацию по каждой функции;
• список UseCases для функции.
Таким образом реализуется преемственность документов, что позволяет, во-первых, унифицировать их форму, во-вторых – частично реализовать повторное использование, то есть снизить затраты времени на «писанину».
Например, мы формируем ЧТЗ на всё ту же подсистему «Администрирование». Оно будет содержать описание функции: «Создание карточки. Необходимо реализовать следующий функционал: вызов карточки посредством кнопки «Создать», интерфейс карточки, содержащий следующий набор полей, сохранение карточки посредством кнопки «Сохранить», отмену сохранения посредством кнопки «Отмена»».
Use Case
Use Case — суть вариант использования, он описывает все действия, которые пользователь может произвести, и реакцию системы на эти действия.
Каждый Use Case должен быть привязан к пункту ЧТЗ.
Наиболее оптимальным, на мой взгляд, является формат описания, включающий в себя:
• Макет экрана. Макеты можно делать и сложные, «кликабельные», но, по опыту, хватает «проволочной диаграммы», сделанной с помощью Visio или аналогичного инструмента. Если на форме предполагается использование модальных окон, то они тоже должны быть прорисованы, нижеописанные таблицы для них должны дублироваться.
• Диаграмму действий экрана, в графическом виде описывающую алгоритм работы функции.
• Таблицу с описанием полей. В строке таблицы должны располагаться следующие данные: название поля, тип поля, ограничение на ввод данных (логические проверки и т.д.), роли пользователей, которым доступно чтение/редактирование поля. Если поле расчетное – то необходимо указывать формулу для расчета значения.
• Таблицу с описанием действия кнопок экрана. В строке таблицы должны содержаться данные о названии кнопки, описание действия при клике и путях перехода, если щелчок по кнопке предполагает переход на другой экран, роли пользователей, которым доступно действие.
Также возможно небольшое общее описание функционала но, как правило, оно просто не нужно.
Test Case
Test Case, что вполне самоочевидно, должен содержать описание тестовых сценариев.
В идеале, каждый такой документ привязывается к соответствующему Use Case, но бывает так, что логично объединить несколько Use Cases в один Test Case.
Оптимальным вариантом формата описания является таблица, содержащая в одном столбце описание атомарной операции, влекущей ответное действие системы, во втором – описание правильной реакции системы. Описывать, к примеру, процесс ввода текста в текстовое поле не нужно, а вот проверку валидности данных при сохранении (щелчке по кнопке «Сохранить») – обязательно.
Bug Report
Ещё немного побуду кэпом: Bug Report возникает в процессе тестирования системы как реакция тестировщика на ошибку. Каждый документ должен обязательно ссылаться на соответствующий Test Case.
Содержать документ должен:
• скриншот возникшей ошибки;
• описание предшествующих действий. Лучше всего разработать удобный для всех шаблон такого описания – это сильно экономит время разработчикам при воспроизведении бага;
• текстовое описание самой ошибки.
Руководство пользователя/Руководство администратора
Самые занудные в написании, но, тем не менее, жизненно необходимые документы.
По сути, их формирование можно даже автоматизировать, если все Test Cases и Use Cases были написаны с должным старанием и правильно оформлены.
Я не буду подробно на них останавливаться, если вдруг тема заинтересует – расскажу о том, как их составление можно автоматизировать.
Разработка Технического задания по ГОСТ 34 легко и просто
Нередко слышишь мнение, что составление Технического задания по ГОСТ 34 (ТЗ) занятие не только трудоемкое, но и крайне раздражающее, поскольку приходится писать много всякой ерунды, воды. Но подумайте: разработкой этого ГОСТа занимались целые НИИ, это был проект на государственном уровне, обобщен опыт сотен проектов автоматизации, сложных проектов. Неужели они могли написать чушь?
На самом деле, при грамотном подходе ГОСТ очень сильно помогает не только при разработке ТЗ, но и в ходе реализации проекта автоматизации в целом (и не только в госконтрактах, но и для коммерческой разработки). Грамотные люди его писали. Но чтобы воспользоваться плодами их трудов, нужно немного понять замысел не только ТЗ, но и ГОСТ 34 в целом.
В данной статье мы пункт за пунктом разберем все требования ГОСТа и попробуем сделать разработку ТЗ по ГОСТ 34 не обременением, а большой помощью в проекте.
1. О чем статья
Нередко слышишь мнение, что составление Технического задания по ГОСТ 34 (ТЗ) занятие не только трудоемкое, но и крайне раздражающее, поскольку приходится писать много всякой ерунды, воды. Но подумайте: разработкой этого ГОСТа занимались целые НИИ, это был проект на государственном уровне, обобщению подвергся опыт сотен проектов автоматизации, сложных проектов. Неужели они могли написать чушь?
На самом деле, при грамотном подходе ГОСТ очень сильно помогает не только при разработке ТЗ, но в ходе реализации проекта автоматизации в целом (и не только в госконтрактах, но и для коммерческой разработки). Грамотные люди его писали. Но чтобы воспользоваться плодами их трудов, нужно немного понять замысел не только ТЗ, но и ГОСТ 34 в целом.
Кстати, ТЗ — это не первый документ, который разрабатывается в ходе проекта автоматизации. Об этом прямо говорится в пункте 1.5. ГОСТ 34.602-89: «ТЗ на АС разрабатывают на основании исходных данных, в том числе содержащихся в итоговой документации стадии “Исследование и обоснование создания АС”». Подробнее см. в моей статье Предпроектное обследования при разработке информационной системы.
ВНИМАНИЕ: ЦЕЛЬ ЭТОЙ СТАТЬИ — НЕ ЗАМЕНИТЬ ГОСТ, А РАЗЪЯСНИТЬ НЕКОТОРЫЕ ЕГО ПОЛОЖЕНИЯ.
2. Характерные особенности Технического задания по ГОСТ 34
2.1. По какому стандарту составляется ТЗ?
Полное наименование стандарта на ТЗ по ГОСТ 34 следующее: ГОСТ 34.602-89 «Информационная технология (ИТ). Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы».
Сам стандарт напечатан всего на 15-и страницах (да-да, совсем немного). Язык — русский, реально русский, а не положенный на кириллицу инопланетный. То есть, если не вбивать себе заранее в голову, что ни тексты ГОСТов, ни федеральных законов, ни диссертаций не доступны для понимания простому смертному, то прочитать и вникнуть вполне возможно, хотя зачастую и не с первого раза.
Действительно, в стандарте используется много непонятных терминов. Что, например, имеется в виду под лингвистическим обеспечением? Для прояснения использующихся понятий следует обратиться к ГОСТ 34.003-90 «Информационная технология (ИТ). Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения».
2.2. Зачем нужен ГОСТ на Техническое задание?
2.3. Какую роль Техническое задание занимает в проекте?
Согласно пункту 1.7 стандарта РД 50-682-89, «техническое задание является основным документом, в соответствии с которым проводят создание АС и приемку его заказчиком». И это действительно главный документ. В нем должно описываться все, что необходимо для разработки и внедрения системы.
ТЗ устанавливает общий облик системы, объем работ (рамки разработки), а также порядок разработки и приемки. Все с ТЗ начинается и все им заканчивается. Этот документ идеально подходит для того, чтобы ваш заказчик понял всю важность и сложность задачи и за что он платит деньги.
Причем ТЗ составляется как для исполнителя, так и заказчика, поскольку проект автоматизации проводят команды с обеих сторон. В любом ИТ-проекте имеется огромное количество организационных мероприятий, выполнение которых без активнейшего участия заказчика невозможно. Объясняйте это заказчикам при каждом удобном случае, иначе у них складывается впечатление, что они должны только заплатить деньги и сидеть ровно: все сделают нанятые ребята. А потом проект терпит фиаско и начинаются разборки. В общем, без реальной команды с той стороны не стоит и начинать проект.
2.4. Насколько ГОСТ 34.602-89 устарел и есть ли более новые стандарты?
Ни насколько не устарел. Мне почти не удалось найти каких-то неактульных вещей. И никто из тех, кто заявляет об устаревании ГОСТ 34, не могут привести ни одного примера (наверное, просто не хватило квалификации для его прочтения?) Дело в том, что ГОСТ описывает общий подход к проекту автоматизации, там не идет речь о программировании, ГОСТ 34 не об этом.
Ну а если говорить о сравнении с другими стандартами, то сравнивать-то особо и не с чем. ГОСТ 34 представляет настолько широкий взгляд на проект автоматизации, что остальные стандарты в подметки не годятся (на мой взгляд). Да, они проще (поэтому и популярнее), но и глубина не та. Вот список стандартов, с которыми стоило бы ознакомиться при разработке собственных стандартов для проекта автоматизации:
3. Общие принципы составления ТЗ по ГОСТ 34
3.1. Какой специалист должен составлять Техническое задание по ГОСТ 34?
Часто разработчики сильно ругаются при составлении ТЗ по ГОСТ 34. Почему? Да потому что это не дело программистов. Техническое задание по ГОСТ 34 вообще можно программистам не показывать. Для этого существуют документы технического проекта. Техническое задание — это документ, который согласовывается с заказчиком, который постоянно на столе у руководителя проекта. ТЗ отвечает на два вопроса: ЧТО должна делать система, и КАК она должна создаваться. Технический же проект отвечает на вопрос: КАК должны быть выполнены требования ТЗ. Например, в ТЗ вы прописываете, что должна быть авторизация по логину и паролю, а в ТП приводите макеты интерфейса, сценарии, структуру базы данных. Почему существует деление на разные этапы и почему не следует сразу делать задание для программистов, смотрите в моих статьях Секреты удачного проектирования ИС (информационной системы) на примере строительства больницы и Предпроектное обследования при разработке информационной системы.
Техническое задание должен составлять бизнес-аналитик, потому что он является «переводчиком» между заказчиком и командой разработки. Задача бизнес-аналитика — разобраться в том, что нужно заказчику и выразить это так, чтобы было понятно команде. И выразить это в виде технического задания. Причем от бизнес-аналитика требуется не просто выслушать заказчика и его сотрудников, а узнать то, о чем они не сказали (а такого обычно более 50%). Поэтому аналитик должен хорошо знать автоматизируемые процессы и за счет своего знания заполнять пробелы, которые остались по результатам обследования.
3.2. Какая сторона должна составлять Техническое задание?
В основном Техническое задание составляется исполнителем? Почему?
Не только потому что так рекомендуется в Приложении 1 к ГОСТ 34-602-89. На самом деле, у заказчика, как правило, отсутствуют соответствующие специалисты. Но ТЗ в обязательном порядке прорабатывается и согласовывается заказчиком. И вот здесь нужно обязательно добиться того, чтобы согласование не было формальным. Я всегда стараюсь настоять на том, чтобы мы вместе с заказчиком подробно разобрали каждый пункт. Ваша цель — вовлечь заказчика в проект. Иначе он так и не сформирует свои ожидания от системы, а значит, во-первых, будет недоволен любым результатом, а, во-вторых, не сможет провести необходимые организационные мероприятия.
3.3. Насколько далеко можно отходить от ГОСТ 34?
У любого шаблона также имеется и существенный недостаток, — это ведь шаблон. То есть шаг вправо-влево, — высшая мера социальной защиты (так раньше называли смертную казнь).
На самом деле, все не так. Любой процессный стандарт (то есть стандарт не на колбасу, а на какую-либо деятельность) дает только общие указания, канву. Он создан, чтобы помочь не забыть что-то важное, передать вам опыт поколений, а не загнать за флажки.
Не верите? Тогда читайте пункт 2.2 ГОСТ 34.602-89 (кстати, цифры после дефиса — год публикации стандарта или его редакции): «В зависимости от вида, назначения, специфических особенностей объекта автоматизации и условий функционирования системы допускается оформлять разделы ТЗ в виде приложений, вводить дополнительные, исключать или объединять подразделы ТЗ». Также в п. 1.2. РД 34.698-90 указано: «Содержание документов является общим для всех видов АС и, при необходимости, может дополняться разработчиком документов в зависимости от особенностей создаваемой АС. Допускается включать в документы дополнительные разделы и сведения, объединять и исключать разделы».
Вообще, если получается привести только общие фразы, за все хорошее, против всего плохого, — не пишите ничего. Иначе читающий документ специалист, встретив такие пассажи, перестанет воспринимать документ серьезно, и важные положения будут упущены. Не делайте чтение документа пыткой!
3.4. Зачем в ТЗ по ГОСТ 34 описывается так много требований, напрямую не относящихся к функциям системы?
Действительно, в ТЗ из 30-и страниц может только 7-10 страниц быть посвящено функциям. У этого есть объяснение. Дело в том, что разработчики ГОСТ 34 совершенно по-другому смотрели на проект автоматизации, чем мы. И смотрели более правильно, более комплексно.
Во-первых, в первой половине ТЗ не просто так приводятся общие сведения о системе и общие требования. Надо понять, зачем система создается, какие процессы автоматизирует, что нужно сделать, чтобы система заработала, какой облик имеет система. Вроде бы банальные вещи, но без них члены команды по-разному будут понимать цель работ и средства достижения цели. Нам очень важно убедиться, что все участники настроены на одну волну, а не как лебедь, рак и щука.
Во-вторых, составители ГОСТ 34 видели систему в первую очередь как людей, а затем уже как программно-аппаратный комплекс. Вот как ГОСТ 34.003-90 определяет автоматизированную систему: «Система, состоящая из персонала и комплекса средств автоматизации его деятельности, реализующая информационную технологию выполнения установленных функций». Таким образом, информационная система — это обученный персонал, программное обеспечение и аппаратный комплекс, все вместе. И правда, отбери у бухгалтеров компьютеры, они с трудом, но смогут выполнять свою работу, пусть и с бумажными реестрами. А вот 1С без бухгалтера самостоятельно работать не будет. Отсюда и множество разделов ТЗ, посвященных организационным мерам. Как говорят, ИТ-система на 20% — это ИТ, все остальное — организационные мероприятия. То есть ТЗ — это документ, в котором прописывается все необходимое для внедрения системы, от А до Я.
В-третьих, обратите на само название ГОСТа 34.602-89: «Техническое задание на создание автоматизированной системы». ТЗ не на систему, а на создание системы. В чем отличие? Отличие в том, что ТЗ устанавливает не только требования к самой системе, но и регламентирует процесс ее создания, то есть в документе приводятся требования ко всем организационным мерам, выполнение которых необходимо для достижения результата. Ведь при реализации проекта автоматизации зачастую следует перестроить ряд процессов, обучить персонал, подготовить аппаратную часть.
В-четвертых, ТЗ представляет собой документ, по которому можно ставить галочки: приняли мы во внимание данное требование или нет. Может, вы поставите 10 галочек чисто автоматически, потому что это будут стандартные решения. Но галочка номер 11 выявит очень большую проблему, и если эту проблему сейчас пропустить, то она всплывет где-то в процессе внедрения, когда уже определены все сроки и бюджеты.
В-пятых, как мы уже говорили выше, ненужные подразделы можно исключать, это допускается. Например, если вы точно знаете, что в ваших разработках не может быть ничего патентованного, то зачем приводить требования к патентной чистоте? Это не тот случай, когда без воды и не туды, и не сюды.
3.5. Зачем в разных разделах говорится об одном и том же?
Действительно, в ТЗ имеются подразделы, которые во многом повторяют содержание других подразделов. Например, имеются требования к организационному обеспечению и к численности и квалификации персонала. В обоих пунктах идет речь о персонале. Но в первом случае мы приводим информацию об организационной структуре: какие должны быть отделы, как должно быть налажено взаимодействие с другими подразделениями. Согласитесь, это совсем не то же, что просто требования к численности и квалификации персонала.
Но для небольших систем требуется лишь один-два администратора и пара модераторов. В таком случае нам просто нечего описывать в целых двух подразделах. Тогда одни раздел опустите, а в другом приведите полное изложение требований.
3.6. Нужно ли качественно оформлять ТЗ?
Хотя требования к оформлению ТЗ приводятся в пункте 3 ГОСТ 34.602-89, скажем несколько слов о данном аспекте.
Конечно, главное содержание. Но, во-первых, встречают по одежке, а, во-вторых, сложно читать неграмотно написанный текст со скачущим шрифтом. Читатели будут отвлекаться на некачественное оформление и им будет сложнее вникнуть в содержание. Поэтому в технических документах принято строгое содержание и ограниченная терминология, без цветастых выражений: читатель должен сосредоточиться на сути, а не художественных оборотах.
Приведем несколько пожеланий к оформлению больших документов, как ТЗ.
Во-первых, в большом документе обязательно необходимо использовать стили и кроме как для подчеркивания или выделения внутри абзаца не менять настройки шрифта и абзаца только для одного фрагмента. Если меняете, то стиль.
В-вторых, не надо забывать про такие обязательные элементы, как автособираемое оглавление, список терминов и сокращений (ну нет никакой радости гадать, что такое имеется в виду под той или иной аббревиатурой), титульная страница. Желательно также приводить список версий документа, список изменений: очень легко потом отследить, в какие даты была отправлена та или иная версия.
В-четвертых, каждое отдельное требование должно быть изложено в отдельном пронумерованном абзаце. Если в одном фрагменте 2-3 требования, то читается только первое, а остальные наш мозг пропускает. ТЗ — это документ, в котором напротив каждого абзаца можно поставить галочку, выполнено ли требование или нет.
В-пятых, не скупитесь на расстановку ссылок. Иногда читаешь абзац, где упоминается какая-то функция или требование, и не понимаешь, это из этого же документа или из другого. Если из этого, — то в каком разделе. Поэтому старайтесь ссылаться на другие разделы, если они упоминаются в текущем тексте. Естественно, ссылки должны быть автоматическими.
Заметим, что, по строгим правилам, ТЗ оформляется без рамки (об этом сказано в п. 3), а вот остальные документы — с рамкой. Это установлено в ГОСТ 24.301-80 «Система технической документации на АСУ. Общие требования к выполнению текстовых документов (с Изменениями № 1, 2)». Данный стандарт устанавливает правила оформления всех документов, кроме ТЗ и документов, создаваемых на предпроектных стадиях. Хотя лично мне рамка не нравится ни в каких документах.
4. Раздел 1. «Общие сведения» /п. 2.3 ГОСТ 34.602-89/
Большинство сведений, приводимых в данном разделе, не нуждаются в комментарии, поэтому мы остановимся только на некоторых подразделах.
Так, под «перечнем документов, на основании которых создается система» имеются в виду законы, распоряжения или договор. Также таким документом может являться другое ТЗ, если мы разрабатываем ТЗ на подсистему. Вообще, в ТЗ есть несколько разделов, в которых приводится перечень документов, и надо очень четко понимать различия между назначением данных частей технического задания.
В подразделе «Порядок оформления и предъявления заказчику результатов работ по созданию системы (ее частей), по изготовлению и наладке отдельных средств (технических, программных, информационных) и программно-технических (программно-методических) комплексов системы» приводятся общие сведения о приемке работ. Например, то, что мы передаем документацию и проводим ряд испытаний системы. Здесь мы только упоминаем о порядке передаче результатов работ, а ниже, в других разделах, данная тема раскрывается подробно.
5. Раздел 2. «Назначение и цели создания (развития) системы» /п. 2.4 ГОСТ 34.602-89/
Здесь нам надо понять разницу между назначением и целью создания системы. Очень часто эти понятия смешиваются. Например, пишут, что назначение системы — это автоматизация личного кабинета, а цель — создание личного кабинета. Масло масляное. В некоторых случаях данные понятия действительно совпадают, тогда пишите только назначение.
С назначением все понятно: мы приводим именно вид (виды) автоматизированной деятельности. Например, если мы создаем систему для производственного учета, то и приводить стоит автоматизируемые виды учета, автоматизируемые операции, а также объекты, автоматизация которых предполагается.
С целью все по-другому. Цель — это ради чего мы затеваем проект. Можно назвать это бизнес-целями. Я выделяю следующие возможные цели проектов автоматизации:
6. Раздел 3. «Характеристики объекта автоматизации» /п. 2.5 ГОСТ 34.602-89/
Очень важный, и при этом часто описываемый чисто формально раздел. Хотя, на мой взгляд, это самый важный раздел ТЗ, без него мы просто не понимаем, о чем вообще создаваемая система.
Давайте сначала определим, что такое «объект автоматизации». Если мы автоматизируем склад или завод, отдел бухгалтерии, то все понятно. А если, например, создаем новую социальную сеть, то объекта как бы и нет. Но на самом деле, под объектом скорее имеются в виду автоматизируемые процессы. И даже в случае со складом мы же автоматизируем не сам склад (как можно автоматизировать хранение коробок?), а складские процессы.
Если выполнять данный раздел формально, то он будет очень похож на описание назначения системы, и в ТЗ появится еще одно озеро воды, но так и не будет понятно, а что должна делать система.
В данном разделе следует приводить:
7. Раздел 4 «Требования к системе»
В ТЗ по ГОСТ 34 имеется один гигантский раздел: раздел 4 «Требования к системе». В нем имеется три подраздела:
7.1. Подраздел 4.1. «Требования к системе в целом» /п. 2.6.1 ГОСТ 34.602-89/
В подразделе 4.1 «Требования к системе в целом» приводят так называемые нефункциональные, общие, требования, которые описывают создаваемую систему с разных сторон.
Кстати, как мы уже упоминали, подразделы можно добавлять и опускать. Поэтому приводимая здесь нумерация примерная, служит для ориентации внутри статьи.
7.1.1. Пункт 4.1.1. «Требования к структуре и функционированию системы» /п. 2.6.1.1 ГОСТ 34.602-89/
Этот пункт достаточно обширен, он должен дать общее представление об архитектуре системы. Разберем данные требования подробнее.
1. Перечень подсистем, их назначение и основные характеристики, требования к числу уровней иерархии и степени централизации системы.
В данном пункте я обычно привожу:
Для наглядности желательно приложить структурную схему системы с обозначением ее частей и смежных систем, как показано на примерах ниже.
2. Требования к способам и средствам связи для информационного обмена между компонентами системы.
3. Требования к характеристикам взаимосвязей создаваемой системы со смежными системами, требования к ее совместимости, в том числе указания о способах обмена информацией (автоматически, пересылкой документов, по телефону и т.п.)
В современных условиях большинство взаимодействий производится по протоколу HTTP(S). Вроде, кроме этого, писать нечего. Тем не менее, данные пункты могут быть настолько большими, что выносятся в приложения. В них следует привести следующие сведения:
Требования по постоянному или периодическому диагностированию следует предъявлять к системам, основанным на микросервисной (разнесенной) архитектуре, системам, в состав которых входит оборудование: датчики, системы управления, терминалы и т.д. Конечно, если разрабатывается только программное обеспечение, которое работает на одном сервере, указанные требования излишни: и так узнаете, если что-то перестанет работать.
6. Перспективы развития, модернизации системы.
Кажется, какое отношение имеют перспективы развития системы к подразделу «Требования к структуре и функционированию системы»? Но представьте, сейчас вы создаете альфа-версию, рассчитанную на 100 человек, а через год хотите получить уже более миллиона одновременно работающих пользователей в разных частях света. Тогда вам на стадии создания сразу потребуется предусмотреть кластерную архитектуру.
Или сейчас вы работаете от одной организации, а через полгода их будет несколько, значит необходимо заранее предусмотреть возможность расширения.
Иными словами, в данном разделе можно записать все перспективы модернизации, но особо отметить те, которые точно повлияют на архитектуру.
7.1.2. Пункт 4.1.2. «Требования к численности и квалификации персонала» /п. 2.6.1.2 ГОСТ 34.602-89/
Как мы уже упоминали раньше, любая автоматизированная система состоит «из персонала и комплекса средств автоматизации его деятельности». Поэтому в ТЗ указываются требования к персоналу и его квалификации.
Если вы автоматизируете конкретную производственную линию, то численность персонала вам известна. Но во многих случаях она зависит от объема выполняемой работы. Следовательно, укажите должности, график работы, описание деятельности (для назначения прав доступа) и приблизительную квалификацию. Как минимум, понадобятся системный администратор и оператор, довольно часто — модератор. Вполне возможно, что придется предусмотреть несколько видов операторов с разным уровнем доступа.
Понятно, что требования к персоналу часто устанавливаются заказчиком, зачем их тогда приводить? Но, во-первых, мы уже говорили, что ТЗ составляется для обеих сторон, а во-вторых, так исполнитель будет защищен: не выполнено условие по подбору персонала, чего же тогда заказчик хочет, если система не внедрена?
7.1.3. Пункт 4.1.3. «Требования к показателям назначения» /п. 2.6.1.3 ГОСТ 34.602-89/
В данном подразделе часто пишется что душе угодно, поскольку перечень возможных показателей отсутствует в тексте ГОСТа, а найти их в открытых источниках практически невозможно. Обратите внимание, что приведенные в ГОСТе «степень приспособляемости», «пределы модернизации» и «вероятностно-временные характеристики», во-первых, указываются для АСУ (автоматизированной системы управления) и, во-вторых, их достаточно сложно измерить. Таким образом, указанные характеристики подойдут не всегда.
Тем не менее, в самом тексте «показатели назначения» определяются как «параметры, характеризующие степень соответствия системы ее назначению». В современных компьютерных системах количественные значения, характеризующие эту систему, в основном относятся к производительности и объему хранения данных.
К показателям назначения можно отнести:
7.1.4. Пункт 4.1.4. «Требования к надежности» /п. 2.6.1.4 ГОСТ 34.602-89/
В тексте ГОСТа достаточно подробно описывается, что необходимо указывать в требованиях к надежности. Тем не менее, для понимания подхода к обеспечению надежности, заложенного в данном стандарте, следует изучить ГОСТы серии 27. Для начала стоит ознакомиться с терминологией: этого будет достаточно для понимания самого понятия надежности, как она измеряется и чем обеспечивается. Поэтому обращайтесь к ГОСТ 27.002-89. «Надежность в технике. Основные понятия. Термины и определения».
Основным понятием, которое можно применить для автоматизированных систем, является коэффициент готовности: 99%, 99,9%, 99,99%. Каждое количество «девяток» обеспечивается определенными мерами.
На выбор каких технических решений могут повлиять данные требования? Это и количество резервных мощностей (они бывают разными), и наличие технического персонала на местах, и применение не только источников бесперебойного питания, но и дизельгенераторов, а также подключение от двух независимых источников (присоединение к электросетям по I или II категории надежности).
7.1.5. Пункт 4.1.5. «Требования к безопасности» /п. 2.6.1.5 ГОСТ 34.602-89/
7.1.6. Пункт 4.1.6. «Требования к эргономике и технической эстетике» /п. 2.6.1.6 ГОСТ 34.602-89/
Приведем требования ГОСТа: «В требования по эргономике и технической эстетике включают показатели АС, задающие необходимое качество взаимодействия человека с машиной и комфортность условий работы персонала».
Также можно приводить предельное количество переходов (нажатий) при реализации отдельных особо важных для нас функций, среднюю скорость поиска данных и т.д.
7.1.7. Пункт 4.1.7. «Требования к транспортабельности для подвижных АС» /п. 2.6.1.7 ГОСТ 34.602-89/
7.1.8. Пункт 4.1.8. «Требования к эксплуатации, техническому обслуживанию, ремонту и хранению» /п. 2.6.1.8 ГОСТ 34.602-89/
7.1.9. Пункт 4.1.9. «Требования к защите информации от несанкционированного доступа» /п. 2.6.1.9 ГОСТ 34.602-89/
Тема защиты информации от несанкционированного доступа достаточно обширна, как и меры по ее обеспечению. Конечно, если речь идет о доступе в личный кабинет веб-сайта и в панель администрирования данного сайта, то достаточно требований к авторизации, сложности пароля, ролевой модели доступа. Но если создается финансовая система или система для государственных нужд, то появляются особые требования.
Важно отметить, что в данном подразделе приводятся не только меры, которые необходимо применить в ходе разработки системы, но и ее эксплуатации.
Так, для финансовых систем следует использовать «Стандарт безопасности данных индустрии платежных карт» (PCI DSS). Для систем, в которых хранятся персональные данные, — Постановление Правительства РФ от 01.11.2012 № 1119 «Об утверждении требований к защите персональных данных при их обработке в информационных системах персональных данных». В вашей предметной области могут иметься и другие стандарты.
В общем и целом, средства защиты можно разделить на следующие типы:
7.1.10. Пункт 4.1.10. «Требования по сохранности информации при авариях» /п. 2.6.1.10 ГОСТ 34.602-89/
В данном разделе приводится перечень возможных аварий и отказов, при которых должна быть обеспечена сохранность информации. К таким событиям могут относиться:
7.1.11. Пункт 4.1.11. «Требования к защите от влияния внешних воздействий» /п. 2.6.1.11 ГОСТ 34.602-89/
7.1.12. Подраздел 4.1.12. «Требования по патентной чистоте» /п. 2.6.1.12 ГОСТ 34.602-89/
7.1.13. Пункт 4.1.13. «Требования к стандартизации и унификации» /п. 2.6.1.13 ГОСТ 34.602-89/
Данный пункт также редко содержится в Техническом задании в отношении именно программных средств. В нем указывают как требования по использованию конкретных технологий, так и унифицированных форм документов и классификаторов.
Данное описание особенно важно, если у вас есть конкретные требования по используемым фреймворкам, плагинам, протоколам, устройствам, математическим алгоритмам, стороннему программному обеспечению и пр. Только не забудьте указать, в какой части и для каких целей должны использоваться данные средства.
Также иногда в системах некоторых классов принято использоваться определенные протоколы обмена данными. Например, для обмена данными между геоинформационными системами используются стандарты OCG, а для управления зарядными станциями для электромобилей — OCPP.
7.1.14. Пункт 4.1.14. «Дополнительные требования» /п. 2.6.1.14 ГОСТ 34.602-89/
7.2. Подраздел 4.2. «Требования к функциям (задачам), выполняемым системой» /п. 2.6.2 ГОСТ 34.602-89/
7.2.1. Структура функционального описания
Сначала рассмотрим структуру функциональных требований к системе: подсистема — комплекс функций — функция — задача. Задача — это часть функции, причем задача может быть описана в виде отдельной функции. Например, для функции входа в систему в качестве одной из задач мы приводим ввод пароля. А процедуру ввода пароля мы можем расписать уже как отдельную функцию: проверка на правильность, восстановление пароля, отображение подсказок и т.д. Комплекс — это то, что объединяет функции. Например, «Учет основных сведений», «Проведение аукциона» и т.д. В Комплексе две и более функции.
Если у вас система состоит из нескольких подсистем, то в основном ТЗ следует привести перечень функций для подсистем, а уже подробно описывать функциональные требования к подсистемам в отдельных ТЗ на подсистемы (их сейчас часто называют ЧТЗ — частное техническое задание).
7.2.2. Виды функций с точки зрения их выполнения
По сути, все функции (или их задачи; в функции может присутствовать сразу несколько задач) можно разделить на следующие типы:
7.2.3. Виды функций с точки зрения их роли
7.2.4. Требование, а не сценарий
Не забывайте, что в ТЗ приводятся требования к системе и процессу ее создания. Не сценарии. ТЗ отвечает на вопрос, ЧТО должна делать система. На вопрос КАК отвечает технический проект. Если вы начинаете подробно описывать техническую реализацию, то погрузитесь в детали и не сумеете привести полный перечень требований: наш мозг не может одновременно работать в режимах широкого охвата и рассмотрения подробностей.
Структуры функций ТЗ и технического проекта могут сильно отличаться: в одном сценарии могут реализовываться несколько функций, и наоборот.
7.2.5. Оформление функциональных требований
Приведем некоторые рекомендации по тому, как оформлять описание функций:
7.2.6. Пример описания функции
5.6. Регистрация транспортного средства в Системе
Предъявляются следующие требования:
1) Система должна позволять учитывать следующие общие сведения:
7.3. Подраздел 4.3. «Требования к видам обеспечения» /п. 2.6.3 ГОСТ 34.602-89/
Раздел требований к видам обеспечения вообще часто приводят как пример избыточного объема ТЗ по ГОСТу. Когда заходит речь о том, все ли разделы и подразделы следует приводить, вспоминают про математическое обеспечение, для которого в большинстве случаев просто нечего писать.
На самом деле, это очень важный подраздел, хотя его назначение понимают далеко не все. В нем описываются условия, без выполнения которых невозможно реализовать или разработку, или ввод в эксплуатацию. Эти условия и описываются как «обеспечение».
При чтении данного подраздела задаешься вопросом, что имели в виду составители стандарта под «математическим обеспечением», «лингвистическим обеспечением», «информационным обеспечением» и т.д. Ответы следует искать в ГОСТ 34.003-90, где расшифровываются все эти термины.
7.3.1. Пункт 4.3.1 «Математическое обеспечение» /п. 2.6.3.1 ГОСТ 34.602-89/
7.3.2. Пункт 4.3.2 «Информационное обеспечение» /п. 2.6.3.2 ГОСТ 34.602-89/
При чтении описания данного требования в тексте ГОСТа возникает впечатление, что это повтор того, что уже говорилось в других разделах. Например, зачем еще раз описывать требования к «составу, структуре и способам организации данных в системе» и «к информационному обмену между компонентами системы»? Но мы опять забываем, что составители ГОСТа под системой имели не только программное обеспечение, но и всю совокупность организационных мер.
Вот сталкиваетесь вы при внедрении с такой ситуацией, что заказчик не обеспечил со своей стороны оператора, который будет вводить в систему какие-либо данные, и при этом вам заявляет, что система не работает. Знакомая ситуация? А вот если бы в ТЗ было прописано требование данный ввод обеспечить, то можно было бы прямо и ткнуть заказчика в этот пункт. Или вам для работы необходим доступ к определенному адресному классификатору, а заказчик вам его не дает.
Таким образом, в данном пункте имеет смысл указать требования к входящей информации и информации, передающейся от компонента к компоненту системы в неавтоматизированном виде. Автоматизированная обработка информации, использование СУБД, информационный обмен внутри системы вполне описываются в других разделах.
7.3.3. Пункт 4.3.3 «Лингвистическое обеспечение» /п. 2.6.3.3 ГОСТ 34.602-89/
В данном пункте приводятся:
7.3.4. Пункт 4.3.4 «Программное обеспечение» /п. 2.6.3.4 ГОСТ 34.602-89/
7.3.5. Пункт 4.3.5 «Техническое обеспечение» /п. 2.6.3.5 ГОСТ 34.602-89/
7.3.6. Пункт 4.3.6 «Метрологическое обеспечение» /п. 2.6.3.6 ГОСТ 34.602-89/
7.3.7. Пункт 4.3.7 «Организационное обеспечение» /п. 2.6.3.7 ГОСТ 34.602-89/
7.3.8. Пункт 4.3.8 «Методическое обеспечение» /п. 2.6.3.8 ГОСТ 34.602-89/
7.3.9. Другие виды обеспечения
8. Раздел 5 «Состав и содержание работ по созданию (развитию) системы» /п. 2.7 ГОСТ 34.602-89/
Данный раздел организационный и его нередко выносят в договор. Тем не менее, данные сведения в ТЗ могут уточняться.
По сути, это краткий план разработки и внедрения. При его составлении я обычно привожу таблицу, в которой приводятся все или некоторые из следующих столбцов:
Этап | Содержание работ | Порядок приемки и документы | Сроки | Ответственный |
---|---|---|---|---|
1. Составление технического задания (ТЗ) | Разработка функциональных и нефункциональных требований к системе | Утверждение ТЗ | 60 дней со дня предоплаты. Заказчик предоставляет первый вариант на согласование через 45 дней | Разработка — Исполнитель; согласование — Заказчик |
2. Техническое проектирование (ТП) | Разработка сценариев работы системы и макетов интерфейса веб-приложений | Утверждение документа «Описание автоматизированных функций» | 60 дней со дня согласования ТЗ. Заказчик предоставляет первый вариант на согласование через 45 дней | Исполнитель |
Разработка фирменного стиля оформления веб-сайта и мобильных приложений | Утверждение фирменного стиля | Заказчик | ||
Разработка наполнения сайта (публичное веб-приложение) | Утверждение наполнения | Заказчик | ||
Разработка дизайн-макета публичного веб-приложения | Утверждение дизайн-макета | Исполнитель | ||
Разработка дизайн-макетов публичных мобильных приложений | Утверждение дизайн-макета | Исполнитель | ||
Выбор SMS-агрегатора, подготовка правил обмена с серверным модулем | Утверждение дизайн-макета | Заказчик, по рекомендациям Исполнителя | ||
3. Разработка программной части | Разработка серверного модуля, модуля хранения данных и модуля хранения файлов | Приемка осуществляется в процессе испытаний | 100 дней со дня согласования ТП | Разработка — Заказчик. Исполнитель предоставляет данные для наполнения справочников |
Разработка панели администрирования | Приемка осуществляется в процессе испытаний | Заказчик | ||
Разработка статического веб-сайта (публичное веб-приложение) | Приемка осуществляется в процессе испытаний | Исполнитель | ||
Разработка интеграции публичного веб-приложения и серверного модуля | Приемка осуществляется в процессе испытаний | Исполнитель | ||
Разработка мобильных приложений iOS (включая интеграцию с серверным модулем) | Приемка осуществляется в процессе испытаний | Исполнитель | ||
Разработка мобильных приложений Android (включая интеграцию с серверным модулем) | Приемка осуществляется в процессе испытаний | Исполнитель | ||
Разработка рабочей и эксплуатационной документации | Утверждение документов: — «Программа и методика предварительных автономных испытаний». — «Программа и методика предварительных комплексных испытаний». — «Программа опытной эксплуатации» | Исполнитель | ||
4. Предварительные автономные испытания | — Проверка соответствия нефункциональным требованиям (дизайн). — Проверка комплекта документации. — Проверка работоспособности системы, без взаимодействия со смежными (внешними) системами. — Доработки и повторные испытания до устранения недостатков | Утверждение протокола предварительных автономных испытаний | 14 дней со дня завершения разработки | Исполнитель — проведение испытаний. Заказчик — подготовка инфраструктуры и организация испытаний |
5. Предварительные комплексные испытания | — Проверка взаимодействия со смежными внешними системами. — Доработки и повторные испытания до устранения недостатков | Утверждение протокола предварительных комплексных испытаний | 14 дней со дня завершения автономных испытаний | Исполнитель — проведение испытаний. Заказчик — подготовка инфраструктуры и организация испытаний |
6. Подготовка к опытной эксплуатации | — Разворачивание системы на промышленных серверах. — Выполнение комплекса работ по подготовке (подробнее см. п. 7 Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие) | Приемка отсутствует | 5 дней со дня завершения предварительных испытаний | Подготовка программной части и заполнение справочников — Заказчик. Исполнитель предоставляет данные для наполнения справочников и осуществляет организацию ОЭ |
7. Опытная эксплуатация | — Эксплуатация с привлечением небольшого количества участников (несколько аукционов среди знакомых). — Доработки и повторные испытания до устранения недостатков | Протокол опытной эксплуатации (журнал ошибок и итогов их исправления) | 30 дней | Исполнитель — устранение недостатков. Заказчик — проведение ОЭ |
8. Ввод в промышленную (коммерческую) эксплуатацию | См. этап подготовки к опытной эксплуатации | Приемка отсутствует | Подготовка программной части и заполнение справочников — 10 дней | Подготовка программной части и заполнение справочников — Заказчик. Исполнитель осуществляет организацию промышленной эксплуатации |
9. Промышленная (коммерческая) эксплуатация | Промышленная эксплуатация | Приемка отсутствует |
9. Раздел 6 «Порядок контроля и приемки системы» /п. 2.8 ГОСТ 34.602-89/
9.1. Подраздел 6.1. «Виды, состав, объем и методы испытаний системы и ее составных частей» /п. 2.8.1 ГОСТ 34.602-89/
Обычно здесь я указываю перечень испытаний и упоминаю, что методы тестирования будут приведены в документе «Программа и методика испытаний», представляющий собой описание основных тест-кейсов, сценариев проверки.
Остановимся подробнее на видах испытаний. Виды испытаний, их состав, требования к документам устанавливаются ГОСТ 34.603-92 «Информационная технология. Виды испытаний автоматизированных систем». Поэтому при разработке данного раздела и технического проекта обязательно обращайтесь к этому стандарту, здесь мы разъясним только основные моменты.
Давайте попробуем разобраться в том, какие бывают испытания:
1. Испытания делятся на следующие виды:
Давайте попробуем описать процесс испытаний простыми словами:
1. Предварительные автономные испытания частей системы. Испытаниям подвергаются части системы по отдельности, если в составе имеется несколько подсистем или крупных модулей. Обычно такое тестирование проводится автономно, то есть без интеграции со смежными системами. Если система несложная, данный этап можно смело пропускать.
2. Предварительные автономные испытания системы в целом. Испытывается вся система в комплексе в автономном режиме, то есть без интеграции со смежными системами. Функции, связанные со смежными системами, не проверяются. В крайнем случае ставятся «заглушки» (эмуляция интеграции) или база заранее заполняется данными, которые должны приходить из внешних источников.
3. Предварительные комплексные испытания. Система испытывается в комплексном режиме, то есть во взаимодействии со смежными системами. В таком виде система передается заказчику для опытной эксплуатации.
4. Опытная эксплуатация. ОЭ может проходить в разных режимах. Самое лучшее —это эксплуатация на реальных данных, с реальными пользователями и с выполнением реальных задач. Только такой вид испытаний позволит убедиться, что система действительно работоспособна. В ходе опытной эксплуатации устраняются недостатки.
5. Приемочные испытания. Это последний вид проверки. Скажете, а почему опытная эксплуатация после устранения всех недостатков плавно не перейдет в промышленную? Так оно обычно и происходит. Но ведь высоким дядям надо увидеть, что система реально работает, «пощупать» ее. Для них, для высокой комиссии и предназначены приемочные испытания. Таким образом, приемочные испытания отличаются от предварительных в первую очередь статусом комиссии.
Также в этом пункте указываются документы, в которых будут приведены методы испытаний:
9.2. Подраздел 6.2. «Общие требования к приемке работ по стадиям» /п. 2.8.2 ГОСТ 34.602-89/
В данном разделе я обычно указываю:
10. Раздел 7 «Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие» /п. 2.9 ГОСТ 34.602-89/
Процесс, описываемый в данном разделе, часто называют внедрением. Обратите внимание на то, что данные работы также приводятся в разделе 5 «Состав и содержание работ по созданию (развитию) системы». Но, в разделе 5 они лишь кратко упоминаются, здесь же приводится подробное описание.
При подготовке объекта, как правило, следует выполнить следующие работы:
11. Раздел 8 «Требования к документированию» /п. 2.10 ГОСТ 34.602-89/
Не стоит к документам относится формально. Документы — это управление проектом, проектный документооборот. В голове все не удержишь, и от наличия и качества документов зависит успешность проекта. Конечно, бывают документы «для веса», и к ним стоит относиться соответствующе, но вообще без документирования в спокойном и упорядоченном режиме проект не реализовать.
Документирование проекта автоматизации по ГОСТ 34 регламентируется следующими стандартами:
11.1 Особенности структуры документации
При составлении перечня необходимых документов обычно просматривают РД 50-34.698-90 и выбирают требуемые. При этом делается немало ошибок, поскольку документация имеет довольно сложную структуру, которая описывается в ГОСТ 34.201-89.
Давайте попытаемся выявить несколько правил, которые помогут при составлении перечня документов.
1. Для каждого из этапов предназначен свой комплект документации.
Для каждого из этапов предназначен свой комплект документации. Это очень важно уяснить. Не надо прописывать разработку эксплуатационных документов на проектных стадиях и наоборот. Получаются чисто формальные бумаги, на которые вы потратите значительное время. И если «Руководство пользователя» до окончания разработки системы обычно никто не составляет (хотя встречал и таких деятелей), то «Описание автоматизированных функций», в котором обычно приводятся сценарии для программистов, постоянно составляют уже после окончания разработки. Также при чтении РД 50-34.698-90 может создаться впечатление, что у некоторых документов содержание пересекается: это тоже связано с тем, что документы предназначаются для различных этапов.
Поскольку некоторые документы могут разрабатываться либо на одном, либо на другом этапе, в ГОСТ 34.201-89 во избежание повтора отдельно приводится, например, список документов, которые могут выпускаться как на стадии технического проекта, так и рабочей документации, а отдельно — списки документов для каждой из этих стадий отдельно. Таким образом, при составлении перечня документов для одного из этапов приходится просматривать списки документов в нескольких разделах стандарта.
Чтобы не запутаться, я составил таблицу Excel, в которой с помощью фильтров можно выводить сразу полный перечень документов для того или иного этапа.
2. Документы делятся на темы (части проекта).
В ГОСТе 34 имеются документы, описывающие общесистемные решения, а также организационное, техническое, математическое, программное, информационное обеспечение (о видах обеспечения мы говорили выше). В РД 50-34.698-90 данные документы приводятся именно с разбивкой по частям проекта (темам). На это всегда следует обращать внимание, чтобы определить предназначение документа.
3. Документы можно объединять.
В ГОСТ 34.201-89 прямо указывается, в каких случаях один документ включается в состав другого. Это сделано для того, чтобы не оставалось вырожденных документов, с одной или двумя страничками. Если что-то требуется описать, но объем очень маленький, лучше всего включить текст в другой документ. В большинстве случаев имеется такой документ как «Пояснительная записка к техническому проекту», в который можно добавлять разделы.
4. Эксплуатационная и проектно-сметная документация выделены отдельно.
Составители ГОСТ 34.201-89 в отдельных столбцах таблицы с перечнем документов обозначили принадлежность к эксплуатационной и проектно-сметной документации.
К проектно-сметной документации относят документы, регламентирующие строительные и электромонтажные работы: сметы, планы закупок, чертежи и электрические схемы.
К эксплуатационным относят документы, которыми руководствуются при использовании и обслуживании системы: руководства и инструкции, перечни материалов и данных, документы, в которые заносятся информация о нарушениях в ходе эксплуатации.
11.2 Особенности оформления списка документов
Как вы уже заметили ранее, при описании этапов работ в разделе 5 «Состав и содержание работ по созданию (развитию) системы» также приводится перечень документации. Двойной список документов приводится по простой причине: мало указать наименование документа, необходимо еще пояснить его назначение и привести краткое содержание (конечно, для «Руководства пользователя» указывать содержание смысла нет). Иначе будет не определить, какое значение у того или иного документа в управлении проектом. ГОСТ гостом, а на каждом проекте содержание и роль документов может отличаться. Кроме того, в перечне могут иметься документы, не регламентируемые ГОСТ 34, которые нуждаются в пояснениях в обязательном порядке.
В правилах документирования обычно я привожу таблицу со следующими столбцами:
11.3 Пример перечня документации
Для большого проекта внедрения сложной системы может потребоваться достаточно большой перечень документации. Приведем пример такого перечня в таблице ниже.
Этап | Документ | Содержание документа | Примечания |
---|---|---|---|
1. Техническое проектирование | Ведомость технического проекта | Перечень документов технического проекта | |
Пояснительная записка к техническому проекту | — описание основных технических решений; — описание процесса деятельности с применением системы; — мероприятия по подготовке объекта автоматизации к вводу системы в действие | При поставке типовых продуктов не разрабатывается | |
Описание автоматизируемых функций | — детальные сценарии работы системы; — макеты пользовательского интерфейса с подробным описанием элементов; — перечень подсистем (модулей) с описанием выполняемых функций; — описание структуры данных, где это необходимо; — формы и правила формирования отчетов | При модернизации приводится описание модернизируемых функций в формате «как должно быть». — При поставке типовых продуктов не разрабатывается | |
Описание комплекса технических средств | — описание комплекса оборудования: серверов, файерволов, свичей и пр.; — описание локальной сети и подсетей, параметров выхода в Интернет | При модернизации разрабатывается в случае внесения изменений в КТС, описываются изменения. | |
Описание интеграционных решений | Описание разрабатываемых протоколов интеграции со смежными системами, периодичность обменных операций | Документ разрабатывается вместо ГОСТовских «Перечень входных сигналов и данных» и «Перечень выходных сигналов (документов)». — При модернизации разрабатывается в случае внесения изменений, описывается в формате «как должно быть» | |
Описание организационной структуры | Изменения в организационной структуре, необходимые для функционирования системы | При модернизации разрабатывается в случае внесения изменений в оргструктуру | |
Смета | Уточненная стоимость работ по созданию и внедрению системы | ||
2. Разработка рабочей и эксплуатационной документации | Ведомость рабочей и эксплуатационной документации | Перечень рабочих (эксплуатационных) документов технического проекта | |
Формуляр | — общие указания по эксплуатации системы; — перечень документации для ознакомления персоналом; — объем сопровождения; — сведения, необходимые для организации, занимающейся сопровождением системы; — перечень возникших аварийных ситуаций и сведения об их устранении; — сведения о ремонте технических средств; — сведения об изменениях ПО; — сведения о выполнении регламентных работ; — сведения о рекламациях и устранении замечаний | — При модернизации системы документ актуализируется. — При поставке типовых продуктов не разрабатывается | |
Общее описание системы | — структура системы; — перечень смежных систем и связей между системами; — описание подсистем; — схема структурная комплекса технических средств; — перечень эксплуатационных документов | В случае доработки типового продукта может разрабатываться в полном объеме | |
Руководство пользователя (администратора) | Описание операций по работе с системой | ||
Спецификация закупаемого оборудования | Для каждой позиции указывается: — наименование оборудования; — тип, марка; — изготовитель, поставщик; — количество | Разрабатывается в случае необходимости | |
Технологическая инструкция | Инструкция на операцию или комплекс операций, связанных с использованием системы | При модернизации — актуализируется в случае необходимости | |
Описание интеграционных решений | Актуализированный документ, созданный на этапе технического проектирования | ||
Программа подготовки пользователей | — план самостоятельной подготовки; — план занятий, количество часов; — перечень тем изучения на занятиях; — раздаточные материалы; — контрольные примеры | ||
Программа и методика испытаний (для каждого испытания отдельно) | — сценарии проверки функций системы; — сценарии проведения нагрузочного тестирования | При поставке типовых продуктов в ходе испытаний производится проверка: — общей работоспособности системы и ее интеграции со смежными системами; — уровня готовности пользователей | |
3. Ввод в действие | Протокол подготовки персонала | Перечень персонала с отметками о прохождении обучения и выполнении контрольных заданий | |
Протокол развертывания системы | |||
Протокол первоначального заполнения БД | |||
Протокол предварительных испытаний | Перечень испытаний с отметками о прохождении и замечаниями | ||
Акт приемки в опытную эксплуатацию | |||
Журнал опытной эксплуатации | Перечень замечаний и сведения об их устранении | ||
Акт о завершении опытной эксплуатации | |||
Протокол приемочных испытаний | Перечень испытаний с отметками о прохождении и замечаниями | ||
Акт приемки системы в постоянную эксплуатацию | |||
4. Гарантийное и послегарантийное обслуживание (сопровождение) | Формуляр | Документ разрабатывается на стадии 5 (Разработка рабочей и эксплуатационной документации) и заполняется по ходу сопровождения |
12. Раздел 9 «Источники разработки» /п. 2.11 ГОСТ 34.602-89/
Вроде бы формальный раздел, но очень полезный. Представьте себе ситуацию, когда вы помните, что при разработке ТЗ читали какую-то статью, и вам по каким-либо причинам надо ее найти, например, что-то уточнить или обосновать свои решения. Но вы совершенно не помните ни ее названия, ни где она содержалась. Поэтому, когда я использую какие-нибудь полезные материалы, обязательно заношу их в список. И в тексте ставлю сноску с указанием источника.
Если источников много, то следует разбивать их на подразделы, например:
Заключение
Конечно, составление Технического задания по ГОСТ 34 нельзя назвать легким и простым. И не потому, что ГОСТ плохой, — просто ГОСТ заставляет продумывать весь проект целиком, расписать все мелочи. Зато хорошо составленное ТЗ — половина успеха проекта.
Пишите в комментариях, если считаете необходимым что-то уточнить или дополнить. Обязательно внесу изменения в статью.