SDD — це ренесанс чи кінець бізнес-аналізу? Або як специфікація може стати виконуваним кодом

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Я — Олександр Москалюк, директор з залучення та членства IIBA Ukraine. Я кілька тижнів тому почав активно використовувати Claude Code, і цей досвід примусив мене повірити в силу ШІ-агентів та SDD-підходу.

Коли аналітики чують Specification-Driven Development або SDD, то перше реакція: «А що, буває інакше?». Адже вся робота бізнес-аналітика — це підготовка вимог, на основі яких має відбуватись розробка продукту. Тобто фактично Specification-Driven Development.

Але виявляється в світі є дуже багато команд розробки, які до цього часу живуть без бізнес-аналітиків чи інженерів з вимог, і спокійно собі щось розробляють. А з появою «вайб-кодінгу» почали з’являтись думки, що і самі розробники будуть зайві!

На щастя для багатьох аналітиків, розробників та інших учасників ІТ-команд вайб «вайб-кодінгу» швидко проходить. Але після того, як вайб розвіюється, стає зрозуміло, що зміни в роботі ІТ команд таки відбулись. SDLC залишився і стає ще більш потрібним, а ШІ-агенти стають повноправними членами команди. Саме за допомогою ШІ-агентів з’явилась можливість автоматичної трансформації вимог в код без втручання розробників. Тобто аналітик пише вимоги, а ШІ-агент конвертує його в програмний код, деплоїть на дев, тестує та релізить на прод. Такий процес і називають Specification-Driven Development.

Зараз вже стає буденністю, коли команда з трьох людей — бізнес-аналітик, ШІ-інженер і продакт — за шість тижнів мігрує 3 500 тест-файлів. Раніше, за оцінками тієї ж команди, це зайняло б півтора року. Airbnb зробила це не в уявному майбутньому, а вже зараз. Google звітує, що 80% змін у коді при певних міграціях вже генерується ШІ.

Ще кілька тижнів тому я скептично ставився до цієї ідеї, поки не спробував попрацювати з Claude Code. Те що у мене получилось за кілька днів повністю змінило моє відношення до SDD, і дана стаття є результатом тих змін.

Звідки взявся SDD і чому саме зараз

Specification-Driven Development — не нова концепція. Першу академічну згадку відносять до 2004 року, де SDD описується як синтез Test-Driven Development та Design-by-Contract. Двадцять років ця ідея існувала десь на периферії методологічних дискусій, поки в 2025-му не відбулося щось важливе: ШІ-агенти навчилися читати специфікації й перетворювати їх безпосередньо в робочий код.

Amazon випустив Kiro. GitHub — Spec Kit. З’явилися Tessl та інші інструменти. Раптом стара ідея про «специфікацію як єдине джерело істини» набула цілком практичного сенсу. Не тому що методологи наполягли, а тому що інструменти дозріли.

Проблема вайб-кодингу, яку не прийнято визнавати вголос

Andrej Karpathy, один із засновників OpenAI, у лютому 2025 року описав «vibe coding» — підхід, при якому розробник просто спілкується з ШІ природною мовою, не занурюючись у деталі реалізації. Звучить чудово. На практиці виявилося, що якщо попросити ШІ «впровадити дозволи користувача» без детальної специфікації, агент може згенерувати технічно коректний, але бізнесово неправильний код RBAC — без гранульованих дозволів, без тимчасового доступу.

Вайб-кодинг чудово працює для прототипів, лендінгів і MVP. Але в корпоративній розробці, де є складна бізнес-логіка, ролі, стани об’єктів і регуляторні вимоги — він перетворює ШІ з «сеньйора» в «джуна, який впевнено пише не те». SDD вирішує цю проблему радикально: специфікація стає не документацією після факту, а «виконуваним суперпромптом», який веде агента від початку до кінця.

Тріада SDD: яка роль BA

