Методика постановки задачи

05.07.15

Архитектура

Метод из моей практики. Он позволяет кратко, но детально описать задачу по программированию. Не требует специальных навыков. Может выполняться на листочке формата А4 или в подходящем редакторе.

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

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


Метод состоит из двух этапов:

1. Описание ожидаемого результата в виде таблицы. При этом нужно нарисовать таблицу с заголовками полей.

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

Описание задачи считаем законченным, когда все поля ожидаемой таблицы заполнены.

 

Продемонстрирую суть методики на примере.

 

Пример. Задача расчета себестоимости.

Пусть нам нужно описать алгоритм списания по ФИФО при реализации товара.

Шаг 1: в качестве ожидаемого результата хотим получить движения в регистре Остатки после проведения документа Расходная накладная. Рисуем заголовки полей регистра:

Регистр Остатки

  Регистратор     Период     Склад     Товар     Количество  
         

 

Нарисуем одну строку под шапкой, но не заполняем ее

 

Шаг 2.1: Заполняем поля в ожидаемом результате и параллельно рисуем источники данных.

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

Регистр Остатки (ожидаемый результат)

  Регистратор     Период     Склад     Товар     Количество  
 РН1  Д10  С1    


Документ Расходная накладная

  Ссылка     Дата     Склад  
 РН1  Д10  С1


Шаг 2.2: Связь с первым источником данных описали, переходим к следующим полям.

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

Регистр Остатки (ожидаемый результат)

  Регистратор     Период     Склад     Товар     Количество  
 РН1  Д10   С1   Т1   


Документ Расходная накладная

  Ссылка     Дата     Склад  
 РН1  Д10   С1 


Документ Расходная накладная (табличная часть)

  Ссылка     Товар     Количество  
 РН1  Т1   20


Шаг 2.3: Описываем заполнение последнего поля.

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

Регистр Остатки (ожидаемый результат)

  Регистратор     Период     Склад     Товар     Количество  
 РН1  Д10   С1   Т1   - 3 
 РН1  Д10  С1  Т1  - 17


Документ Расходная накладная

  Ссылка     Дата     Склад  
 РН1  Д10   С1 


Документ Расходная накладная (табличная часть)

  Ссылка     Товар     Количество  
 РН1  Т1   20


Регистр Остатки

  Регистратор     Период     Склад     Товар     Количество  
 ПН1  Д1   С1   Т1   3 
 ПН2  Д2  С1  Т1  30

 

 В результате получили детальное описание задачи. При этом оно содержит только важные детали.

 

Этот способ я использую при постановке задач по проведению документов и написанию отчетов.

методика тз программирование постановка задача

См. также

Архитектура решений Программист Платформа 1С v8.3 Бесплатно (free)

В статье расскажу про относительно уникальное явление на рынке. EmplDos - полноценный сервис, который в качестве Backend использует платформу 1С. Речь пойдёт не только о технической и архитектурной стороне вопроса, а ещё и о всех трудностях и граблях, которые пришлось и до сих пор приходится преодолевать на пути к успеху.

14.10.2024    4067    0    comol    28    

28

Кейсы автоматизации Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Компания «Уралхим» использует 1С:Документооборот не только для хранения и согласования документов, но и для централизованного управления НСИ между 47 системами (не только на 1С); для бэкенда к мобильным приложениям охранников; и в качестве сервиса заказа справок для сотрудников. О деталях реализации нестандартных решений, разработанных в компании «Уралхим» на базе 1С:Документооборот, пойдет речь в статье.

02.08.2024    3511    0    Novattor    1    

16

Кейсы автоматизации Платформа 1С v8.3 Энергетика и ЖКХ Россия Бесплатно (free)

Делимся опытом автоматизации учета башни раздачи воды.

27.12.2023    2212    0    slavik27    7    

15

