Куперс

Бухучет и анализ

ТЗ программисту пример

Для того, чтобы Вам как заказчику, консультанту или методологу понять, что нужно разработчику 1С для того, чтобы доработать Вашу систему или разработать новую, нужно понимать, какими категориями информации он оперирует в ходе своей работы. Это сильно упростит программисту понимание того, что же от него хотят.
В данной статье я постараюсь кратко и, при этом, достаточно полно объяснить, что Вам нужно написать в техническом задании помимо общих разделов с глоссарием, титульным листом и описанием бизнес-требований.
Данные правила легко соблюдать даже при написании кратких пользовательских историй, если Вы создаете их в рамках проекта SCRUM / Agile.
Итак, приступим.
Для начала вы должны понимать, что же на самом деле в 90% случаев программирует программист 1C:

  • Формы ввода информации
  • Контрольные процедуры
  • Модель данных
  • Алгоритмы автоматического заполнения данных
  • Формы вывода информации

Давайте отдельно рассмотрим каждую категорию.
Формы ввода информации
Это могут быть как формы ввода в систему какой-либо информации (документы, элементы справочников, таблицы с данными), так и формы загрузки этих данных откуда-нибудь по шаблону (например, Excel или XML и другие форматы для интеграции с другими системами).
Не забывайте указывать перечень кнопок-команд, которыми пользователь должен командовать Вашей системой.
Если техническое задание не содержит продуманного Вами заранее прообраза таких форм или шаблонов, то программист будет придумывать их по своему усмотрению, а Вы будете жаловаться, что вам это неудобно в работе.
Контрольные процедуры
В бизнес-процессах эти процедуры являются предварительными контролями, чтобы вам было понятно. Т.е. это такие контроли, которые система делает сама в тот момент, когда пользователь с той или иной ролью пытается работать с системой, и выдает предупреждение или намеренно прерывает работу пользователя, не позволяя ему выполнить задуманное.
В эту категорию попадают:

  • Матрицы ролевого доступа
  • Правила предоставления доступа к полям форм и данных
  • Проверки корректности заполнения данных в формах ввода
  • Процедуры сверки данных

Если техническое задание не содержит контрольных процедур, то созданная система будет позволять делать все что угодно любому пользователю, почти как в Excel, только с другим оформлением. Какая Вам от этого выгода?
Модель данных
Конечно, программист сделает модель данных так, как ему подскажет его опыт на текущий момент. Если программист опытный, он сделает эффективную структуру данных. А если не очень — то не очень.
Если Вы тоже «не очень» программист, то единственное полезное, что Вы сможете в этой части написать для программиста, это будут базовые характеристики модели данных:

  • Перечень бизнес-объектов, с которыми имеет дело пользователь и отношения между ними, ссылки на какие объекты в каких объектах должны храниться
  • Состав полей данных (табличка в эксель) по каждому бизнес-объекту, у которого есть форма ввода
  • Поддержка иерархичности — нужна или нет
  • Сколько данных планируется хранить
  • Регулярность ввода и изменения этих данных
  • Нужно ли хранить в одном объекте несколько таблиц данных, и если да, то с какими аналитиками, будет ли какой-либо другой объект ссылаться на записи этих таблиц
  • Поддержка хранения данных с историей по датам — нужна или нет
  • Поддержка расчета итогов на какую-либо дату, или оборотов за период — нужна или нет
  • Поддержка двойной бухгалтерской записи — нужна или нет
  • Поддержка вытесняющих графиков величин во времени — нужна или нет
  • Поддержка процессов взаимодействия пользователей по объекту — нужна или нет