SDD можна розкласти на три складові:

  1. Бізнес-вимоги та вимоги користувачів — часто оформляються у вигляді BRD
  2. Системні вимоги — часто оформляються у вигляді SRS
  3. Тести — часто оформляються як тести :)

Нічого не нагадує? Якщо додати транзитні вимоги, то отримаємо класичну класифікацію вимог з BABOK від IIBA. Але саме цікаве заховане в деталях, тому давайте розглянемо кожну складову окремо.

BRD (Business Requirements Document) — це соціальний контракт з бізнесом. Тут немає назв таблиць і технічних деталей, але є залізна логіка: як рухаються гроші, документи, процеси. Сценарії у форматі BDD (Given-When-Then), матриця ролей, UML Activity Diagrams або BPMN. Саме цей рівень — традиційна зона відповідальності BA.
Саме в BRD фіксуються вимоги бізнесу та більшість користувацьких вимог в форматі, який простіше погодити з бізнес-замовниками. Також важливо не забути включити в BRD не-технічні транзитні вимоги, пов’язані з навчанням користувачів, зміною процесів та нормативних документів.

SRS (Software Requirements Specification) — це технічний контракт з командою розробки, сформований на основі бізнес-вимог та вимог користувачів з BRD. Це набір функціональних та нефункціональних вимог, оформлених у вигляді ERD, State-Machine, Data Dictionary, TDD-сценаріїв. Якщо BRD каже «що», SRS каже «як реалізувати в конкретній системі, не зламавши ядро». Саме SRS буде основою для розробки коду ШІ-агентом. В SRS можна, і навіть потрібно, включати технічні транзитні вимоги, такі як оновлення користувацької документації, CI/CD процедури, підготовку та обробку даних як до, так і після релізу.

Тести — автоматизована валідація технічного контракту або автоматизовані тести, які виконує ШІ-агент щоб перевірити правильність виконання вимог в BRD та SRS. Якщо тест проходить, але не відповідає SDD — це дефект, навіть якщо код «працює».

Тести можуть бути як приймальними та функціональними, так і регресними та інтерфейсними. Якщо аналітик та його ШІ-агент підготував разом з BRD та SRS тестові набори даних, то ШІ тест-агент може автоматично протестувати весь розроблений функціонал та повернути його на доопрацювання ШІ дев-агенту.

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

Ключова відмінність від того, що ми звикли робити: в SDD специфікація — це не просто опис, це авторитарний контракт. Код є похідним від неї. Навіть якщо код не відповідає SDD — це баг.

Три варіанти SDD: вибирайте свій

В документації описують три варіанти реалізації SDD.

Spec-First (спочатку документація, потім код). BA разом з ШІ-інструментом (Gem-бот, Kiro, Copilot) опитує стейкхолдерів, формує BRD, SRS, прототипи та дизайни. ШІ-агент-розробник отримує не розмиті user story, а структурований документ для генерації коду. Особливістю такого підходу є те, що в процесі роботи між специфікацією та кодом можуть формуватись розбіжності через оновлення коду під-час тестування без оновлення документації. Зі свого досвіду можна сказати, що це, нажаль, стається в більшості проектів.

Spec-Anchored (Living Documentation або жива документація). Специфікація та код існують паралельно і постійно синхронізуються. Будь-яка зміна в коді також відображається і в SRS (BRD не повинна мінятись, оскільки технічна реалізація не повинна суперечити бізнес-вимогам). Це ідеальна ситуація, коли ми маємо актуальні вимоги, які повністю відповідають працюючому продукту.

Spec-as-Source (вимоги як джерело коду) — "світле«майбутнє з ШІ. Людина редагує специфікацію, а ШІ-агент автоматично генерує код, XML-views, правила безпеки. Специфікація і є вихідний код. Такий підхід нівелює потребу в синхронізації документації та коду — без змін документації зміни в коді не відбуваються. Виглядає як мрія будь-якого аналітика.