Отчеты и дашборды Бизнес-аналитик Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Если вы привыкли выгружать бухгалтерские операции в Excel и дополнять их там управленческой информацией, вы сможете значительно сэкономить время, получая нужные управленческие отчеты в бухгалтерской программе сразу, без лишних движений. Представляем решение для самостоятельного внедрения управленческого учета в 1С:Бухгалтерии.

11.12.2023    2937    0    Serg_Tangatarov    2    

16

Архитектура решений Программист Бесплатно (free)

Рассмотрим применение архитектурной проверки задач в процессе разработки.

30.10.2023    5658    0    ivanov660    10    

35

Кейсы автоматизации Работа с требованиями Анализ бизнес-процессов Бесплатно (free)

Автоматизировать производственные процессы в 1С:ERP без доработки типовых механизмов очень сложно. А дорабатывать типовые механизмы 1С:ERP не всегда оправданно. Решением может стать технология разработки Рабочих мест, которая позволяет автоматизировать самые сложные участки последовательно – шаг за шагом, процесс за процессом. Расскажем о том, как помочь пользователям вводить большое количество данных, не нарушая порядок ввода и полноту заполнения всех необходимых реквизитов, и как вовлечь сотрудников Заказчика в разработку и тестирование функционала Рабочих мест.

26.10.2023    2982    0    user1754524    15    

17

Кейсы автоматизации Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

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

29.08.2023    3542    0    ke_almaty    0    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mosAdm 135 05.07.15 20:07 Сейчас в теме
Вы явно не Андрей Габец. Эту методику он читает в 3-м УЦ наверно лет 10 уже.
2. json 3352 05.07.15 22:41 Сейчас в теме
(1) mosAdm, я не Андрей Габец и его курсов не посещал. Я простой разработчик и до такой схемы дошел самостоятельно. Мне приятно, что это уже кто-то придумал, да к тому же еще и читает на курсах. Значит, она действительно имеет ценность.
У меня есть еще куча идей для статей, которые я планирую опубликовать в ближайшее время. Эта методика хорошо ложится для создания юнит-тестов. Чуть позже выберу время и опубликую пример, как это использовать на практике.
Andreeei; dddxddd; +2 Ответить
8. dddxddd 09.07.15 17:33 Сейчас в теме
(2) я даже не знаю что такое 3-м УЦ, но когда объясняю задачу, рисую аналогичные таблички...
(1) mosAdm, не всему что начитывют учителя, можно верить (правда не в этом примере). Но самое главное это надо уметь применять на практике...
5. Mi4man 175 06.07.15 13:20 Сейчас в теме
(1) mosAdm, Автор выложил всем, а Габец пусть дальше читает...
verunca; Andreeei; shumvlesu; +3 Ответить
3. BigRig 19 06.07.15 09:13 Сейчас в теме
Доброго времени суток!

Почему первые даты Д10?
Зачем мы брали расходные, если в итоге приходные используются?
4. json 3352 06.07.15 11:34 Сейчас в теме
(3) DimaBab, в моем примере предполагается, что Д1 раньше, чем Д2, а Д2 - раньше, чем Д10.
В задаче РН - расходная накладная, ПН - приходная накладная. Приход должен быть раньше расхода.
6. СергейК 51 08.07.15 09:24 Сейчас в теме
Интересная методика. Попробую использовать. Спасибо, что поделились!
7. DrAku1a 1746 09.07.15 03:52 Сейчас в теме
СокрЛП(Статья): Планируя структуру документа "от регистра" (от результата), надо определить - какие измерения будут "в целом на документ", а какие "построчно" - в случае с регистром "Товары на складах" и документом "Реализация" - построчно будут реквизиты "Товар" и "Количество", а в целом на документ - "Регистратор", "Период" и "Склад".

Конкретизируйте название. "Методика постановки задачи" предполагает наличие общей методики (на разные виды задач, не только же документы и отчеты делаем).
9. pro1c@inbox.ru 187 09.08.15 17:59 Сейчас в теме
для примитивных случаев самое оно!
Оставьте свое сообщение