Эти сведения помогут программисту создать нужную категорию объектов системы, которую потом не нужно будет переделывать, если он сам не догадался о вышеперечисленных характеристиках.
Алгоритмы автоматического заполнения данных
Если у Вас формы ввода содержат много полей или таблиц, Ваши пользователи вряд ли захотят каждый раз заполнять все поля с чистого листа.
Здесь Вы должны продумать, какие поля или таблицы могут быть заполнены по другим полям или таблицам этого или других бизнес-объектов.
Так же, здесь Вы продумываете зависимые автоматические заполнения форм ввода в зависимости от только что измененных полей пользователем. Например, после выбора номенклатуры пользователю не надо выбирать ее основную единицу измерения, система подставит ее по-умолчанию сама.
Формы вывода информации
В эту категорию попадают отчеты и формы объектов «на просмотр» или «выбор». Понятное дело, программист не должен сам придумывать форму отчета, которую Вы представляете себе совершенно определенным образом.
Нарисуйте прообраз такого отчета в Excel, желательно, с формулами и комментариями, откуда брать информацию, и вложите в ТЗ. Этого достаточно.
Так же сюда попадают формы выгрузки данных в Excel или XML и другие форматы для интеграции с другими системами.
***
Формы ввода и вывода часто могут объединяться с алгоритмами заполнения данных и контрольными процедурами в функциональные интерактивные АРМы пользователей, дополняться кнопками, вызывающими определенные действия и события в системе. Тем не менее, к ним применимы те же самые принципы написания технического задания, с учетом этих особенностей.
Обеспечив программиста этим нехитрым набором сведений в техническом задании, вы на 90% застрахуете себя от того, что он сделает что-то не то.
P.S. Ну разве что у Вас работает не настоящий программист 1С. Может он лучше пишет на python?

Что такое техническое задание (ТЗ)?

Техническим заданием называется служебный документ с описанием правил выполнения работы и требований к исполнителю.

Почему важно зафиксировать весь процесс работы в виде технической документации?

  1. В ТЗ прописаны договоренности между исполнителем и заказчиком, которые сложно выразить в договоре из-за использования специфической IT-терминологии.
  2. Это сэкономит время на коммуникациях: зафиксированные технические решения избавят от многочисленных пересказов, подтверждений, путаницы в показаниях.
  3. Документ позволит четко разделить зоны ответственности между сторонами проекта.
  4. ТЗ дает возможность проанализировать будущий проект и выявить проблемы на стадии планирования.
  5. Правильно составленное задание сделает поведение всех участников работы предсказуемым и избавит от возникновения многочисленных недоразумений.
  6. С юридической точки зрения, наличие этого документа облегчит сторонам разрешение спорных моментов.
  7. Техзадание делает возможным финансовое планирование, что является залогом успешного бизнеса. Заказчику будет заранее видно, на что расходуются его средства.

У каждого проекта должны быть обозначены границы — по стоимости, объему выполняемых работ, срокам исполнения и качеству. Все это должно быть зафиксировано в ТЗ.

Если одна из сторон хочет сотрудничать без техзадания

Это может означать следующее:

  1. Заказчик не устанавливает четких требований специально, чтобы затем получить часть работ бесплатно, либо он не уверен/ не знает/ не решил/ не понимает, что ему надо.

  2. Разработчик надеется на постоянное продолжение работ за счет заказчика, аргументируя это некой неопределенностью.

В такой ситуации противоположная сторона должна обязательно настоять на создании технического задания с четкими границами и определением задач. Без этого сторонам будет трудно доказать, что работы были сделаны, или, наоборот, не сделаны должным образом.

Участники проекта

Заказчик Менеджер проекта Разработчики
Ставит задачу Ставит задачу разработчикам Выполняют задание в соответствии с ТЗ
Согласовывает ТЗ Контролирует ход работы и расставляет приоритеты
Принимает работу Осуществляет взаимодействие с заказчиком и разработчиком
Тестирует выполненную работу (если нет тестировщиков)

Если проект большой, дополнительно могут добавиться участники:

  • Product Manager
  • Руководитель проекта
  • Спонсор проекта
  • Тестировщики
  • Технические писатели
  • Кураторы
  • Пользователи/потребители (например, для финального тестирования)
  • И др.

Если проект маленький, то заказчик и исполнитель, как правило, работают напрямую. В этом случае тестирование берёт на себя заказчик, а разработчик сам контролирует сроки и ставит приоритеты.

Что дает сторонам каждый раздел ТЗ:

Раздел ТЗ

+ Для Заказчика

+ Для Разработчика

Определение цели

Осознание задач, которые решает проект или его доработка

Понимание сути задачи

Описание продукта

Представление о том, каким будет готовый продукт

Уверенность в правильном понимании конечного результата

Сроки выполнения

Ориентирование в сроках работ и получения планируемых результатов

Оценка трудозатрат и потребности в ресурсах

