# Прощавай, Vibe Coding | Чому SDD стає новим стандартом розробки з AI

https://www.youtube.com/watch?v=dve73FMlfdg
Translation: en

[00:00] Вайп-кодити - це весело і прикольно, але
  Vibe-coding is fun and cool, but

[00:04] веселощі закінчуються там, де
  the fun ends where

[00:06] починається реальний продакшн.
  real production begins.

[00:09] Це канал FWDS.
  This is the FWDS channel.

[00:11] Я вітчийдушний програміст.
  I am a veteran programmer.

[00:11] І сьогодні ми поговоримо про те, як нам переходити з такого фістайлвайкодингу до більш професійного вайп-кодингу.
  And today we will talk about how to transition from such a freestyle vibe-coding to more professional vibe-coding.

[00:21] Ну, не будемо називати це вже вайб-кодінг, це вже керування агентами штучного інтелекту.
  Well, let's not call it vibe-coding anymore; it's already managing artificial intelligence agents.

[00:28] Чи придумайте самі назву, як це має правильно і красиво і офіційно називатись.
  Or come up with the name yourself, how it should be correctly, beautifully, and officially called.

[00:35] Які в нас є проблеми з вайп-кодингом?
  What problems do we have with vibe-coding?

[00:38] Коли ми формулюємо задачу, ми дуже багато чого не проговорюємо, тому що нам здається, що це і так зрозуміло, або ми чогось не там забуваємо сказати.
  When we formulate a task, we do not articulate a lot of things, because it seems to us that it is already obvious, or we forget to say something somewhere.

[00:49] Є таке навіть когнітивне викривлення, яке називається прокляття знань, що якщо ви щось знаєте, вам здається, що це і так відомо, і ми зазвичай просто це не кажемо.
  There is even a cognitive distortion called the curse of knowledge, that if you know something, it seems to you that it is already known, and we usually just don't say it.

[00:58] І в принципі це одна з проблем вайпкодінгу.
  And in principle, this is one of the problems of vibe-coding.

[01:01] те, що коли ми ставимо завдання, ми періодично щось забуваємо.
  the fact that when we set tasks, we periodically forget something.

[01:05] При вайп-кодингу ми пропускаємо дуже важливу частину побудови продукту, який називається, ну, не називається, який я би назвав продумування чи такий процес обдумування.
  In vibe coding, we skip a very important part of building a product, which is called, well, not called, which I would call thinking through or such a process of deliberation.

[01:20] того, як ми будемо будувати цей проект.
  of how we will build this project.

[01:22] Коли ми пишемо вимогу штучному інтелекту і чогось там не вистачає, він зазвичай додумає те, що чого там не було і може зробити щось зайве.
  When we write a requirement to artificial intelligence and something is missing, it usually adds what was not there and may do something unnecessary.

[01:31] І в принципі ми це можемо якось пропустити, що теж, в принципі, не дуже прикольно, бо у агента чи у штучного інтелекта немає такого критерію, як готовність.
  And in principle, we can somehow miss this, which is also, in principle, not very cool, because an agent or artificial intelligence does not have such a criterion as readiness.

[01:43] має в ідеалі має бути формально прописане технічне завдання з тим, що що ми що ми вважаємо, коли задача закінчена.
  ideally there should be a formally written technical specification with what we consider when the task is finished.

[01:53] Мають бути доволі серйозні вимоги до цього процесу, а веб-кодингу такого такого просто немає.
  There should be quite serious requirements for this process, and vibe coding simply does not have such.

[01:58] Ну і останню проблему, яку
  Well, and the last problem, which

[02:01] Хочу назвати, це те, що коли ми вайп-кодимо щось, ми потім не можемо згадати, чому саме це було зроблено.
  I want to say that when we wipe-code something, we later cannot remember why exactly it was done.

[02:08] Адже весь контекст залишається у нашому чаті, діалозі зі штучним інтелектом.
  After all, the entire context remains in our chat, the dialogue with artificial intelligence.

[02:13] І потім через якийсь час нам дуже важко згадати, а чому саме ми зробили саме так, а не по-інакшому.
  And then after some time it is very difficult for us to remember why exactly we did it this way and not otherwise.

[02:22] Якщо ви щось колись вайпкодили якісь великі проекти, тобто не просто там такий маленький проектик на дві сторіночки, а щось доволі велике, то потім починаються такі проблеми, як дуже багато пов'язаних між собою всяких там, не знаю, там модулів чи фіч, які і ця вся система починає розсипатися і ви просто не розумієте, а чого це розсипається, що мені з цим робити, як це зібрати до купи?
  If you have ever wipe-coded some large projects, that is, not just a small little project of two pages, but something quite large, then later such problems begin as a lot of interconnected various things, I don't know, modules or features, and this whole system starts to fall apart and you simply do not understand why it is falling apart, what to do with it, how to put it all together?

[02:51] І ви потім не можете зрозуміти, а чому це було зроблено саме таким чином.
  And then you cannot understand why it was done exactly this way.

[02:55] Адже, ну, колись це було навебкодено, штучний інтелект задавав якісь питання, ви давали йому якісь відповіді на ці якісь.
  After all, well, once it was web-coded, artificial intelligence asked some questions, you gave it some answers to these some.

[03:02] Питання, він робив якісь свої висновки, базуючись на ваших неповних або там частково повних відповідях.
  The question is, he made some of his own conclusions based on your incomplete or partially complete answers.

[03:10] І в результаті ми виводимо наш продукт в хаос, який, по-перше, ніде не описаний нормально, а по-друге, в принципі, і не продуманий нормально.
  And as a result, we bring our product into chaos, which, firstly, is not properly described anywhere, and secondly, is not even properly thought out in principle.

