mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Как составить техзадание на программу (макрос)

Здравствуйте, уважаемые заказчики программ для Excel.

Пожалуйста, выделите несколько минут своего времени, чтобы узнать, 
как правильно составить (оформить) заказ на программу (макрос для Excel)

К написанию этой статьи меня побудил тот факт, что подавляющее большинство заказов приходит в таком виде, что сразу и не понять, что нужно сделать.

Есть, конечно, какие-то ГОСТы на техзадания, - но, к счастью, по ним никто ТЗ не пишет, - ибо там слишком много лишнего.
Поэтому я опишу свой взгляд на идеальное техзадание (далее - ТЗ), не претендуя на истину в последней инстанции.

Для примера, можете ознакомиться с примерами неправильно оформленных заказов (ссылка будет добавлена чуть позже), а в конце этой статьи будут примеры идеальных заказов (когда я сразу начинаю работу над программой, и спустя пару часов вы уже можете получить тестовый вариант программы)

 

Вкратце, структура идеального техзадания выглядит так:

1) Предназначение программы - что она должна делать (1-2 предложения)

Например: Программа должна собирать данные из множества файлов Excel, расположенных в заданной папке, и формировать 2 отчёта: в форматах XLS и CSV

2) Исходные данные - примеры файлов, описание их особенностей

Например: Исходные данные - файлы Excel, расположенные в подпапках одной папки. Во вложении - архив folder.rar, содержащий примеры нескольких таких файлов, с сохранением структуры подпапок. Кроме того, нам понадобятся данные ещё из одного файла Excel - см. файл Реестр.xls во вложении. Файл Реестр состоит из нескольких листов (нам нужны будут данные только со второго листа), путь к файлу меняться не будет (в настройках программы надо иметь возможность выбирать путь к файлу РЕЕСТР, и папке с файлами XLS)
Количество файлов XLS - разное, примерно от 100 до 1500.

3) Что надо получить в результате - примеры файлов, краткое описание

Например: По нажатию одной кнопки, программа должна формировать 2 файла - см. примеры таких файлов во вложении (Результат.xls и data.csv)
Файлы должны сохраняться в той же папке, где и исходный файл Реестр.xls, имя создаваемого файла Excel должно содержать текущую дату (например, «12-10-2012 report.xls»)
Файл CSV должен быть в кодировке UTF-8 (для последующей загрузки на сайт)

4) Как всё должно работать (что откуда берется, куда подставляется, и т.д. и т.п.)

Например: при нажатии кнопки (кнопку можно расположить в файле Реестр.xls), макрос перебирает все файлы XLS в заданной папке, с первого листа каждого файла берет табличку (начиная со строки 5), и копирует данные в таблицу файла РЕЕСТР, вставляя новые данные ниже существующих. После этого строки с одинаковым артикулом (столбец 2) объединяются - при объединении строк суммируется количество (столбец 5).
Когда все данные собраны, копия листа 2 файла РЕЕСТР сохраняется в файл 12-10-2012 report.xls
Из файла 12-10-2012 report.xls создаётся файл CSV (c перестановкой столбцов, см. пример)

5) Информация по срокам, контактные данные

Например: Сроки не поджимают, на желательно сделать в течение 3-4 дней.
На все вопросы готов ответить по Скaйпу - мой ник: super_client, или по ICQ 123456789

Конечно, и по такому заданию мне наверняка придётся задать несколько уточняющих вопросов, - но, в целом, все понятно, что надо делать.

 

Более подробно о некоторых моментах:

Как лучше излагать задачу, чтобы она была мне понятна:

Чем подробнее вы опишете суть задачи - тем лучше. Не экономьте слова - представьте, что вы объясняете суть задачи человеку, абсолютно незнакомому со спецификой вашей деятельности (например, соседской бабушке). Если вы сможете описать задачу так, что даже бабушка поймёт, что и как должно работать, - тогда ваше задание будет рассмотрено в кратчайшие сроки (и, вполне возможно, вы получите готовую программу в тот же день)

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

Первое, что мне нужно понять из задания, - что является исходными данными, и что должно получится в результате.

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

Если на выходе должен получаться файл CSV - так вы и прикрепляйте пример в CSV, а не в виде книги Excel (XLS, XLSX и т.д.)
Если надо загружать данные с сайта - обязательно укажите, с какого конкретно сайта, с каких страниц, какие именно данные с веб-страницы нужны.

Второе, что мне необходимо понять, - это какие исходные данные (файлы) меняются, а какие - остаются постоянными.

Если, например, требуется обрабатывать прайс-лист вашей организации, - сообщите, исходный файл прайс-листа всегда один и тот же (вы вручную вносите в него изменения),
или же этот файл постоянно меняется (например, ежедневно выгружается из программы 1С).

Это связано с тем, что мне необходимо понимание, можно ли встраивать код программы в этот конкретный файл, или же код надо выносить в отдельный файл-надстройку (если каждый день - новый исходный файл, все исходные файлы XLS регулярно заменяются новыми)
Если какой-то один из исходных файлов регулярно не заменяется новым, то обычно я в него и встраиваю программу (и размещаю кнопки запуска программы на листах этого файла Excel)

Третье - требуется разобраться, как из исходных данных получается результат

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

Если программа должна хитрым образом переставлять данные в столбцах - желательно сопроводить примеры файлом цветовыми пометками - например, одинаковые поля в исходном и конечном файлах выделить одним цветом (это куда удобнее для восприятия, нежели 20 предложений с перечислением, какой столбец в какое место результата вставлять)

Чтобы не тратить лишее время на описание сложных алгоритмических конструкций, сразу после оформления заказа пишите мне в Скайп или ICQ, - я задам уточняющие вопросы.
Основное правило в таких обсуждениях - сначала заказ с примерами файлов (обратите внимание - с примерами файлов!), и только потом обсуждение.
Если вы мне сначала звоните в скайп (не выслав файлы), и начинаете задавать вопросы, - а можно ли в моём файле сделать то-то и то-то, - я не смогу вам ответить (я, увы, не телепат)

Что самое важное в оформлении заказа:

  1. прикрепить примеры файлов, на их примере показать, что надо сделать
  2. оставить контактную информацию (Скайп, ICQ, номер сотового)
  3. указать сумму, которую вы готовы заплатить, если программа будет полностью соответствовать вашим пожеланиям

 

 

PS: один из моих коллег очень удачно описал, что нужно для постановки задачи.

в постановке любой задачи должны быть понятны ответы на следующие вопросы:

1. Где находятся исходные данные, как организованы или как и в каком виде они поступают в систему
2. Что должно быть результатом работы системы (для чего все это делается, как должны выглядеть результаты)
3. Правила по которым исходные данные преобразуются в конечный результат (если в ходе обработки нужна доп. информация от оператора, должно быть понятно какие данные и каким способом должен внести оператор, если используются справочники то какие, где они есть и какова их роль в расчете)
4. Что служит толчком для запуска системы (нажата кнопка, изменились данные, открыт файл и пр.)

когда есть ТОЧНЫЕ ответы по каждому из пунктов - только тогда можно что-то делать