Як скласти техзавдання на програму (макрос), макроси для excel

Привіт, шановні замовники програм для Excel.

Будь ласка, виділіть кілька хвилин свого часу, щоб дізнатися,
як правильно скласти (оформити) замовлення на програму (макрос для Excel)

До написання цієї статті мене спонукав той факт, що переважна більшість замовлень приходить в такому вигляді, що відразу і не зрозуміти, що потрібно зробити.

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

Якщо коротко, структура ідеального техзавдання виглядає так:

1) Призначення програми - що вона повинна робити (1-2 речення)

Наприклад: Програма повинна збирати дані з безлічі файлів Excel, розташованих в заданій папці, і формувати 2 звіту: в форматах XLS і CSV

2) Вихідні дані - приклади файлів, опис їх особливостей

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

3) Що треба отримати в результаті - приклади файлів, короткий опис

4) Як все повинно працювати (що звідки береться, куди підставляється, і т.д. і т.п.)

5) Інформація щодо термінів, контактні дані

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

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

Більш докладно про деякі моменти:

Як краще викладати завдання, щоб вона була мені зрозуміла:

Чим докладніше ви опишете суть завдання - тим краще. Не економте слова - уявіть, що ви пояснюєте суть завдання людині, абсолютно незнайомому зі специфікою вашої діяльності (наприклад, сусідської бабусі). Якщо ви зможете описати задачу так, що навіть бабуся зрозуміє, що і як має працювати, - тоді ваше завдання буде розглянуто в найкоротші терміни (і, цілком можливо, ви отримаєте готову програму в той же день)

Не використовуйте при викладі суті завдання спеціальних термінів. особливо в галузі програмування. Просто, своїми словами, поясніть, - що є зараз, і що повинно вийти, - і тоді ми з вами обов'язково зрозуміємо один одного, і програму ви отримаєте точно в тому вигляді, як вам треба.

Перше, що мені потрібно зрозуміти із завдання, - що є вихідними даними, і що маємо отримати в результаті.

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

Якщо на виході повинен виходити файл CSV - так ви і прикріплюйте приклад в CSV, а не у вигляді книги Excel (XLS, XLSX і т.д.)
Якщо треба завантажувати дані з сайту - обов'язково вкажіть, з якого конкретно сайту, з яких IP-адрес, які саме дані з веб-сторінки потрібні.

Друге, що мені необхідно зрозуміти, - це якісь вихідні дані (файли) змінюються, а які - залишаються постійними.

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

Це пов'язано з тим, що мені необхідно розуміння, чи можна вбудовувати код програми в цей конкретний файл, або ж код треба виносити в окремий файл-надбудову (якщо кожен день - новий вихідний файл, всі вихідні файли XLS регулярно замінюються новими)
Якщо якийсь один з вихідних файлів регулярно не замінює новим, то зазвичай я в нього і вбудовувати програму (і розміщую кнопки запуску програми на аркушах цього файлу Excel)

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

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

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

Що найважливіше в оформленні замовлення:

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

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

в постановці будь-якого завдання повинні бути зрозумілі відповіді на наступні питання:

1. Де знаходяться вихідні дані, як організовані або як і в якому вигляді вони надходять в систему
2. Що повинно бути результатом роботи системи (для чого все це робиться, як повинні виглядати результати)
3. Правила за якими вихідні дані перетворюються в кінцевий результат (якщо в ході обробки потрібна доп. Інформація від оператора, повинно бути зрозуміло які дані і яким способом повинен внести оператор, якщо використовуються довідники то які, де вони є і яка їхня роль в розрахунку )
4. Що служить поштовхом для запуску системи (натиснута кнопка, змінилися дані, відкритий файл та ін.)

коли є ТОЧНІ відповіді по кожному з пунктів - тільки тоді можна щось робити