FormSpace
formspace.design
До списку статей
Шлях до FormSpaceновачокплан за вечір

Як я наймав програмістів, не розуміючи, що саме їм пояснити

Мій особистий досвід роботи з програмістами у 90-х та 2000-х: помилки, уроки та як це призвело до створення FormSpace за допомогою ШІ.

На початку 90-х, коли я тільки починав свій бізнес у НВФ «Алькар», світ інформаційних технологій був для мене чимось новим і загадковим. Я, як директор, бачив величезний потенціал в автоматизації управлінського обліку та створенні спеціалізованого ПЗ для наших ізометричних тренажерів. Але була одна велика проблема: я абсолютно не розумів, як «перекласти» свої бізнес-завдання на мову, зрозумілу програмістам. Суть проблеми полягала не у відсутності ідей, а у неможливості їх чіткого формулювання. Я знав, що мені потрібно в результаті, але не розумів як це має працювати зсередини, які кроки мають бути зроблені, і які дані потрібні на вході та виході. Це призводило до тривалої та часто безрезультатної співпраці, де ми витрачали багато часу та ресурсів, а отримували зовсім не те, що очікували.

Мій перший досвід з автоматизацією та програмістами

Моя підприємницька діяльність розпочалася у 1991 році з НВФ «Алькар». Ми займалися розробкою програмного забезпечення для методик тренування на ізометричних тренажерах, а також намагалися впроваджувати управлінський облік в умовах комерційного ринку, що тільки зароджувався. Тоді я вперше зіткнувся з необхідністю ставити завдання програмістам. Я був сповнений ентузіазму, але абсолютно не мав досвіду у формулюванні технічних завдань. Мені здавалося, що достатньо сказати: «Мені потрібна програма, яка рахуватиме доходи та витрати» або «Зробіть так, щоб дані про тренування автоматично зберігалися та аналізувалися». Програмісти кивали, йшли у свою «печеру» на кілька тижнів, а потім приносили продукт, який вимагав доопрацювань, переробок, а іноді й зовсім не відповідав моїм очікуванням. Це був постійний цикл спроб і помилок, який коштував мені чимало нервів та грошей. Наприклад, один із модулів обліку, який, як мені здавалося, мав бути простим, зайняв у нас кілька місяців і суму, еквівалентну вартості невеликої вживаної машини того часу, а результат все одно був далекий від ідеалу.

Типові помилки у постановці завдань

З роками я виділив кілька ключових помилок, які робив сам і бачив у інших:

  1. Розпливчасті формулювання. «Зробіть зручно», «щоб усе літало», «інтуїтивно зрозуміло». Ці фрази нічого не говорять про конкретний функціонал.
  2. Відсутність деталізації. Я не описував сценарії використання: хто користуватиметься програмою, які дані вводити, що очікувати на виході в різних ситуаціях. Програміст не міг здогадатися про всі нюанси мого бізнесу.
  3. Часті зміни вимог. У процесі розробки у мене з'являлися нові ідеї, і я одразу просив їх реалізувати. Це збивало команду, подовжувало терміни та збільшувало вартість.
  4. Нерозуміння технічних обмежень. Я не завжди усвідомлював, що деякі мої побажання можуть бути занадто складними, витратними або зовсім нереалізованими з існуючими технологіями та бюджетом.

Уроки, які я виніс

Мій досвід з «Алькар» (а потім і з «Алькар-інвест», де ми займалися інвестиційними програмами) навчив мене ціні чіткої комунікації. Я зрозумів, що для успішної взаємодії з програмістами потрібно:

  • Максимально деталізувати завдання. Розбити його на дрібні, зрозумілі кроки. Описати, що відбувається на кожному етапі, які дані використовуються, який результат очікується.
  • Використовувати прототипування. Навіть простий начерк на папері або в графічному редакторі допомагає візуалізувати ідею та узгодити її до початку кодування. Це як креслення перед будівництвом будинку.
  • Описувати користувацькі сценарії (User Stories). «Як користувач, я хочу [таку-то функцію], щоб [отримати таку-то вигоду]». Це допомагає програмісту зрозуміти мету та контекст завдання.
  • Фіксувати вимоги. Будь-які зміни мають бути задокументовані та узгоджені, щоб уникнути непорозумінь та зайвої роботи.

Від проблеми до рішення: FormSpace та ШІ

Весь цей досвід, цей «біль» від неефективної взаємодії з розробниками, привів мене до глибокого розуміння важливості структурованого мислення та візуалізації. Коли у 61 рік я вирішив самостійно розробляти FormSpace, я вже знав, що мій інструмент повинен допомагати користувачеві самому стати своїм «програмістом» у питаннях планування ділянки. Тобто, максимально чітко та наочно висловити свій задум без необхідності «перекладати» його для когось іншого. Я почав кодити за допомогою ШІ, і це стало справжнім проривом. Тепер я можу безпосередньо «пояснювати» свої ідеї алгоритмам, не проходячи через складний процес інтерпретації. Це дозволило мені, людині без спеціальної IT-освіти, створити продукт, якого мені так бракувало у моїй багаторічній практиці ландшафтного дизайну в компанії «Дім і Сад».