Бюджет проекта

Определение более-менее точной суммы затрат и планирование бюджета

Согласованный учет всех работ проекта

Перечень работ

Подробное описание работ и каждого этапа реализации проекта

Ведение работ по установленной технологии. Возможность отказаться от работ, не предусмотренных заданием, либо включить их в ТЗ за доплату

Оценка результата работ

Проверка работы проекта по программе тестирования на соответствие требованиям задания

Возможность удостовериться в бесперебойной работе проекта и в его соответствии требованиям ТЗ

Обслуживание проекта

Планирование затрат на обслуживание и представление о дальнейшей поддержке проекта

Выполнение работ с учетом обслуживания проекта в перспективе

Выявление проблем

Планируемые доработки проекта

Доработка в соответствии с новыми потребностями

Последствия составления некачественного задания

  • Программист или команда разработчиков действуют «вслепую», несогласованно, не имея четкого представления о конечном результате проекта. Итогом будут зря потраченные время и деньги, испорченные отношения с заказчиком.

  • Результат проекта не соответствует ожиданиям заказчика. Потребуется дополнительный бюджет и время на доработки.

Обычно разработке качественного ТЗ мешают следующие моменты:

  • Заказчик не готов платить до 40% от стоимости проекта только за разработку задания. Например, можно еще до начала проектирования написать все тест-кейсы и заложить в ТЗ. Но в этом случае стоимость задания с тест-кейсами может превысить стоимость разработки, а его составление займет не один месяц. Зато это полностью снимает вопрос с ошибками в работе и упрощает приёмку.

  • Заказчик не знает всех деталей проекта до начала эксплуатации уже готового результата.

  • Исполнитель не готов без должной оплаты тратить больше ресурсов на разработку ТЗ.

  • Исполнитель и заказчик не могут предвидеть заранее все возможные проблемы. Опытные участники проекта с обоих сторон могут заранее предусмотреть ряд типовых и уникальных проблем, но это не гарантирует, что вся работа над проектом пройдет гладко.

Например, забыли прописать в техзадании наличие одной кнопки, а после сдачи проекта оказалось, что без неё полноценно пользоваться системой нельзя. Для добавления же кнопки требуется переделать половину внутренней архитектуры базы данных, а значит и часть программного кода переписывать. Кто из сторон виноват в этой ситуации?

Большинство таких проблем решает Agile (гибкий подход к работе), но это не отменяет необходимость составления ТЗ. Используйте Agile при разработке любых проектов с высокой неопределённостью. Как правило, против этого выступают только заказчики, потому что они не видят точной границы цены и сроков. Зато финальный продукт гарантировано будет выполнять поставленные задачи — Agile в разы снижает число готовых проектов, которые были заброшены из-за того, что не выполняют своих функций.

Стороны должны понимать, что большинство проектов выполняется с большой долей неопределённости, и заранее договариваться, как будут взаимодействовать в случае возникновения проблем.

Техзадание должно отвечать на вопросы:

  1. Что? (какие работы, содержание элементов)
  2. Где? (расположение элементов)
  3. Когда? (последовательность выполнения и установленные сроки работ)
  4. Как? (технология реализации, оформление, принцип работы.) Как правило, у любого объекта должны быть функции: добавления, отображения, редактирования, удаления. А также описаны зависимости и взаимодействия с другими объектами. Иногда добавляются функции модерации, валидации, автообновления, архивации и т.п.
  5. Откуда? / Куда? (при переносе и т. п.)
  6. Зачем? (обоснование работ, если задание будет согласовываться с 3-м лицом)
  7. Особенности.