Що змінюється для BA?

З тексту вище можна зробити важливий висновок: для SDD якість вимог стає критично важливою, оскільки втрачається можливість коригування помилок в вимогах за рахунок зв’язків аналітик-розробник-тестувальник. Тобто в процесі роботи аналітик може щось додатково пояснити розробнику, тестувальник щось знайде і вони швидко поправлять це з розробником. У випадку SDD це не получиться: які вимоги ШІ-агент отримає на вході, такі результати ви побачите на екрані (і добре, якщо тільки на екрані).

Тому з переходом до SDD зростає як важливість ролі аналітика, так і очікування до якості вимог, які розробляє аналітик. Робота аналітика отримує більше цінності для замовників, ніж раніше: всі техніки, знання та уміння аналітика направлені саме на виявлення потреб клієнта та перетворення їх в продукт за допомогою вимог. А замовники починають очікувати, що з погоджених вимог можна швидко автоматично згенерувати готовий продукт.

ШІ в цьому процесі може допомогти з технічними задачами: зробити транскрипт зустрічі з замовником, підготувати нотатки, BRD та SRS, намалює діаграми, прототипи чи дизайни, підготує тести та документацію для користувачів. Що ШІ не може зробити — це підтвердити, що все це саме те, що потрібно замовнику. Саме тут і потрібен аналітик: вичитати та перечитати все, що нагенерував ШІ, відповісти на дуже багато уточнюючих запитань, попросити перегенерувати все по кілька разів, поки не отримаєш потрібний результат. І все це з максимальною увагою, оскільки пропущена дрібниця може вирости в великий і нікому не потрібний шматок функціоналу. А потім показати все це бізнес-замовникам і повторити попередній процес з їх правками.

Трохи новин з ІТ-полів:

McKinsey описує «one-pizza pods» — команди з 3-5 людей, де інженери оркеструють ШІ-агентів замість того, щоб писати кожен рядок коду вручну. Один з кейсів, про який говорять відкрито: два фахівці — BA і ШІ-інженер — можуть замінити те, що раніше потребувало значно більшої команди. BA відповідає за функціональні вимоги і специфікації. ШІ-інженер валідує, виконує, тестує і вдосконалює.

Thoughtworks у своєму огляді SDD зазначає принципову вимогу до специфікацій: вони мають використовувати «domain-oriented ubiquitous language» для опису бізнес-намірів, а не технічних деталей реалізації.

Обидві цитати повністю підтверджують зміну ролі бізнес-аналізу при використанні SDD, а разом з тим і збільшення навантаження на аналітиків. З іншого боку SDD дає можливість змінити процес взаємодії з бізнес-замовниками. За умови використанням добре налаштованих інструментів вже на зустрічі з замовником можна згенерувати діаграми, прототипи, BRD та спробувати погодити їх. Для довгих проектів або для продукту це повністю реально, оскільки там вимоги відносно стандартні і під них можна налаштувати всі потрібні інструменти. Для розробки нових продуктів це буде складніше, але при відповідній спеціалізації можливо.

З чого почати, якщо ви вирішили спробувати SDD?

Якщо ви BA і хочете бути релевантними в SDD-світі, ось конкретний список:

Освоїти Given-When-Then на рівні рефлексу. Специфікації мають мати чітку структуру зі спільним стилем визначення сценаріїв через Given/When/Then — це напряму впливає на якість згенерованого коду і допомагає скорочувати витрати токенів. Це вже не «один з форматів user story», це lingua franca SDD.

Навчитися читати ERD, state-machine та інші діаграми Не будувати з нуля — читати і валідувати те, що запропонував ШІ або архітектор. Розуміти, чи відображає схема даних реальну бізнес-логіку.

Зрозуміти Negative Scope і Constraints. Найчастіша причина провалу SDD — неповна специфікація. Нечіткі промпти призводять до нечіткого коду, що акумулює технічний борг. BA, який навчився формулювати «що система НЕ робить» так само чітко, як «що робить» — безцінний.

