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

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)

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

27.12.2023    1792    0    slavik27    5    

15

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

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

11.12.2023    2044    0    Serg_Tangatarov    2    

16

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

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

30.10.2023    4646    0    ivanov660    10    

33

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

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

26.10.2023    2369    0    user1754524    15    

17

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

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

29.08.2023    3212    0    ke_almaty    0    

14

Архитектура Рефакторинг и качество кода Обновление 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Нашей компании часто приходится сталкиваться с обновлением конфигураций разной степени переписанности. Какие-то из них обновляются легко, какие-то — не очень. Расскажем о некоторых принципах модификации программы, которые помогут сделать последующий процесс обновления легче. Или тяжелее, если стараться их не соблюдать.

10.08.2023    10422    0    1c-izh    37    

23

Кейсы автоматизации Внедрение изменений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Управленческий учет Бесплатно (free)

Стабильное качество выпускаемой продукции и ее соответствие нормативным документам (ТУ, ГОСТам, СМК) для активного предприятия является конкурентным преимуществом, так как оно подчеркивает, что на предприятии отлажены контрольные процедуры на входящее сырье, производство полупродуктов и готовой продукции, доставки. В своей практике я принимал участие во внедрении цифровых инструментов в сельском хозяйстве, где показателями зерна служат влажность, засоренность, крупность и т.д.; в металлургии — перед литьем в формы надо проверить сплав на содержания железа, алюминия, магния и т.д.; в кабельной промышленности в дополнение к физическим свойствам типа геометрии, длины, шероховатости, надо выдерживать и электротехнические показатели. 

22.05.2023    1688    0    Ingraf    1    

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

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

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