Основные рекомендации и пояснения по написанию ТЗ

  1. Чем больше масштаб проекта, тем более объемным должно быть техническое задание.
  2. Необходимо указывать реально осуществимые сроки выполнения работ с учетом времени на согласование проектной документации и приемо-сдаточных мероприятий. Стоит обратить внимание на ответственность заказчика за бездействие с его стороны или на форс-мажоры, тормозящие выполнение работ.
  3. Программисту нужны четкие условия. Формулировки «как вариант”, «примерно”, «около”, «где-то рядом”, «там, где лучше по вашему мнению”, — неприемлемы. Требования и характеристики, которые носят субъективный характер, бессмысленны с практической и ошибочны с юридической точек зрения.
  4. Чтобы сделать задачу по созданию какого-либо функционального модуля понятной для программиста, в техзадании размещают гиперссылки на те страницы, где есть нужные элементы интерфейса и функции, и дают к ним подробные пояснения. Также прилагают скриншоты с выделением интересующего фрагмента.
  5. Если дизайна для страниц нет или он не так важен для заказчика, программист может использовать прототипы, о чем после согласования указывается в задании.
  6. ТЗ должно быть удобным и понятным для всех сторон проекта, подробно описывать все этапы и подпункты даже по самым незначительным работам. Программист и менеджер не всегда имеют представление о том, что необходимо заказчику, поэтому важно своевременно обнаружить и согласовать все несогласованные детали.

7 типовых ошибок

  1. Нечеткие цели и задачи.
  2. Мало деталей в технической информации.
  3. Размытые или неустановленные сроки.
  4. Нет согласованности по всем вопросам между сторонами.
  5. Нет регламента взаимодействия.
  6. Нет ответственных лиц.
  7. Нет критериев оценки результата.

Пример правильного технического задания на доработку проекта

Задача:
Разместить на сайт новую страницу, где будут размещены контакты и фотографии продавцов-консультантов, а также онлайн чат.

Описание:

  1. ГДЕ? Добавить в главное верхнее меню сайта новый раздел «Ваш консультант» между разделами «Блог» и «Наши клиенты».
  2. КУДА? URL новой страницы сделать: /vash_konsultant.htm
  3. КАК? Макет новой страницы взять со страницы «Наши врачи”. Только вместо врачей будут консультанты.
  4. ЧТО? Структура страницы следующая:
    • заголовок: Ваш консультант — по центру (в стиле других заголовков страниц сайта);
    • 3 блока в ряд, имеющие поля:
      • с фотографиями продавцов размером 400*600 (выравнивание по центру);
      • Ф.И.О. продавцов под фотографиями (текстовый формат с возможностью правки);
      • телефон общий у всех: 555-555-55 под Ф.И.О. (текстовый формат с возможностью правки);
      • электронный адрес под телефоном (e-mail: site2@mail.ru);
      • кнопка «Получить консультацию» ниже всех полей, размер кнопки, цвет и форма в стиле кнопок на сайте (см. кнопка «Сделать заказ» на url: /katalog.ru).
  5. ОТКУДА? Данные консультантов должны правиться в редакторе сайта. Также должны редактироваться теги TITLE, DESCRIPTION, H1.

Если работы выполняются для целей SEO – не забывайте закладывать все необходимые элементы на странице.

Также внизу разместить форму заказа.

  1. ГДЕ? Под списком консультантов, над футером.
  2. ЧТО? Три поля:
    • Имя
    • Номер телефона

От того, насколько точно составлено техническое задание на доработку 1С, напрямую зависит, будут ли решены поставленные перед разработчиками задачи. Вместе с тем при работе с таким документом существуют некоторые сложности. В широком понимании в ТЗ прописаны нормы при создании и модернизации автоматизированной системы (АС), а также порядок работ. Сюда же входит и свод стандартов запуска проекта. Это понимание роли технического задания продиктовано требованиями ГОСТ 19.201-78 и 34.602-89, согласно которым ведется разработка ТЗ для 1С. Есть и другое толкование значения этого документа, более приближенное к практике.

Согласно другому определению, техническое задание на доработку 1С — это документ, регулирующий назначение и параметры будущей системы, а также процесс разработки документации и ее перечень. Такое толкование позволяет учитывать интересы программистов и заказчика.

Каким должно быть ТЗ?

Любое техническое задание на разработку программы 1С создается исполнителем. Но этим занимается не программист, а аналитик. Это важный момент, поскольку документ должен быть составлен на языке, понятном клиенту, без узкоспециальных технических терминов. Когда все нюансы проекта учтены и информация сформулирована верно, ТЗ согласовывается со всеми заказчиками. В случае его принятия к работе подключаются программисты. При этом в документе должен быть четко очерчен желаемый результат. Это помогает разработчикам правильно поставить цель и сверяться с ней на разных этапах. Также большое внимание при составлении технического задания на доработку 1С стоит уделить формулировкам. Следует следить, чтобы они были достаточно конкретными и не предполагали иных толкований. Это первое, о чем нужно помнить при работе с ТЗ. Также нужно ответственно подойти к оформлению. Это касается и титульного листа документа.