[03:23] Сьогодні ми розглянемо таку штуку, яка нам допоможе цей всей упорядкувати цей всей хаос, цю всю ентропію.
  Today we will look at a thing that will help us organize all this chaos, all this entropy.

[03:30] І називати це і називатиметься це SDD.
  And it is called and will be called SDD.

[03:33] І це не про диски, а це така штука, як Spec Driven Development.
  And it's not about disks, but it's a thing like Spec Driven Development.

[03:41] Як це перекласти українською?
  How to translate this into Ukrainian?

[03:42] Короче, розробка, яка будується на спеках, тобто на завданнях.
  In short, development that is built on specs, that is, on tasks.

[03:48] І я буду сьогодні використовувати, для прикладу, тому що є дуже багато варіантів.
  And I will use today, for example, because there are many options.

[03:55] Я хочу показати вам на прикладі такого такого такого фреймворку для Spec Driven Development, який називається Spec Kit.
  I want to show you an example of such a framework for Spec Driven Development, which is called Spec Kit.

[04:03] Це фреймворк від GitHub, який відповідно від Microsoft.
  This is a framework from GitHub, which accordingly from Microsoft.

[04:10] А Microsoft в принципі вважається, що він непогано розуміють щось ці хлопці на і дівчата на програмуванні, що, звісно, не скажеш, коли дивишся на їхні продукти, але то вже діло друге.
  And Microsoft in principle is considered that these guys and girls understand something about programming pretty well, which, of course, you wouldn't say when looking at their products, but that's another matter.

[04:23] Давайте спробуємо, як цей спекit буде нам допомагати створювати продукт.
  Let's try how this specit will help us create a product.

[04:29] Почнемо з гітрепозиторію цього спеккіта.
  Let's start with the git repository of this spec kit.

[04:32] Ну, бачите, 100 тисяч зірочок.
  Well, you see, 100 thousand stars.

[04:38] Це щось про щось та й говорить, правильно?
  This says something about something, right?

[04:41] І по-перше, нам треба його встановити.
  And first of all, we need to install it.

[04:42] Тут бачить щось він там пише якусь штучку дрючку.
  Here he sees something, he writes some little thingamajig.

[04:47] Ми, в принципі, так і зробимо, як він просить.
  We, in principle, will do just as he asks.

[04:50] Хто ми такі, щоби не просто а replaлей візле.
  Who are we to not just a replace wizard?

[04:57] Бачите, тут треба було підставляти XYZ з релізу.
  You see, here we had to substitute XYZ from the release.

[05:01] Я такий лінивий, бачите, навіть не подивився.
  I'm so lazy, you see, I didn't even look.

[05:03] Ну, хто так робить?
  Well, who does that?

[05:06] Прямо звідси.
  Right from here.

[05:06] От бачите, як зручно.
  See how convenient it is.

[05:08] Можна прямо тут взяти цей кодик і запустити.
  You can take this code right here and run it.

[05:10] Отак.
  Like this.

[05:10] От.
  So.

[05:13] Далі, що воно нас хоче?
  Next, what does it want from us?

[05:15] Далі хоче, щоб ми зробили init my project.
  Next, it wants us to do init my project.

[05:15] Що там?
  What's there?

[05:15] Specify init.
  Specify init.

[05:17] Ну, давай.
  Well, let's go.

[05:19] Це ми встановили таку команду, яка називається Spify.
  We installed a command called Spify.

[05:22] Ладно, пішли дивитися в клод, як що нам це допоможе.
  Okay, let's go look at Claude to see if this helps us.

[05:25] Ну, бачите, я тут запустив встановлення, він щось там мені питає, яку буду використовувати.
  Well, you see, I ran the installation here, it asks me something, which one I will use.

[05:31] Буду використовувати clД код.
  I will use clD code.

[05:32] Щось встановив.
  Installed something.

[05:32] І що?
  And what?

[05:32] Cl.
  Cl.

[05:36] Отже, після створення проекту через команд, ну, через командний рядок я просто зайшов у цю папочку, які він створив, і там запускаємо прямо клод.
  So, after creating the project via command, well, via the command line, I just went into this folder that it created, and there we run Claude directly.

[05:43] Clд.
  Cld.

[05:46] І що ми тут бачимо?
  And what do we see here?

[05:48] Давайте, яка там наша перша команда?
  Let's see, what is our first command there?

[05:48] Create spec.
  Create spec.

[05:50] Ми створюємо першу спеку, яка називається Spectit specify.
  We create the first spec, which is called Spectit specify.

[05:54] Давайте ми тут будемо і писати, що я хочу створити такий е-е to, який називається, я назвав його, чи він називається Z too, в якому буде три
  Let's write here that I want to create such an e-e to, which is called, I named it, or it is called Z too, which will have three

[06:06] Таких списка: що робити сьогодні, що робити протягом тижня і що зробити взагалі.
  Such a list: what to do today, what to do during the week, and what to do in general.

[06:13] І задача наша тримати такий туду в якомога коротшому стані.
  And our task is to keep such a to-do list as short as possible.

[06:15] Тобто моя ідея, що чим менше список, щоб робити, тим краще.
  That is, my idea is that the smaller the list of things to do, the better.

[06:20] Якщо щось треба буде критичне, воно обов'язково ще з'явиться у списку і знову можна буде його додати.
  If something critical is needed, it will definitely appear in the list again and you can add it again.

[06:25] Не треба все тримати у беклозі.
  You don't need to keep everything in the backlog.

[06:28] Такий я хочу зробити собі тоду простий.
  I want to make myself a simple to-do list like this.