Як я планую у FormSpace

Мій досвід з програмістами навчив мене, наскільки важливо вміти візуалізувати та структурувати свої ідеї. Саме цей принцип ліг в основу FormSpace. Коли я почав створювати його, я вже знав, що інструмент повинен допомогти користувачеві самому стати своїм «програмістом» у плані планування ділянки, тобто максимально чітко та наочно висловити свій задум.

У FormSpace це досягається через низку модулів. Наприклад, у модулях 1.x (План, Зони, Об'єкти) я можу покроково визначити всі свої «вимоги» до ділянки: позначити межі, розбити її на функціональні зони (відпочинку, городу, дитячого майданчика), розмістити ключові об'єкти (альтанку, ставок, доріжки). Це дозволяє мені створити детальний «технічний план» мого майбутнього саду, де кожен елемент має своє місце та призначення. Це набагато ефективніше, ніж просто описувати ідеї словами, і допомагає уникнути багатьох помилок, які виникають при нечіткій постановці завдання. Також, перш ніж переходити до складніших етапів, я завжди звертаю увагу на логіку зонування, щоб усі елементи ділянки були пов'язані між собою функціонально та естетично. Детальніше про те, як вибрати стиль, який гармоніюватиме з усіма зонами, можна прочитати у статті Як вибрати стиль ландшафтного дизайну.

Потім, модуль 2.1 «ШІ-концепція» дозволяє мені, виходячи з цих структурованих даних, генерувати ідеї та концепції. Це схоже на те, якби я пояснив свої вимоги дуже розумному дизайнеру, який одразу запропонував би кілька варіантів. А модуль 3.1 «Дизайн по фото» дає можливість «накласти» ці концепції на реальне фото ділянки, миттєво візуалізуючи результат. Цей підхід мінімізує ризики непорозумінь, які виникали у мене в минулому при роботі із зовнішніми виконавцями, і дозволяє мені швидко та точно втілювати свої задуми, навіть якщо йдеться про планування невеликої ділянки, де кожен квадратний метр на рахунку. Про нюанси планування таких просторів можна дізнатися у нашій статті Особливості планування малої ділянки.

Поширені запитання

Чи можна обійтися без чіткого технічного завдання, якщо програміст дуже досвідчений?

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

Як бути, якщо вимоги постійно змінюються у процесі роботи?

Це природний процес, але ним потрібно керувати. Важливо домовитися з командою про процедуру внесення змін. Наприклад, можна розбити проєкт на невеликі етапи (спринти), після кожного з яких відбувається узгодження та фіксація нових вимог для наступного етапу. Це дозволяє контролювати процес та уникати хаосу.

Що робити, якщо я не розбираюся в технічних деталях, але мені потрібен складний продукт?

У такому випадку вам може допомогти бізнес-аналітик або менеджер проєкту, який виступить посередником між вами та технічною командою. Його завдання — перекласти ваші бізнес-вимоги на технічну мову і навпаки. Також корисно вивчити основи розробки, щоб хоча б на базовому рівні розуміти можливості та обмеження технологій.

Чи можна навчитися ставити завдання програмістам, не маючи технічної освіти?

Безумовно. Мій досвід це підтверджує. Головне — розвивати системне мислення, вчитися деталізувати свої ідеї, описувати користувацькі сценарії та візуалізувати бажаний результат. Чим чіткіше ви зможете уявити та описати, як має працювати система, тим простіше буде донести це до будь-якого виконавця, будь то людина чи ШІ.

Як FormSpace допомагає уникнути проблем з постановкою завдань?

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

Мій шлях продовжується

Досвід роботи з програмістами навчив мене цінувати ясність та системність. Сьогодні, створюючи FormSpace, я використовую всі ці уроки. Я будую інструмент, який дозволяє кожному втілити свої ідеї в життя, минаючи бар'єри комунікації та технічних складнощів. Це шлях, який доступний не тільки «айтішникам», а й усім, хто готовий вчитися та застосовувати структурований підхід до своїх завдань. Спробуйте самі, як це працює, і побачите, як ваші ідеї набудуть форми з FormSpace.

Дата публікації:

Автор

Володимир Виборний

Володимир Виборний

Ландшафтний дизайнер, засновник https://formspace.design/

Пише про ландшафтний дизайн, бізнес, використання сучасних інструментів комп’ютерного проєктування ландшафтів, зокрема про ШІ.

Спробуйте на своїй ділянці

Створіть проєкт і намалюйте план ділянки — безкоштовно в браузері.

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

Почати безкоштовно