Александр Моисеев Руководитель отдела разработки Нужна помощь
специалиста?
Профессиональная консультация БЕСПЛАТНО

Основные ошибки в техническом задании на разработку 1С

Структура техзадания регламентируется ГОСТ 34.602-89. В этом документе содержатся четкие требования по количеству и последовательности блоков информации в ТЗ. В то же время там нет строгих стандартов по способам изложения. Такая ситуация заключает в себе большой потенциал для решения сложных задач и одновременно может повлечь множество ошибок при составлении документа. Наиболее часто встречаются следующие неточности:

  1. Повторение некоторых разделов в разных интерпретациях.
  2. Информация дается беспорядочно. В идеале она должна относиться к определенной структуре, например бизнес-процессам или модулям системы.
  3. Информация в разных разделах подается с разной степенью детализации.

Все это препятствует пониманию заказчиком информации, которая изложена в ТЗ. Это осложняет процесс сотрудничества, делая его более трудоемким.

После просмотра заказчиком образец ТЗ на доработку 1С может измениться и не всегда в лучшую сторону. Это в свою очередь обычно мешает программистам правильно воспринимать информацию. Особенно это касается специалистов с небольшим опытом. На этом этапе часто возникают следующие ошибки:

  1. Требования разных разделов противоречат друг другу.
  2. Формулировки оказываются неточными.
  3. Местами информация излишне детализирована.

Избавиться от всех перечисленных ошибок просто. Нужно ориентироваться, прежде всего, на результат, а не на тщательное прописывание формулировок. Стоит помнить, что ТЗ описывает функционал проекта, его основные параметры и назначение.

Как избежать ошибок при разработке ТЗ?

Основное правило, которое относится ко всем последующим рекомендациям, — формулировки должны быть конкретными. Для этого нужно использовать ссылки на ГОСТы, другие нормативные документы. Это позволяет исполнителю и заказчику воспринимать информацию в одном ключе.

Пример технического задания на доработку 1С предполагает использование языка той отрасли бизнеса, для которой выполняется проект. Это нужно, прежде всего, для заказчика. При этом в тексте не стоит использовать любые сравнения, поскольку они могут быть истолкованы по-разному.

Основные правила при составлении технического задания на разработку отчета и других элементов 1С:

  1. ТЗ создается совместно исполнителем и заказчиком.
  2. К работе программистов должны предъявляться только объективные требования. Для успешной разработки проекта субъективное видение заказчика должно быть сведено к минимуму.
  3. Нужно подробно описывать результат, который нужен заказчику. При этом в примере технического задания на разработку конфигурации 1С необходимо прописывать все параметры, по которым должен работать элемент. Иначе результат может сильно отличаться от желаемого.
  4. Риски исполнителя и заказчика должны быть примерно равны и сведены к минимуму.
  5. Нельзя применять термины, которые используются в деловом общении и не применяются в конкретной отрасли.

Для создания ТЗ на разработку отчета в 1С или другого элемента аналитик должен знать все особенности сферы деятельности заказчика. В требованиях нужно давать только полезную информацию, которая пригодится исполнителю. Учитывая, что особое внимание здесь уделяется конечным задачам, которые должно решать программное обеспечение, единого примера технического задания не существует.

Опасность неверного составления ТЗ

Перечисленные выше ошибки могут вести к увеличению времени, которое затрачивается на создание системы. Это влечет за собой лишние расходы и недовольство. Техническое задание на разработку базы данных или другой конфигурации 1С должны составлять опытные специалисты. От того, насколько этот документ доступен для понимания, зависит выгода всех участников. Заказчик получает эффективную автоматизированную систему для решения бизнес-задач. При этом у подрядчика — еще один довольный клиент. Собственникам бизнеса нужно как можно внимательнее подходить к выбору компаний-партнеров 1С, ведь от того, насколько качественно составлено техническое задание на доработку, во многом зависит эффективность организации.

Смотри, если у тебя стоит задача «разработать сайт под ключ» — переходи по этой ссылке и делегируй нам задачу.