Попрактикувати роботу з ШІ-інструментами як «аналітиком-інтерв’юером». GitHub Spec Kit, Kiro, Claude — всі вони реалізують поетапний робочий процес: Specify → Plan → Tasks → Code. Тепер аналітикам потрібно уважно слухати не тільки замовника, але і відповідати на питання ШІ та перевіряти чи правильно він зрозумів відповідь. В SDD ви не заповнюєте шаблон, ви керуєте якістю результатів роботи ШІ і додаєте те, що ШІ не може отримати сам: контекст, підтекст, пріоритети.

SDD — це ренесанс

Назва цієї статті обіцяла дати відповідь: ренесанс чи кінець? Моя відповідь — ренесанс. Але не безумовний і не автоматичний.

Ренесанс для тих BA, хто зрозуміє просту річ: цінність ніколи не була в тому, щоб заповнювати шаблони. Цінність формується в здатності перетворювати неструктурований бізнес-хаос на структуровану, несуперечливу, повну специфікацію. Раніше ця специфікація потрапляла в стіл розробника і тлумачилася довільно. Тепер вона потрапляє в ШІ-агент і виконується буквально.

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

ШІ може писати, малювати та програмувати, але розуміти замовника та думати — ні. Думати за нього — ваша робота, і вона нікуди не зникає. SDD звільняє BA від рутини (малювання прототипів вручну ) і повертає до першочергової цінності — мислення та розуміння замовника. Це і є справжній ренесанс професії.

P.S. Перефразовуючи класика, «жити аналітикам треба інтерєсно, читати статті та дресірувать любімого ШІ-агента».

Джерела
  1. Airbnb Engineering Blog — Accelerating Large-Scale Test Migration with LLMs
  2. DOU.ua — Протилежність вайб-кодингу: SDD як спосіб імплементовувати бізнес-вимоги з AI (В’ячеслав Колдовський, SoftServe)
  3. Amazon Kiro — Kiro and the future of AI spec-driven software development
  4. GitHub — Spec Kit: Spec-driven development
  5. Thoughtworks — Spec-driven development: Unpacking one of 2025’s key new AI-assisted engineering practices
  6. McKinsey — The AI revolution in software development
  7. McKinsey — Unlocking the value of AI in software development
  8. Hypergen — The End of Agile? Introducing Spec Driven Development
  9. SoftwareSeni — Spec-Driven Development in 2025: The Complete Guide
  10. Agile Specification-Driven Development

👍ПодобаєтьсяСподобалось14
До обраногоВ обраному6
LinkedIn
Ctrl + Enter
Ctrl + Enter

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

Питання: як ти бачиш баланс між жорсткістю специфікації і гнучкістю продукту, коли бізнес вимоги часто змінюються вже після старту генерації коду ШІ-агентом?

Генерація коду ШІ займає години, тому ітеративний підхід дозволяє швидко отримувати зворотній зв’язок і вносити зміни у вимоги, на основі яких ШІ буде вносити зміни в продукт. І так поки не отримаємо ідеальний продукт :)

SDD вже зходить з перших шпальт.
Як я десь півроку тому й писав на лінкеді:
Якщо на проекті ви зробите все щоб SDD запрацював, то вам і ШІ не потрібен.

Коротенько, тому що зробити повну, деталізовану спеку — це пракично і написати код.

І дешевше налаштувати ШІ середовище під аджайл, і перегенеровувати код, аніж розробляти такі спеки.
Та й більшість БА ніколи таких спек і не розробляли, тобто немає людей під SDD.

Консалтери ж з McKinsey, Thoughtworks — в полях давно не живуть.
Консалтери давно пишуть ідеалістично-академічні штудії, які звісно корисні, бо надають орієнтири.

і повертає до першочергової цінності — мислення та розуміння замовника

І знову ж такі, я вже чув про кейси, коли ШІ прямо під час мітингу з замовником аналізує розмову, і формалізує вимоги, надає питання, тобто робить частину роботи БА.

З чого почати, якщо ви вирішили спробувати SDD?

А це да, слушна порада.
Поки не попробуєте самі, не подивитесь — не зрозумієте чому Waterfall відійшв у минуле. І тільки в специфічних проектах, умовах є корисним. а SDD це він і є. Оновлений Waterfall.

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

Взагалі то промптами код не пишуть вже. Нє, хтось може затримався ще на тій стадії звісно :)

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

Якби то ж то було достатньо опису — бізнес-логіки.

Взагалі то промптами код не пишуть вже.

— вірно — зараз через /plan: Analyze → Plan → Create → Scale & Repeat, або знову таки через /plan, але з ще більшою деталізацією, тобто через SDD: Specify → Plan → Tasks → Code
Одним словом як не крути — через специфікацію)
І плюс через синхронізацію документації/специфікацій після мержу.

зараз через /plan: Analyze → Plan → Create → Scale & Repeat

це не зараз. це так завжди і було.
і джунів яких менторив, «бив по руках» коли вони зразу починали княпати код.
Ти блін — вже подумав ЩО будеш писати?
Подумав, вибрав — з ЧОГО почати? Що головне, які рішення треба прийняти в першу чергу, а які можна відкласти, бо вони й не критичні, а може взагалі не треба буде їх приймати.
Вибрав спосіб — ЯК писати, щоб швидше побачити — ЩО в тебе виходить, а не після годин — «ой, млять, все треба переробляти»

Одним словом як не крути — через специфікацію)

Одним словом — думати треба.

але ок. До ШІ — який у вас досвід написання специфікацій?
Я от писав, вмію, тому й знаю, що цей спосіб може, навіщо потрібний.
А що — не може.

І плюс через синхронізацію документації/специфікацій після мержу.

І другє питання:
а для кого це — робиться?

Я от тому й коротенько написав: «SDD вже зходить з перших шпальт.»
Тому що вже не тільки я, а бачив коменти, уривки з доповідей, що, «диво»
А навіть коли ШІ те все робить, все одно виникає specification gap, і все одно — код стає джерелом істини.

Звісно, ця срібна куля ще масово вважається за таку.

це не зараз. це так завжди і було.

— ми ж тут говоримо в контексті AI coding agents, не про базові SDLC практики, вірно? — тому раніше такого не було — був prompt engineering, який переріс в context engineering, який переріс/переростає в SDD

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

ось тут головна зміна — раніше ви писали специфікації орієнтовані на людей — для інженерів які будуть все це імплементовувати, специфікації жили в умовній confluence wiki, з діаграмами в вигляді images, etc. А зараз специфікації скажімо так подвійного призначення — хоча все більше і більше орієнтовані на AI агентів, в markdown файлах, без діаграм в вигляді images, а текстові, чи mermaid, і живуть вони ближче до коду.

А навіть коли ШІ те все робить, все одно виникає specification gap, і все одно — код стає джерелом істини.

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

ми ж тут говоримо в контексті AI coding agents, не про базові SDLC практики, вірно?

не вірно.
У автівок 4 колеса. Дуже давно.
От ми про що — я говорю :)

був prompt engineering, який переріс в context engineering, який переріс/переростає в SDD

ну так, був один редактор. потім одні IDE, потім інші.
і тд

а колес так і залишилось — 4.
а тому проблеми які треба вирішувати — ті ж самі.
а те що маркетинг вигадує нові слова, ну да.

ось тут головна зміна — раніше ви писали специфікації орієнтовані на людей — для інженерів

це да. ШІ набагато тупіший, а тому й треба —

і живуть вони ближче до коду.

Але моя робота від того не змінилась. Така сама.
Змістилися акценти в неї, так.
Но вони весь час змінювались.
у 0их я не робив вже того що робив у 90их.
а у 10тих — того що робив у 0их.

і лише специфікація джерело істини, так було завжди, і так і залишиться

Не було ніколи, і не буде.

Бо на проді працює — код а не специфікація.
Код — а не тести, розмови на мітингах, і тд.

З вашого твердження, що код джерело істини, ніякої помилки в цьому немає

Моє твердження старе:

Программа буде робити те і так, як написано — в коді.
А не то що бажалося, жадалося, прописано у спеках.

І давнє тому
А тому що код — і є остаточна версія специфікації.
Бо сам код — це не программа.
Це специфікація програми, повна і остаточна.
По якій транслятор і зробить — працюючу програму.

а SDD це він і є. Оновлений Waterfall.

— ні — ви можете написати SDD під новий конкретний функціонал — тобто під якусь частину проекту

так у Waterfall так і робилось.

то якісь бовдури казали що описати треба — весь проект.

то якісь бовдури казали що описати треба — весь проект.

— ні — в цьому і відмінність Waterfall, вся специфікація проекту повинна бути описана від початку і до кінця, можливість вносити правки по ходу хоч і допускається, але дуже не бажана. І так Waterfall все ще актуальний, особливо поза межами IT, для фінального budget approval, sign-off, наприклад. Прикладом може бути будівництво будинку/офісного приміщення/заводу. Інакше то вже не Waterfall — а Agile чи інші SDLC моделі.

вся специфікація проекту повинна бути описана від початку і до кінця

це суцільна неправда.

але за роки дискусій с аджайл євангалістами вже надоїло пояснювати про якого straw man вони постійно жахіття розказують.

плюсую
сама складна частина у агентному кодингу, який у найближчій перспективні тільки дорожчатиме — це знати, що просити агента написати — яка задача? які вимоги? цінність БА тут не просто не падає, а посилюється; інакше агенти будуть генерувати AI slop, а переробка чи зміни будуть з ще більшим AI slop, а значить дорожчими в токенах (= доларах)

біда в іншому — БА на проєкті (принаймні клієнтському) — це часто додана вартість (нажаль, сувора реальність) до розробників; а розробників скорочують і будуть скорочувати умовно до 5-10 раз; тому тут будуть шукати BA/Solution Architect який у ролі оркестратора або ж безпосередньо архітектора доведеться замість 1-2 проєктів вести — 4-10 за допомогою розумної оркестрації ШІ-агентів

Та справа у тому, що ЛЛМці треба формулювати не лише бізнес-вимоги, а ще і технічні, що БА не вміє робити. Для багатьох «оптимізаторів штату» це виглядає, як оверкілл і точка оптимізації. Зазвичай навчити девелопера отримувати від клієнта бізнес-вимоги простіше (та багато хто це і так вже робить), ніж навчити БА програмувати.

згоден — зараз більш актуальні product-minded software engineers — недавно на ДОУ це обговорювалось тут

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

З мого досвіду ШІ якраз потребує чіткі бізнес-вимоги та аналізу запропонованої архітектури рішення. А технічну частину від дуже добре робить (як мінімум в продуктах, де архітектура вже визначена)

аналізу запропонованої архітектури рішення

Я використовую спек-дрівен ЛЛМ розробку, в цілому достатньо опису бізнес вимог, але в деяких моментах потрібно було коригувати запропоновану технічну архітектуру, в першу чергу схему даних. Також інколи приходилось розписувати структуру кода, щоб уникати дублювання критичної бізнес-логіки.

Маю досить великі сумніви, що з ЛЛМ можна розробити хоч трохи нестандартний продукт, описуючи лише бізнес-вимоги.

То пропоную якось поекспериментувати. Давайте сконтактуємо ближче до кінця травня і подивимось, що получиться зробити. Буде досить цікавий експеримент.

Дуже актуальна стаття в час трансформації! Дякую.

Підписатись на коментарі