[06:30] Мені треба, я так пишу, мені треба зробити веб-застосунок для Z to.
  I need, I write like this, I need to make a web application for Z to.

[06:39] Три списки на сьогодні, на тиждень і на потім.
  Three lists: for today, for the week, and for later.

[06:44] Це списки задач і менеджмент.
  These are task lists and management.

[06:47] Менеджмент задач.
  Task management.

[06:50] Отаку я задачу написав.
  I wrote such a task.

[06:52] Якби ми просто зараз би веб-кодили би, він нам зараз би нагородив такий город всього, чого він собі там би придумав би.
  If we were just web-coding right now, he would reward us with a whole bunch of everything he would come up with there.

[06:59] А ми подивимось, як він зробить це через таку серйозну штуку, як е-е оце от.
  And we will see how he does this through such a serious thing as uh this here.

[07:09] Спек.
  Spec.

[07:09] А хоче залогінитись.
  And he wants to log in.

[07:11] Ну окей, залогінився.
  Well okay, he logged in.

[07:13] Ось бачите, він там щось думає.
  See, he is thinking something there.

[07:16] І яка задача цього кроку?
  And what is the task of this step?

[07:16] Давайте я так приблизно опишу, що ми зараз робимо.
  Let me roughly describe what we are doing now.

[07:21] Ми зробили йому такий коротенький опис, який там на наш хлопський розум, але по-правильному, якби це робили професійні постановщики задач, як би ми їх не називали, вони мали би створити, ну, задачу, тобто опис задачі, яку ми хочемо зробити, більш детальний для того, щоб її можна було переводити далі у наступний стан розробки, який теж ще не буде кодуванням, а теж буде окремий крок.
  We gave him such a short description, which is in our common sense, but properly, if professional task setters did it, whatever we call them, they would have to create, well, a task, that is, a description of the task we want to do, more detailed so that it could be translated further into the next development stage, which also will not be coding yet, but will also be a separate step.

[07:51] У нас буде декілька кроків перед тим, як ми почнемо реально кодувати.
  We will have several steps before we start actually coding.

[07:53] І на кожному цьому кроці у нас створюється документ.
  And at each of these steps, a document is created.

[07:59] Тобто у нас буде там ціла, як це, фіча і під нею буде документ, що ми зробили і як ми це будемо робити.
  That is, we will have a whole, like, feature there, and under it there will be a document of what we did and how we will do it.

[08:06] Ось бачите, він написав е-е цей спеку і
  See, he wrote uh this spec and

[08:10] Буде робити сам перевірку якості цієї спеки.
  He will do the quality check of this spec himself.

[08:15] В принципі, ми можемо вже попередньо глянути.
  In principle, we can already take a preliminary look.

[08:19] Ось в нас, е-е, нашій папці, наша папка зтд — це коренева папка до ко нашого проекту.
  Here in our, uh, folder, our folder etc. is the root folder of our project.

[08:23] Поки що вона порожня, бо ми ще нічого не створювали, але, м, бачимо, що він вже створив папку, яка називається спек і в ній створив першу папку 001 Ztd task list, де вже є папочка, ну, файлік, який називається спек.
  For now it is empty, because we haven't created anything yet, but, um, we see that he has already created a folder called spec and in it created the first folder 001 Ztd task list, where there is already a little folder, well, a little file called spec.

[08:41] Бачите, він, хоча до нього звертався до нього і українською, він спеку пише англійською.
  You see, even though he addressed him in Ukrainian, he writes spec in English.

[08:48] Ну, це, в принципі, е-е і логічно, тому що ви зазвичай будете працювати в командах, де варто цю документацію тримати англійською мовою.
  Well, this is, in principle, uh, logical, because you will usually work in teams where it is worth keeping this documentation in English.

[08:57] Ну, давайте подивимось, що він тут пише.
  Well, let's see what he writes here.

[08:59] Він, бачите, розписав це на userсторі.
  He, you see, wrote it out as a user story.

[09:01] Все, як потреб, як, як треба розписувати в спеці, в спеках.
  Everything, as needed, as, as it should be written in the spec, in specs.

[09:09] Тобто спочатку е...
  That is, first uh...

[09:12] Створювати таски в трьох, як це, горизонтах планування, чи як це українсько обріях планування.
  Create tasks in three, as it is, planning horizons, or as it is in Ukrainian, planning horizons.

[09:20] І бачите сценарії прийняття.
  And you see the acceptance scenarios.

[09:25] Якщо АПП має створи має показувати три списки сьогодні цього тижня і пізніше,
  If the app has to create, it should show three lists: today, this week, and later,

[09:33] е-е, потім ще там щось пише, що списки мають мати команди, бла-бла-бла.
  uh, then it also says something there that the lists should have commands, blah-blah-blah.

[09:38] Ну, тобто, в принципі, по-хорошому, ви маєте цю спеку продивитись і уважно зрозуміти, що вам тут подобається, що не подобається.
  Well, that is, in principle, ideally, you should look through this spec and carefully understand what you like here and what you don't like.

[09:49] Бачите, тут пише всякі requirement system mustay, не ту.
  You see, here it writes various requirement system mustay, not that.

[09:53] Ну, просто прямо розписується, що має бути.
  Well, it just directly describes what should be.

[09:56] Е, я зараз не буду це перевіряти, але по хорошому, якщо ви би працювали з серйозним продакшеном, ви маєте цей спек пере перечитати.
  Uh, I won't check it now, but ideally, if you were working with a serious production, you should reread this spec.

[10:06] Якщо я буду перечитувати, ми будемо дивитись на це відео до поза поза наступного дня.
  If I start rereading, we will be watching this video until the day after the day after tomorrow.

[10:10] Але основна
  But the main

[10:13] Ідея в тому, що ви бачите саму спеку.
  The idea is that you see the spec itself.

[10:16] Вона, бачите, дуже серйозно розписана.
  It is, you see, very thoroughly detailed.

[10:18] І ваша задача її перевірити і впевнитись, що це те, що ви хотіли.
  And your task is to check it and make sure that it is what you wanted.

[10:23] Ну, я так на швидко дивлюся.
  Well, I am quickly looking at it.

[10:25] Ну, вродеі схоже на те, що я хотів.
  Well, it seems similar to what I wanted.

[10:27] Localization, це він якісь зробив припущення.
  Localization, he made some assumptions.

[10:32] На цьому етапі ви можете або редагувати цей цю спеку, або ні.
  At this stage, you can either edit this spec or not.

[10:38] Далі ми, якщо в нас все влаштовує, далі ми переходимо.
  Next, if everything suits us, we move on.

[10:42] Бачите, він сам.
  You see, he himself.

[10:44] Shall I move to speck plan?
  Shall I move to speck plan?

[10:48] Окей, я вам пишу.
  Okay, I am writing to you.

[10:51] Пішли speб.
  Let's go speб.

[10:53] Далі ми переходимо до наступного етапу.
  Next, we move to the next stage.

[10:58] Коли ми гарно прописали нашу спеку, далі ми переходимо до плану її реалізації.
  When we have well written our spec, we then move to the plan for its implementation.

[11:03] Що в результаті бачите, з'явиться файл, який називається план.
  As a result, you see, a file called plan will appear.

[11:05] Він поки що над ним працює, але такий файл у нас буде.
  He is still working on it, but we will have such a file.

[11:10] І в чому кайф цього всього?
  And what is the cool part of all this?

[11:13] Цього цього цього нашої,
  This this this of ours,

[11:16] Як це сказати, цієї цього підходу.
  How to say it, of this approach.

[11:19] Те, що оці всі файли, бачите, це все реальні файли, всі FD файли, де все чітко прописано.
  The fact that all these files, you see, are all real files, all FD files, where everything is clearly specified.

[11:23] Тут, бачите, написано е-е requirementси тут прописані, тут прописан типа повністю спека, тут написаний повністю план, як це буде відтворюватись.
  Here, you see, it says uh requirements are specified here, here the spec is fully written, here the full plan is written of how it will be reproduced.

[11:34] І це все ви потім потім будете декомітити, і це все буде частиною нашого коду.
  And you will then commit all this, and it will all be part of our code.

[11:41] Тобто, в принципі, окрім самого коду, у вас ще буде список завдань, які ви давали свому штучному інтелекту, задокументовано і збережено у історії вашого репозиторію, щоб ви завжди могли повернутися і у вас потім не виникало питання.
  That is, in principle, besides the code itself, you will also have a list of tasks that you gave to your artificial intelligence, documented and saved in the history of your repository, so that you can always go back and not have questions later.

[11:57] Тому що, якщо у вас потім виник виникне питання: "А чого ми зробили там е-е ну не знаю, там три списки, а не зробили там п'ять списків?"
  Because if later you have a question: 'And why did we make there uh well I don't know, three lists, and not make five lists?'

[12:04] Я би хотів сьогодні, завтра там, ой, сьогодні там на на завтра, на на тиждень і на місяць.
  I would like today, tomorrow there, oh, today there for for tomorrow, for for a week and for a month.

[12:09] Чого ми зробили не так?
  Why did we do it wrong?

[12:11] Ну того, тому що в нас, бачите, по спекум написано, що має бути три.
  Well, because, you see, according to the spec it says there should be three.

[12:16] Ну і все.
  Well, that's it.

[12:16] І тут, в принципі, все.
  And here, in principle, that's all.

[12:17] розписано.
  It is described.

[12:19] Якщо вам треба це змінити, ви просто розширюєте.
  If you need to change it, you simply expand it.

[12:21] І в принципі завжди можна буде переглянути історію, коли приймались якісь рішення, я як саме вони приймались.
  And in principle, you can always review the history of when decisions were made and how exactly they were made.

[12:29] І вже буде зрозуміло, що код будувався на основі цих рішень.
  And it will already be clear that the code was built based on these decisions.

[12:34] Давайте глянемо, що він тут щось зробив.
  Let's see what he did here.

[12:36] А він нас питає, бачите, на чому ми хочемо робити.
  And he asks us, you see, what we want to work on.

[12:38] Що там?
  What's there?

[12:40] React, ViewS.
  React, ViewS.

[12:40] Та давайте, бо я якось до цього звик.
  Well, let's go, because I'm kind of used to it.

[12:43] Браузер Local.
  Local browser.

[12:47] І давайте браузер.
  And let's go with browser.

[12:47] Спростимо собі життя.
  Let's make life easier for ourselves.

[12:49] Бачите, він навіть задає додаткові питання.
  You see, he even asks additional questions.

[12:51] В принципі, не дуже багато питань.
  In principle, not very many questions.

[12:53] Я б на його місці більше питав, але в принципі якби я робив це на реальному продакшені, я б ще перед цим запустив таку штуку, яка називається Brainstorm.
  I would ask more in his place, but in principle, if I were doing this on a real production, I would first run something called Brainstorm.

[13:02] Це трошки інший скіл від іншого.
  This is a slightly different skill from another.

[13:05] Це не не відноситься до спеку, але е-е мені дуже подобається перед тим, як я його щось роблю, зробити цей бренсторм, щоб він мені запитав більше додаткових питань.
  This does not relate to the spec, but uh, I really like to do this brainstorm before I do something, so that it asks me more additional questions.

[13:11] І я би сам краще зрозумів, що ж я хочу такі нарешті робити.
  And I would better understand what I actually want to do finally.

[13:19] На минулому відео на FWDs про це розказував.
  In the previous video on FWDs, he talked about this.

[13:22] Можете глянути там.
  You can look there.

[13:24] В принципі, я це приблизно показав.
  In principle, I roughly showed it.

[13:27] Тобто можна було би почати з брейнсторму, розписати всі деталі, а потім вже переходити до спеку.
  That is, one could start with brainstorming, write out all the details, and then move on to the spec.

[13:34] В принципі, я так десь і роблю на реальному реальному коді.
  In principle, I kind of do that on real, real code.

[13:37] Ну ось бачите, він доволі довго думав і накатав нам такий планчик, з яким можемо ознайомитись тут трошки подивитись, що тут є.
  Well, you see, he thought for quite a while and churned out a little plan for us, which we can look over here a bit and see what's in it.

[13:46] І відповідно можемо глянути і в самому коді.
  And accordingly, we can also look in the code itself.

[13:49] Тобто, бачите, він в цій папці створив доволі багато файлів.
  That is, you see, he created quite a lot of files in this folder.

[13:53] Ну, наприклад, сам план.
  Well, for example, the plan itself.

[13:53] Ви можете глянути, що у нас тут.
  You can look at what we have here.

[13:55] Він тут там розписує, яка в нас технічна контекст, що ми хочемо робити.
  He writes out there what our technical context is, what we want to do.

[13:59] TypeScript, бла-бла-бла, view.
  TypeScript, blah-blah-blah, view.

[14:03] Тобто, якщо ви потім ви скажете, що ви не хотіли view, ну, тут в спеку написано, ви самі погодились на це view і все, що тут написано, ви маєте переглянути і впевнитись, що це те, що вам по необхідно.
  That is, if you later say that you didn't want view, well, it's written in the spec, you yourself agreed to this view and everything that is written here, you have to review and make sure that this is what you need.

[14:16] Далі, бачите, окрім цього, він створив модель даних.
  Next, you see, besides this, he created a data model.

[14:19] Теж бажано переглянути, ознайомитись і
  It is also advisable to review, familiarize yourself, and

[14:21] Підтвердити, що да, подобається чи ні.
  Confirm whether yes, you like it or not.

[14:23] Ви можете потім написати ні, там я хочу, щоб назвалось там не title a name.
  You can then write no, there I want it to be called not title but name.

[14:27] Ну не знаю, якісь такі чи я хочу ще додаткові поля е-е і так далі, і так далі.
  Well, I don't know, something like that or I want additional fields uh and so on, and so on.

[14:36] Є в нас якісь контракти.
  We have some contracts.

[14:37] Тобто він вже створив якісь е-е ну контракти, тобто це такі структури даних, які будуть бігати там фронт-end backend.
  That is, he has already created some uh contracts, that is, these are data structures that will run there front-end backend.

[14:45] Тут він все прописав, тобто прописав дуже-дуже багато всього, чого навіть якийсь research зробив.
  Here he wrote everything down, that is, he wrote down very, very much, even did some research.

[14:51] Бачите, decision піа короче тут написав ее стек для тестування, повністю розписав все, як він планує це зробити, щоб ви потім не казали, що ви такого не хотіли.
  You see, decision PI basically here wrote uh the stack for testing, fully described everything, how he plans to do it, so that you don't later say that you didn't want that.

[15:03] Вам, в принципі, обов'язково бажано з цим ознайомитись, тому що відповідальність за код лежить на кому?
  You, in principle, must definitely familiarize yourself with this, because the responsibility for the code lies with whom?

[15:10] Не на штучному інтелекті, а на тому, хто буде вигрібати.
  Not on artificial intelligence, but on the one who will be cleaning up.

[15:13] Люлі.
  Luli.

[15:14] А це буде робити не штучний інтелект, а буде робити саме ви.
  And this will not be done by artificial intelligence, but will be done by you yourself.

[15:18] Так що ознайомлюєтесь з цим планом.
  So you familiarize yourself with this plan.

[15:23] Якщо вам все підходить, переходимо далі.
  If everything suits you, we move on.

[15:25] Це не останній артефакт.
  This is not the last artifact.

[15:29] Далі у нас є така штука, яка називається tasks.
  Next, we have a thing called tasks.

[15:31] Тобто ми... Я пишу Tasks.
  That is, we... I write Tasks.

[15:33] Ну, це не остання штука.
  Well, this is not the last thing.

[15:36] Це остання штука в плануванні.
  This is the last thing in planning.

[15:39] Це ми з цього всього починаємо робити власне завдання для реалізації.
  From all this, we start making the actual tasks for implementation.

[15:44] І поки він думає, я вам ще розкажу, як я налаштував на своєму це проекті.
  And while it's thinking, I'll tell you more about how I set this up on my project.

[15:50] Е-е, я не використовую цей Spect Driven Development на моєму сувному проекті, але я робив якийсь побічний проект і там налаштував цей Spect Driven Development і тестував там, як це має працювати.
  Uh, I don't use this Spec Driven Development on my strict project, but I did some side project and there I set up this Spec Driven Development and tested how it should work.

[16:01] І моя ідея була така, що в принципі я створив окремий такий скіл, якому ти пишеш завдання, а він потім вирішує по цьому завдан, чи варто робити по цьому завдан саме спеку, або це якась просто, ну, якась проста штучка, яка не потребує спеки.
  And my idea was that, in principle, I created a separate skill where you write a task, and it then decides based on this task whether it's worth making a spec for this task, or it's just some, well, some simple thing that doesn't need a spec.

[16:17] Ну, наприклад, виправлення якогось тексту чи якоїсь простої помилки.
  Well, for example, fixing some text or some simple error.

[16:22] Тобто це можливо не є саме завданням, яке має там бути.
  That is, it might not be exactly the task that should be there.

[16:27] І також я там додав, що якщо це спека,
  And also I added there that if it is heat,

[16:29] велика спека, треба запускати Brainstorm.
  great heat, you need to launch Brainstorm.

[16:33] І тоді я, в принципі, в мене завжди є один один скіл, з якого я починаю цю всю роботу.
  And then I, in principle, I always have one single skill from which I start all this work.

[16:37] Я просто пишу завдання, а потім система вирішує, чи це просто робити якийсь легенький фікс, чи робити, починати робити спеку, чи краще ще перед тим перед тим запустити якийсь брейнсторм, щоби прийняти більш виважене рішення по даному конкретному даній конкретній фічі.
  I just write the task, and then the system decides whether to just do some light fix, or to do, start doing a spec, or better yet before that run some brainstorm to make a more balanced decision on this particular feature.

[16:55] Знову ж таки, це все буде зберігатися в вашому проекті, у файлах вашого проекту.
  Again, all this will be stored in your project, in your project files.

[17:02] Відповідно, в ідеалі, як я чув такі ідеї, що в принципі е-е на наступному етапі оцей саме спек, тобто саме ця документація і буде основною частиною проекту.
  Accordingly, ideally, as I heard such ideas, that in principle uh at the next stage this very spec, that is, this very documentation will be the main part of the project.

[17:19] Тобто код можна перегне перегенерувати по цьому по цій документації.
  That is, the code can be regenerated based on this documentation.

[17:24] Тобто получається, що ця папка, ну, є такі думки, не знаю,
  That is, it turns out that this folder, well, there are such thoughts, I don't know,

[17:27] Наскільки вони справдяться, тому що зараз невідомо, куди рухається система, як ми будемо програмувати, як ми будемо використовувати цей штучний інтелект, тому що все дуже швидко міняється.
  To what extent they will come true, because it is currently unknown where the system is moving, how we will program, how we will use this artificial intelligence, because everything is changing very quickly.

[17:39] Ще рік тому ми були дуже далеко від того, де ми зараз.
  A year ago we were very far from where we are now.

[17:42] Ще рік тому я не вірив, що штучний інтелект буде таким крутим, а зараз я вже розумію, що він вже дуже крутий і але треба їм якось навчитись керувати.
  A year ago I did not believe that artificial intelligence would be so cool, but now I already understand that it is already very cool, but we need to learn how to manage it somehow.

[17:51] І в принципі одна із ідей - це те, що ми будемо саме в таких от папках, файлах зберігати нашу документацію, наші спеки.
  And in principle, one of the ideas is that we will store our documentation, our specs, precisely in such folders and files.

[18:01] І це буде якраз вихідним кодом нашої про програми.
  And this will be the source code of our program.

[18:05] Тобто не код сам, а саме спека.
  That is, not the code itself, but the spec itself.

[18:08] І код або буде ігноруватись по цій спеці, або прямо на льоту буде виконуватися спека.
  And the code will either be ignored according to this spec, or the spec will be executed on the fly.

[18:12] Ну, це вже якісь фантастичні ідеї, але хто знає.
  Well, these are already some fantastic ideas, but who knows.

[18:14] Мені здається, що ця ідея дуже крута, тому що зберігати ці всі, по-перше, ну, ми вбиваємо декількох зайців.
  It seems to me that this idea is very cool, because storing all these, firstly, well, we kill several birds with one stone.

[18:23] Б, бідні зайці.
  B, poor hares.

[18:25] Нічого проти зайців не маю.
  I have nothing against hares.

[18:25] Зайці, вибачайте.
  Hares, forgive me.

[18:28] Е, але перший заєць, невинний заєць - це який?
  Well, but the first hare, the innocent hare - which one is it?

[18:32] Це те, що ми, по-перше, продумуємо всю систему.
  This is what we, first of all, think through the entire system.

[18:35] Ми бачимо хід думок штучного інтелекту.
  We see the thought process of artificial intelligence.

[18:37] Ми можемо перевірити все, що він робить.
  We can check everything it does.

[18:40] Ми можемо на кожному етапі вставляти свої 5 коп і казати: "Ні, це якась фігня".
  We can insert our two cents at every stage and say: "No, this is some nonsense".

[18:45] Або можемо зрозуміти, що це взагалі якась не туда фіча йде заново почати робити, бо ми йдемо по реалізації, по всіх тих кроках, яких, в принципі, і виконується нормальний продукт, і детально розписуємо, що має бути.
  Or we can realize that this is some feature going completely in the wrong direction and start over, because we are going through the implementation, through all those steps that, in principle, a normal product is executed, and we describe in detail what should be.

[19:02] І другий відповідно заєць - це те, що це все, що ми на, як я вже казав, написали, буде частиною нашого проекту.
  And the second hare, accordingly, is that all this that we, as I already said, wrote, will be part of our project.

[19:12] І ми завжди зможемо звернутись до того і подивитись, чого і чому і як це були зроблено, по якому специфікації.
  And we will always be able to refer to that and see what and why and how it was done, according to which specification.

[19:20] І потім вже можна робити якісь висновки, чи було це проблема в специфікації, чи це була проблема в реалізації і де саме була проблема, і вже робити якісь
  And then we can draw some conclusions, whether it was a problem in the specification, or it was a problem in the implementation and where exactly the problem was, and then make some

[19:29] Серйозні висновки по тому, що чому ми робили.
  Serious conclusions about why we did what we did.

[19:33] Тому що якщо ми працюємо просто веб-кодимо, ну, я колись бачив на веб-коденні доволі великі проекти, то потім вони в купу просто не складаються і просто неможливо зрозуміти, що йде не так.
  Because if we just work on web coding, well, I once saw quite large projects in web coding, then they just don't fit together and it's simply impossible to understand what's going wrong.

[19:49] Купу всього пов'язано.
  A lot of things are connected.

[19:51] Ти там щось натискаєш, там вже не працює, тому що це не було продумано.
  You press something there, and it already doesn't work, because it wasn't thought through.

[19:55] Ну, типа, ніхто про це не думав.
  Well, like, nobody thought about it.

[19:58] І як воно взагалі має бути пов'язано, невідомо, тому що ніхто не, ну, чат не зберігся.
  And how it should all be connected is unknown, because nobody, well, the chat wasn't saved.

[20:03] По коду зрозуміти це доволі важко.
  It's quite difficult to understand this from the code.

[20:06] А тут виходить, що буде не так вже й важко.
  But here it turns out it won't be that difficult.

[20:08] Далі він що питає?
  Next, what is he asking?

[20:10] Що він вже написав, бачите, таски.
  What he has already written, you see, tasks.

[20:12] Давайте глянемо, як це в нас виглядає.
  Let's take a look at how this looks for us.

[20:15] Він нам збацав такий прям перелік задач.
  He whipped up for us such a direct list of tasks.

[20:16] Бла-бла-бла.
  Blah blah blah.

[20:19] Дуже купу велика куча задач.
  A very large pile of tasks.

[20:22] І так само рекомендую це все уважно передивитись.
  And I also recommend carefully reviewing all of this.

[20:25] Напевно можна попросити, якщо у вас з англійською, щоб він це переклав українською, але в принципі бажано знати.
  Perhaps you can ask, if you have trouble with English, for him to translate it into Ukrainian, but in principle it's desirable to know.

[20:30] англійську, як я постійно кажу. Тобто ви

[20:32] передивляєтесь ті всі задачі, бачите, їх

[20:34] тут доволі багато, що там зробити,

[20:37] проінсталювати, там створити,

[20:38] бла-бла-блаблаблаблабла. Дуже велика

[20:40] кількість задач. І давайте ми

[20:43] передивились, узгодили ці задачі,

[20:46] переходимо до реалізації. Переходимо до

[20:49] реалізації. Як для цього я хочу

[20:51] запустити ще одну сесію клоду і вибрати

[20:53] іншу модель. По-перше, я хочу почати з

[20:56] чистого контексту, тому що вже в нас є

[20:59] список задач. Нам не потрібно тримати

[21:01] перед собою весь попередній контекст. Ми

[21:03] можемо зекономити на тому, що ми не

[21:04] тримаємо контекст. Ми можемо кожний

[21:08] кожну нову за кожний новий етап робити в

[21:10] новому в новому контексті. Я в принципі

[21:12] для себе робив так. Я всі ці перші

[21:14] етапи, там створення спеку, створення

[21:17] плану і створення тасок, я робив в

[21:19] одному контексті, а саме виконання я

[21:21] робив в іншому контексті. І можна навіть

[21:23] переключитись на більш дешеву модель.

[21:25] Наприклад, цей Sonet. От я переключусь

[21:26] на Sonet.

[21:28] Ну, ще раз гляну, що там. Sonet High

[21:30] Efford. Давай я зроблю medium effort. І

[21:33] тут я можу вже написати цю команду, яка

[21:35] називається в нас specit implement. Spec

[21:39] kit implement.

[21:42] Ну, погнали. Всі наступні спеки, як ви

[21:44] бачите, вони будуть мати наступний

[21:47] номер, тому що це папка спек. В ній є

[21:48] одна папка, тому вона так дивно

[21:50] відображається. Папка в папці. В цій

[21:52] папці одна папка 001 the task list.

[21:55] Тобто номер спеки - це такий номер по

[21:57] порядку, плюс така коротка його такий

[22:00] нікнейм коротенький.

[22:02] І в результаті у вас буде

[22:07] велика кількість таких ось

[22:10] спеків. Що ще хорошого в цьому підході?

[22:12] Це те, що коли ви так все гарно

[22:14] продумали, ви просто запускаєте це на

[22:16] виконання. В принципі виконання може

[22:18] тривати доволі довго. В принципі, воно

[22:19] може тривати там, ну, годину, наприклад,

[22:23] чи щось таке. Нам

[22:26] тут вже додаткових питань не було, адже

[22:28] все продумано. І теж дуже класна штука,

[22:31] що

[22:33] це ви можете залишити і йти собі чи на

[22:35] обід, чи поспати, чи поїсти, чи по щось

[22:39] там ще поробити, чи що ви любите, чи

[22:41] котика погладити, чи тіктоки подивитись.

[22:44] Не рекомендую дивитиськи і

[22:47] але вільний час у вас є. Або працювати

[22:49] над іншою вже задачею. Я в принципі

[22:51] цього не люблю, тому що

[22:54] потім я плутаюсь між задачами. В мене

[22:55] там в голові дуже погано тримається

[22:57] контекст, коли я стрибаю між різними

[22:59] задачами. Це теж одна з проблем, яка

[23:02] з'явилась зі штучним інтелектом. Це те,

[23:04] що дуже багато задач в голові крутиться,

[23:07] тому що ти запустив одну і що робити?

[23:09] Ну, можна переключитись на наступну. Ну,

[23:11] іноді, ну, приходитися так робити, тому

[23:14] що, ну, воно ж щось робить, треба чимось

[23:16] себе зайняти.

[23:18] Давайте я вам ще покажу, як відбувається

[23:20] сам процес, тому що як поки ці задачі

[23:22] вони там, бачите, під час роботи він ще

[23:25] от ці задачі відмічає як зробленими. От

[23:28] якщо ми тут поставимо, подивимось, то

[23:30] ось ці помітив це зроблено, це зроблено,

[23:32] це зроблено, це зроблено. О, бачите, він

[23:34] всі задачі помітив, як зроблено. Де ті,

[23:36] що в процесі, він ще

[23:40] не помічає, як зробленими. Хоча, мені

[23:42] здається, це відбувається не так

[23:44] синхронно, як я собі думав, що кожна

[23:46] задача одразу відмічається. Це

[23:47] відбувається так доволі хаотично, але в

[23:51] принципі нам немає різниці. Нам головне

[23:53] результат. Бачите, зараз він все

[23:54] відмічає, як зроблено. Якраз його

[23:58] він все перевіряє і все помічає, як

[24:00] готове. От я питаю, як запустити цей

[24:02] проект. Він щось запустив? Ну ось і

[24:04] бачите, в нас є задачі. Я можу там

[24:06] додати задачі на сьогодні,

[24:09] на тиждень. Можу їх переносити. А можу,

[24:12] можу. А цікаво, наче можливість є, але

[24:15] не переноситься. Ну, напевно, треба йому

[24:18] А я можу так переносити. Ага. Ну,

[24:20] варіант. Бачите, Dragндроop не працює,

[24:22] але в принципі, ну, непогано. Дуже схоже

[24:24] на те, що я просив. Далі ви можете

[24:27] відповідно доступні зміни. Ну,

[24:29] наприклад, я хочу, щоби, бачите,

[24:31] відмічається.

[24:33] Бачите, там закриті таски, відкриті

[24:35] таски, не знаю, в процесі. Можете додати

[24:37] якийсь статус до задачі. Це я буду, якщо

[24:40] мені потрібно буде, писати окремими

[24:42] спеками. Ось таким чином я створив цей

[24:45] проект. І окрім коду я отримав ще опис,

[24:51] документацію технічну, як завдання до

[24:55] цього коду, як цей код був створений, за

[24:58] якою спеками. Що класно, що ви, в

[25:01] принципі, можете це передавати одразу

[25:03] тестувальникам,

[25:04] тому що в нас є е-е спек,

[25:09] де розписано

[25:11] критерії, критерії успіху,

[25:15] критерії

[25:17] чкейси, user story, тобто все, що

[25:20] потрібно тестувальникам. Ви можете це

[25:22] віддати їм і ви могли би це віддати їм

[25:24] ще до того, як був готовий проект. Тобто

[25:26] ви паралельно можете, тестувальники

[25:28] можуть працювати вже продумувати свої

[25:29] там

[25:32] тесткейси і всякі там автоматизації, а а

[25:35] ви можете працювати над розробкою. Ось

[25:38] так. Ще відповідно це може бутить різні

[25:40] люди. Тобто одна людина може створювати

[25:43] е відповідає за спеку, тобто вона така

[25:46] більш продуктова, там продумає, як це

[25:48] все якийсь овнер, як це має працювати.

[25:50] Далі ми переходимо до плану. Це вже може

[25:54] робити інша людина, більш технічна, яка

[25:56] вже більш Тут, бачите, тут вже в спеку

[26:00] немає нічого про технічну реалізацію. Є

[26:02] тільки де бізнес е реквареми, тобто це

[26:05] інший рівень. Тут є у нас технічна

[26:08] реалізація, бачите папки, всі діла. Ну,

[26:10] це вже має робити хтось з технічних

[26:12] людей. І потім запустити виконання задач

[26:17] може будь-хто, тому що це, в принципі,

[26:19] вже не потребує додаткових відповідей на

[26:22] додаткові питання. Ви просто натискаєте

[26:23] кнопочку і все. І чекаєте якийсь час.

[26:27] Приблизно це все мені зайняло. Я там з

[26:30] паузами тут робив, ну, хвилин

[26:35] 40 я зробив цей проект. Він всі ці кроки

[26:41] пройшли за 40 хвилин. Ось таке от

[26:42] майбутнє я бачу

[26:45] програмування. Це, в принципі,

[26:49] сув до постановок, задач. Я думаю, що

[26:51] вам всім, всім програмістам треба

[26:54] підніматись на рівень вище і вже ставити

[26:56] завдання, тому що кодити вже скоріш за

[26:58] все буде не дуже важливо, але важливо

[27:02] буде розуміти, як ставити завдання, як

[27:05] мати продуктове мислення, технічне

[27:07] мислення, як це буде реалізоване, там

[27:09] архітектурне мислення. Ее, як ви будете

[27:12] цей проект тримати в кучі, як між собою

[27:15] будуть взаємодіяти всі ваші фічі, всі

[27:17] ваші компоненти, всі ваші ідеї, як

[27:20] будуть грати один з одним. Отже, це був

[27:24] FW Days. Я вічдушний програміст, а ви

[27:27] розказуєте, чим ви користуєтесь, чи ви

[27:29] використовуєте Speect Driven

[27:31] Development, які інші фреймворки ви

[27:32] використовуєте, якщо користуєтесь. І

[27:36] діліться своїми ідеями, тому що це треба

[27:39] робити. ділитись тим, що як ми працюємо.

[27:44] Адже зараз все змінюється шаленими

[27:46] темпами і FWD зі мною. Ми за цим

[27:49] слідкуємо і тримаємо вас в курсі. Отже,

[27:52] підписуйтесь на обидва ці канали і

[27:56] лайкайте