Если нужен пример технического задания — смотри статью «ТЗ на создание и разработку сайта».

Если нужно понять принцип, как написать техническое задание для программиста на разработку сайта — читай эту статью далее. Сейчас я расскажу непосредственно о том, каким в принципе должно быть техническое задание для разработчика. И поделюсь своим личным опытом с обратной стороны — со стороны исполнителя.

Мне часто приходится оценивать разные ТЗ от клиентов, и в 80% случае по факту это не ТЗ, а «описание проекта». Это и нормально, потому что клиент не обязан разбираться в технических сложностях. Однако, я считаю, если уж принято решение на разработку сайта, то следует подойти к вопросы максимально грамотно.

Самое грамотное решение — это заказать сайт у нашей команды. Почему? — Потому что мы имеем достаточную экспертность для того, чтобы закрывать 75% всех бизнес-задач малого и среднего бизнеса. И есть готовность сотрудничать честно, потому что наша миссия в том, чтобы создавать правильные и эффективные сайты.

Содержание технического задания

Техническое задание на разработку сайта может быть построено на основе двух разных стратегий. Выбор стратегии зависит от ваших компетенций в ИТ, и от уровня экспертности ваших потенциальных исполнителей.

Поэтому, вот два разных типа Технического Задания на разработку сайта:

  1. инструкция к действию — описано что именно и как именно следует реализовать
  2. описание задачи — информация об исходных данных и о нужном конечном результате

Полагаю, видна принципиальная разница даже по названию стратегии. Реализация каждой из стратегий будет абсолютно разной.

Почему я разделил вот так грубо? — Потому что для решения большинства задач именно этих двух стратегий будет достаточно. Ваш исполнитель либо выполняет инструкции, либо использует свои навыки+опыт+знания для решения поставленной задачи.

Какую стратегию для ТЗ выбрать в вашем случае?

Так какую стратегию для ТЗ выбрать? — Все достаточно просто. Решение следует принимать на основе нескольких параметров.

Вариант №1 — Если ты ничего не понимаешь в ИТ. Если ты совсем ничего не понимаешь в ИТ, то нет смысла быстро штрудировать Гугл, изучать поверхностно вопросы и пытаться изобразить серьезного заказчика используя модные ИТ слова. Есть смысл заняться поиском компетентного и честного исполнителя. Как найти честного исполнителя — это тема для другой статьи — позже напишу. В этом случае нужно найти компетентного специалиста и поставить им задачу. Даже не нужно пытаться писать инструкции — получится все равно ерунда и ошибки будут скорее всего в самой инструкции из-за непонимания процесса разработки. Как писать такое ТЗ — описано ниже.

Вариант №2 — Ты разбираешься в ИТ и тебе нужен исполнитель. Если нужен исполнитель, то действительно есть смысл написать четкую инструкцию к действию и требовать полного соблюдения. Этот вариант хорош на микро-проектах и на макро-проектах. Для задач среднего уровня этот тип ТЗ подойдет не лучшим образом. Как писать такое ТЗ — инструкция ниже. В этом случае честность исполнителя не имеет значения. Значение имеет только исполнительность человека и соответствие результата/процесса инструкции.

На что еще обратить внимание при выборе стратегии?

Дело в том, что исполнители также встречаются двух типов:

  • первые — выполняют четкие инструкции, и ни на шаг не отходят
  • вторые — решают задачи — таким инструкции не нужны

В первом случае действительно следует писать инструкцию, и чем подробнее, тем лучше. Поскольку скорее всего Вы услышите «Этого не было в ТЗ!», если потребуется скорректировать что-то по ходу работы над сайтом.

Во втором случае, исполнитель без вопросов выполнит необходимые правки, если это действительно соответствует поставленной задаче. Более того, несмотря на инструкции в ТЗ, второй тип исполнителей скорее выполнят задачу так, как посчитают нужным. Уверен, кому-то это может показаться странным. Однако, для того и нанимают компетентных специалистов, чтобы они решали задачи в соответствии со своим опытом.

Закажите разработку ТЗ для вашего проекта

Напишем Техническое Задание на основе Ваших устных пожеланий, которое будет понимать разработчик.

Поставить задачу

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх