TRANSCRIPTRussian

Скрам не нужен: как ИИ-кодинг меняет представление об эффективной команде — Глеб Кудрявцев

52m 53s7,800 words1,289 segmentsRussian

FULL TRANSCRIPT

0:07

Коллеги, всем здравствуйте.

0:08

Рассаживайтесь, пожалуйста, поудобней в

0:10

нашем эфире. Запись пошла, люди к нам

0:13

приходят. Рады вас видеть. Коля, рад

0:15

тоже тебя видеть. Вот передаю тебе эфир

0:18

для приветственного слова. Вот вступай.

0:22

>> Спасибо, Саш. Всем привет, ребят. Добро

0:24

пожаловать на AI Hardwork. Меня зовут

0:27

Коля Шейко. Мы вместе с Максимом

0:29

Романовским делаем и конференции под

0:32

именем Пиy Talk. Я сейчас скажу

0:35

небольшое вступительное слово, объясню,

0:37

как в целом будет проходить наша канфа,

0:39

чего от неё ждать, а потом передам слово

0:41

Саше, нашему партнёру Стартоплана. И

0:44

сегодня он будет главным ведущим. Вообще

0:47

эта конференция - это такой же

0:49

эксперимент, как и наши предыдущие.

0:52

Может быть, вы слышали про конференцию

0:54

AI of Life или итоги 25. И если честно,

0:58

у нас с Максом всё ещё нет какой-то

0:59

понятной бизнес-модели, поэтому просто

1:01

пробуем разное и смотрим, что

1:03

получается. В этот раз получилось

1:05

привести очень известных спикеров и

1:08

найти крутого партнёра в лице

1:10

Стратоплан. Ребята взяли на себя всю

1:13

техническую организацию эфира и все

1:16

сложности по продвижению конференции,

1:19

без чего у нас бы не получилось собрать

1:21

4.000 зрителей и привлечь под это дело

1:24

тех спикеров, которых мы привлекли.

1:28

Давайте сейчас парочку оркмоментов

1:30

важных. Вообще у нас много тем, и, если

1:34

честно, мы не планировали, что вот все

1:36

доклады будут интересны каждому

1:38

конкретному участнику.

1:40

часть будет скорее верхнеуровневые,

1:42

стратегические с каким-то взглядом на

1:45

базе того уникального опыта, который

1:47

есть у части наших спикеров. Какие-то,

1:50

наоборот, будут скорее практическими с

1:53

гайдами и разбором каких-то практических

1:56

реальных кейсов и факапов, которые в

1:58

этих кейсах случались.

2:01

Поэтому, так как в нашем закрытом канале

2:04

есть актуальное расписание, вы можете

2:06

выбрать, какие доклады вы хотите

2:08

послушать в реальном времени, какие вы

2:10

вообще, возможно, пропустите, а какие,

2:14

может быть, послушаете в записи.

2:17

Ещё в конце каждого доклада будет время

2:19

на вопросы. Я рекомендую писать их

2:22

сразу, как только они появляются. Но мы

2:24

не обещаем, что получится ответить на

2:26

все вопросы. Мы будем выбирать те,

2:28

которые нам покажутся наиболее

2:30

интересными и транслировать их спикером.

2:33

А ещё я всегда говорю, что что-нибудь

2:35

обязательно пойдёт не так.

2:38

Но обычно на наших ивентах

2:42

получается достаточно ламповая

2:44

атмосфера, и у нас классная аудитория,

2:46

поэтому я верю, что никакие эксцессы нам

2:50

не помешают. Ну а теперь я передаю

2:52

бразды ведущего Саше, соснователю школы

2:56

менеджмента Стратоплан, спикеру нашей

2:58

конференции и сегодняшнему ведущему. А я

3:01

к вам вернусь завтра как ведущий и

3:03

послезавтра как спикер.

3:05

>> Всё, всем хорошего вечера.

3:06

>> Пока-пока, Саш, начинай.

3:08

>> Да, Коль, спасибо большое. Вот мы, я

3:10

думаю, ещё неоднократно увидимся с тобой

3:12

и сегодня, вот и в конце нашего

3:14

сегодняшнего дня. Коллеги, всех радо

3:16

приветствовать. Надеемся, что вы удобно

3:17

устроились, есть какие-то поддерживающие

3:19

вас напитки рядом. И первый у нас

3:22

официально по расписанию ещё несколько

3:23

минут есть для того, чтобы завершить

3:25

вводную часть, прежде чем мы перейдём к

3:26

докладам. Поэтому я проговорю некоторые,

3:30

на мой взгляд, важные моменты, которые

3:31

помогут вам получить больше пользы от

3:33

конференции. Во-первых, чат у нас сейчас

3:35

отключен. Вот можно не пытаться туда

3:38

что-то сейчас написать. Мы первые минуты

3:40

его отключаем в рамках борьбы с

3:41

зумхакерами. Вот мы через несколько

3:43

минут чат включим, убедимся, что он у

3:44

всех работает, и уже начнём общаться в

3:47

рамках наших докладов и с вами

3:49

познакомимся там и так далее. Пару слов

3:51

про нас. Рапилк, стратаплан. Я тут

3:54

думаю, что все, конечно, срочно

3:55

конспектируют всё, что написано на

3:57

экране. Вот. Но если в двух словах про

3:59

стратоплан, мы 16 лет занимаемся

4:00

обучением руководителей. У нас два

4:02

основателя. Мой коллега Слава Панкратов

4:04

и я. Мы сами с айтишным анамненом, то

4:06

есть работали на инженерных позициях,

4:08

потом на управленческих, на

4:09

директорских. последние 16 лет

4:11

занимаемся тем, что учим умных людей

4:13

работать с другими умными людьми. У нас

4:15

есть какое большое количество программ

4:17

вот для руководителей. Если интересно,

4:19

мы про них ещё расскажем многократно. У

4:21

нас есть специальное предложение для вас

4:22

как участников конференции. И в целом

4:25

все наши бесплатные ивенты мы проводим

4:27

обычно в преддверии запуска наших

4:29

платных программ обучения, в том числе

4:31

этот ивент. Но для того, чтобы вы

4:33

захотели прийти учиться в Стратоплан,

4:35

нужно, чтобы от этих бесплатных ивентов

4:37

вы тоже получали пользу, верно? Поэтому

4:39

мы стараемся в рамках каких-то

4:42

бесплатных активностей, курсов,

4:43

конференций делать так, чтобы те, кто

4:46

приходят, независимо от того, вы там

4:49

заплатили своё участие в конференции или

4:50

не заплатили, чтобы это было вам

4:52

полезно. Поэтому вот вместе с коллегами

4:54

из Нтрапии Talkк, с Коле и с Максом, мы

4:56

постарались дейстро спикеров, кто может

4:59

актуальные истории про AI доложить,

5:02

рассказать так, чтобы это было для вас

5:05

ценно.

5:06

что я, как там человек, многократно

5:08

выступающий на конференциях и

5:10

организующие конференции здесь ещё хотел

5:12

бы сказать. Коллеги, постарайтесь

5:15

по ходу докладов думать про себя и про

5:17

свою реальность. Что вы можете взять для

5:19

себя полезного? Какой вопрос задать

5:21

спикеру, чтобы унести что-то для себя? Я

5:24

бы вас призвал не соревноваться со

5:26

спикерами в экспертности или в чём-то

5:28

ещё. Если хотите быть спикером, вот,

5:29

коллеги, кстати, можете мне прямо прийти

5:31

и в Telegram написать, вот, потому что

5:33

мы постоянно заняты поиском новых

5:36

спикеров. Я сейчас свои контакты

5:37

оставлю. Вот. Если хотите, пишите,

5:40

приходите. Буду рад с вами обсудить

5:41

любые вещи, в том числе и ваши

5:43

выступления. Но постарайтесь всё-таки от

5:45

конференции вынести что-то полезное для

5:47

себя. И подумайте, какой вопрос вы

5:50

хотели бы спикером задать, чтобы это

5:51

полезное прозвучало в эфире. И ещё один

5:55

важный момент, поскольку у нас больше

5:57

4.000 регистраций, у нас на эфире

5:59

сегодня, завтра, послезавтра, скорее

6:01

всего, будет будут сотни человек. У нас

6:02

сейчас 800 человек онлайн. Думаю, что

6:05

будет больше тысячи. Мы, конечно, ваши

6:07

вопросы постараемся отслеживать, но

6:09

всерьёз не рассчитывайте на то, что мы

6:10

ответим на все вопросы. Мы, скорее

6:12

всего, их заберём и вот как раз

6:14

обсуждаем с коллегами, куда дальше

6:16

отнесём. Возможно, передадим спикерам,

6:17

чтобы они в своих каналах на них

6:19

отвечали. Поэтому, если ваш вопрос

6:21

остался незамеченным, пожалуйста, не

6:22

обижайтесь. Ну, чат будет, скорее всего,

6:25

жить своей жизнью. Вот. И там будут

6:27

какие-то свои обсуждения. Нам важно,

6:29

чтобы то, что мы пообещали в рамках

6:30

конференции, прозвучало. Надеюсь, здесь

6:32

мы с вами на одной волне.

6:35

И второй момент, давайте зададим правила

6:37

общения. Мы в Стратоплане всегда

6:39

выступаем за то, чтобы у нас общение

6:41

было конструктивным, чтобы это была

6:43

такая площадка здравомыслия. Поэтому у

6:45

нас в рамках конференции, в том числе,

6:47

строго запрещены три вещи. Это мат в

6:50

чате. Со стороны спикеров. Не знаю,

6:53

будет ли звучать. Мы с ними не

6:54

проговаривали. Вот посмотрим с вами.

6:56

Вот. Но в чате это точно запрещено.

6:58

Обсуждение политики в любом виде. И

7:01

третье - это неконструктив. То есть

7:03

какие-то токсичные проявления в

7:05

отношении других участников чата,

7:06

спикеров, кого-то ещё. Вот это мы

7:09

постараемся в чате не допускать,

7:11

коллеги. Кого-то будем банить. Вот

7:12

предупреждение высказывать не будем,

7:14

потому что чат будет жить своей жизнью.

7:15

Вот. Но наша задача сделать это

7:17

пространство, ну, достаточно

7:19

конструктивным, так, чтобы все в нём

7:20

чувствовали себя комфортно. Первый

7:22

спикер у нас Глеб Кудрявцев, наш

7:24

товарищ, партнёр. Глеб у нас уже

7:26

выступал. Глеб, рад, что ты нашёл

7:28

возможность к нам присоединиться.

7:29

Передаю тебе слово,

7:30

>> и у нас там будет, да, про команды, про

7:32

AA и всё, что с этим связано.

7:34

>> Врывайся. Всем привет. Что я вам хочу

7:36

сегодня рассказать? Я вам хочу

7:38

рассказать про мой мой опыт AI-кодинга в

7:42

команде. а-а, какие у меня лично, э, ну,

7:46

какой у меня опыт, с какими подводными

7:48

камнями я столкнулся и, возможно,

7:50

сокращу вам какое-то время на

7:52

самостоятельном освоении всей этой

7:54

истории. А доклад у меня по плану, ну,

7:57

где-то на полчасика. останется

7:58

обязательно время на вопросы, так что

8:01

можете их готовить, можете писать в

8:02

чате, потом я буду на них отвечать,

8:04

потому что я уверен, что тема такая вот

8:07

э а как это требует обсуждения, в общем,

8:11

потому что я кое-какие вещи скажу,

8:13

которые наверняка вы захотите с ними

8:15

поспорить.

8:17

Вообще, кто я такой? Я очень долгое

8:19

время был CPO, я работал

8:22

профессиональным продукт-менеджером.

8:24

А я давненько программирую для души.

8:27

Последнее время я программирую не для

8:29

души, а для работы. Делаю это с

8:32

агентами. А и, ну, за прошлый год я

8:36

сделал, я не знаю, сколько, ну, десят

8:38

более 10.000 комитов точно в свои разные

8:41

репозитории, в разные проекты. А, и я,

8:44

например, написал своих кодинговых

8:46

агентов две штуки. И параллельно, ну, я,

8:50

в общем, угораю по абсолютно всей части

8:53

айтишки и последнее время ещё помогаю

8:56

компаниям переходить в IT-трансформации.

8:58

Потому что когда они видят всякие

9:01

чудеса, что вот один человек в одиночку

9:03

может написать каких-то очень крутых

9:05

там, например, кодинговых агентов, они

9:07

говорят: "А почему у нас там команда в

9:09

20 человек не может это сделать за

9:11

полгода? А, и что для этого нужно?" Вот,

9:14

соответственно, а я помогаю в этом.

9:19

Что я сделал, да, из интересного? Из

9:21

интересного, например, вот у меня есть

9:24

написанный мной, а по большей части

9:27

кодинговый агент, а, который

9:31

ну имеет приличный объём кодовой базы,

9:33

где-то больше 3 млн строк, приличное

9:36

количество комитов, здесь только

9:37

автоматизированных комитов. Этим же

9:39

самым агентом, да, я с помощью него и

9:41

его же самого разрабатывал больше тысячи

9:43

штук. А, ну ещё там несколько тысяч

9:46

ручных, наверное, комитов. И самый

9:49

прикол, что, в принципе, это всё сделано

9:52

там двумя с половиной людьми, да, третий

9:54

человек чуть поменьше комитил за 2

9:57

месяца в full AI режиме. То есть Full

10:01

AI, что я имею в виду? Мы практически не

10:03

читали код, да? То есть у нас обычно

10:07

AI-кодинг начинается с того, что вы

10:09

что-то, ну, сначала там в ручном режиме,

10:12

потом в агентском режиме. Ну, очень

10:14

долго, да, разработчики привыкли читать

10:17

код, они его читают. Я пришёл к тому,

10:20

что я его не читаю совсем. Я вам

10:23

расскажу, что мне это даёт. Да, это это

10:26

кратно ускорило разработку спойлер, а и

10:29

позволило мне перейти на технологии

10:31

более совершенные. То есть, если я

10:33

начинал с питона, например, этот проект

10:35

у меня сделан на Питоне практически

10:37

полностью, ну, который я знаю, понимаю,

10:39

могу прочитать. А сейчас я в основном

10:41

пишу на го и на расте. Абсолютно не знаю

10:44

ни строчки кода, ни на Го на Расте, но у

10:47

меня прекрасно получается. Я комичу

10:49

вполне приличные проекты. Например, есть

10:52

такой проект этот VLДK, да, он же,

10:57

который делает Валера Ковальский. Я его

11:00

полностью переписал на Тауре, то есть

11:02

раст с электрона. Ну не знаю ни

11:05

электрона, ни ни Тауре. И всё прекрасно

11:07

работает. Вот такая водная, да. То есть

11:10

я абсолютно угоревший по технологиям.

11:13

Вот. И сейчас я вам расскажу,

11:15

собственно, а чем же отличается кодинг,

11:18

а, ну, так называемый кодинг, да? Я я

11:22

давайте так, по терминологии AI

11:24

assistant coding и VIP codдинing для

11:26

меня одно и то же. Ну, пусть будет так.

11:28

А я в какое-то время стеснялся вот этого

11:31

слова. Я такой говорил: "Вот это одно

11:33

дело кодинг, другое дело AI assistant

11:36

coding." Сейчас я стал говорить, что а

11:38

это всё vibe кодинг. Всё, пофигу. А,

11:41

короче говоря, если ты пишешь код с

11:42

агентами, ты вайб-кодер. Аа просто, как

11:46

это, имей смелость это признать. Э, но

11:49

при этом я считаю, что нужно, что это не

11:53

непростая область знаний. Здесь нужно

11:55

прилично вообще вникать, что ты делаешь.

11:57

Здесь практики нужны определённые. И

12:00

здесь, в общем-то, на халяву оно не

12:02

прокатывает. Но тем не менее, если

12:05

достаточно опытный разработчик в

12:07

одиночку, да, вайп-кодит, ну, в том

12:09

числе с применением продвинутых техник,

12:11

таких так там, как SD, например, в том

12:15

числе там каких-нибудь сложных агентских

12:17

пайплайнов и так далее, а обычно это

12:20

даёт прирост производительности, да, при

12:23

распроизводительности это даёт, ну,

12:25

порядка там x10 это в среднем. А то, что

12:28

я видел, это, наверное, от двух до 20

12:31

раз, да? И как происходит кодинг в

12:34

одиночку? Ну, очень просто. Мы берём,

12:37

делаем какую-нибудь веточку себе в гите.

12:39

А крайне редко в одиночку работает через

12:42

фичаетки. Это надо быть достаточно

12:43

упоротым фанатом гита, да, обычно

12:45

работают в одной ветке, а, ну, одну одну

12:49

деф-ветку, да, какую-нибудь релизную

12:51

ветку. Вот прекрасно с этим живут.

12:53

Постольку поскольку используют тесты,

12:55

да, а дисциплины внутренней писать

12:57

миллиард тестов обычно не хватает. ты,

12:59

ну, их пишешь, как бы, на некоторые

13:02

моменты, на некоторые не пишешь.

13:04

Правила, опять же, хочешь использовать,

13:06

хочешь нет. Как такового планирования ты

13:09

себе никакого не делаешь, а, ну, и

13:11

достаточно быстро поставляешь изменения,

13:13

то есть стараешься со своими

13:15

пользователями быть ВКонтакте. Например,

13:17

ты делаешь какой-то сервис, у тебя там с

13:20

ними чатик, они тебе что-то написали,

13:21

пошёл закодил. Вот буквально прямо

13:23

сейчас. Да. Все очень сильно удивляются.

13:26

Внешний эффект, конечно, поразительный,

13:28

когда тебе говорят: "У тебя там

13:29

проблема, ты говоришь там через 15

13:31

минут, всё, проблема пофикшена". Все

13:33

такие: "Вау, ну вот это хорошая

13:35

скорость". Да. В отличие от энтерпрайза,

13:37

в отличие от традиционной разработки и

13:40

работе в команде, да, что там

13:41

происходит? Ну, во-первых, давайте,

13:44

почему я говорю с точки зрения гита? Ну,

13:46

потому что, не знаю, для меня это как-то

13:48

вот ядро разработки, да, вот как это всё

13:51

выглядит. В обычной работе команде

13:53

всегда приняты фичи ветки. Мы работаем в

13:56

фичиветках, а мы в них, э, делаем новые

14:00

фичи, мы их мёржем, потом а делаем ревю,

14:04

да, стандартно, а, и потом они через

14:07

некоторое время поступают в прот. Ну,

14:09

дай бог через неделю, зачастую там через

14:13

месяц, а иногда и по полгода. А тесты в

14:16

команде пишутся постольку, поскольку

14:19

тоже как бы, да, и тут, и тут, заметьте,

14:23

я никогда не видел, ну, все говорят,

14:25

там, мы хотим достигать покрытия 100%.

14:28

Вот вы в жизни когда-нибудь видели

14:29

реальное покрытие 100%. Я не видел, да.

14:32

Да, и потом это даже сама постановка

14:34

вопроса принята считать, что дурацкая,

14:36

что де сказать, если вы ставите вопрос,

14:39

что нужно 100% покрытие, ну, значит вы

14:41

вообще не очень понимаете, а что вы

14:43

делаете, потому что нужно, а, не 100%,

14:46

да, а нужно наиболее качественное

14:47

покрытие и надо наиболее какие-то важные

14:50

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

14:51

далее зачастую. Далее, что ещё у нас

14:54

интересно в разработке? В разработке

14:56

нужно как-то уживать вместе разных

14:59

разработчиков. И, как правило, очень

15:02

развесистые есть правила. Ну, начиная от

15:04

линтеров, а, заканчивая всякими

15:07

правилами, там, написания тестов,

15:09

правилами, а, не знаю, создания

15:11

документации, что вот здесь мы жирные

15:14

заголовки делаем, здесь нежирные, здесь

15:17

мы юзкейсы пишем, здесь у нас вот так

15:20

вот, а здесь шаг в сторону, короче,

15:22

расстрел. И так как шаг в сторону,

15:25

расстрел, да, зачастую это приводит к

15:28

медленной поставке. И вот это вот 10 фич

15:30

в неделю на человека, это я ещё,

15:32

пожалуй, загну. Это быстрая команда, да.

15:34

Ну реально там а-а пять фич бывает, две

15:39

фичивает, да, регулярно. А если крупная,

15:42

то я и ни одной, да, крупной фичи в

15:46

команде. Не знаю, какого какой у вас

15:48

опыт у меня такой, что разработчик может

15:49

и месяц делать в одиночку, да. Ну и

15:52

планирование. Планирование считается там

15:55

скрам конбан какой-нибудь стандартный ag

15:57

практики, но будем считать, что скрам

16:00

или околокрамовские техники - это некий

16:02

дефолт, да, с планированием, допустим,

16:04

раз в неделю. Допустим, раз в неделю. И

16:06

раз в неделю считается ещё достаточно,

16:09

а, быстро, да? Ну, то есть такой быстрый

16:11

скрам. О'кей. О'кей. И, а-а, и что из

16:17

этого вообще-то следует, да? Так как у

16:19

нас большие команды и вообще все приняты

16:21

работать в командой. И мы знаем, что

16:23

вайп-кодинг существует в одиночку, он

16:25

ускоряет. Естественное желание всех

16:28

попробовать - это что? Ну, вайпкодить в

16:31

команде, да? И вайп-кодить в команде -

16:35

это совершенно особая история. Аэ,

16:38

давайте подумаем, с чего начинается.

16:40

Начинается с чего? С того, что, ну, с

16:42

одного из этих двух состояний, да? Либо

16:45

вы привыкли вайпкодить в одиночку, вы к

16:47

себе берёте кого-то, допустим, или вы

16:50

формируете вокруг этого команду, либо вы

16:53

изначально привыкли работать в команде и

16:56

э вам хочется внедрить AI практики. Так

17:00

вот, а сейчас я буду рассказывать некий

17:02

мой усреднённый опыт, как как бы как

17:05

факт, а предворять его я его буду тому,

17:09

как мы к этому факту приходим, а с каких

17:11

позиций. Скажу сразу, да, вот я начинал

17:15

как индивидуальный контрибьютор в этом

17:17

проекте, потом ко мне вот пришёл один,

17:20

потом ещё второй человек, и на самом

17:22

деле у нас были сложности, да, после

17:25

этого я ещё в проектах поработал, где

17:27

есть совместный кодинг, и у меня

17:29

выработался набор практик,

17:32

которые помогают не замедляться, да, не

17:36

замедлять скорость индивидуального

17:38

контрибьюшена, потому что, а, то, что

17:40

происходит После вайбкодинга в одиночку,

17:43

как только ты себе берёшь первого же

17:45

человека, твой инстинкт начать делать

17:48

какие-то обычные традиционные практики,

17:50

и ваша скорость резко резко сокращается,

17:53

да? А за счёт чего она резко

17:55

сокращается? А сейчас будем будем

17:58

рассуждать, будем смотреть, да? Итак,

18:01

для начала, что у нас происходит? А,

18:05

во-первых, если вы попытаетесь, а, по

18:08

скраму, например, начать планировать,

18:10

аэ, еженедельные итерации в вашей

18:14

вайбкодерской команде, вы поймёте, что,

18:17

аа, вы ваш лимит, да, ваш лимит - это

18:21

ваша способность придумать фичей на

18:24

неделю. Понимаете, когда скорость

18:26

разработки x10, то

18:29

на неделю надо придумать фичей. Ну,

18:32

умножим, да, сколько? 10 недель, 2 с 1

18:34

месяца обычной разработки. Ну, э, прямо

18:38

скажем, у меня лично мозг не способен

18:40

столько придумать. Я реально, я не знаю

18:42

вообще, как будет выглядеть проект через

18:44

неделю, потому что он будет настолько

18:46

более развит, он может быть

18:49

там ещё миллион строк, грубо говоря,

18:51

добавится. Я без понятия вообще, что

18:54

через неделю произойдёт. Если вы

18:56

пробуете планировать на неделю, вы очень

18:58

быстро убеждаетесь, что уже через по 2

19:01

дня, например, ваш план абсолютно

19:02

неактуальный. Ну то есть вообще нет

19:04

смысла, да? А поэтому естественным

19:07

образом вы приходите вот к такой

19:09

странной истории, что рабочий горизонт

19:11

планирования - это где-то оди день, да?

19:13

Тем не менее планирование вполне

19:15

полезно. А зачем оно нужно? В отличие от

19:18

индивидуальной работы, да? Вот если мы

19:20

посмотрим, здесь вообще нет

19:21

планирования. А зачем нам планирование?

19:23

А дело в том, что вам нужно

19:24

синхронизировать работу с товарищами,

19:27

потому что товарищи тоже, а лазают

19:29

своими руками в код, делают там кучу

19:32

всякой ээ всякой всячины. А что будет,

19:36

если один в 10 раз один с трактором, да,

19:39

и и второй с трактором, и одну и ту же

19:40

поляну пытается копать? Ну, произойдёт

19:43

то, что если вы не запланируете, вы

19:45

будете сталкиваться, да? Аа вы будете

19:48

один и тот же код ковырять, у вас будут

19:50

постоянные конфликты, вы будете всё

19:53

время проводить разруливание этих

19:55

конфликтов. Вам это не надо. Короче

19:56

говоря, вас надо развести по разным

19:58

углам этой поляны, да. Вот это реально

20:01

очень хорошая хорошая аналогия.

20:02

Представьте код в виде поляны. И ну там

20:05

значит до этого там бригады с лопатами

20:09

копали, да? А человека с лопатой можно

20:12

на квадратный метр расставить. А теперь

20:14

у каждого экскаватор. А экскаватор

20:17

экскаватору нужно как бы намного больше,

20:19

чем 1 м, да. Соответственно, их

20:21

плотность рассадки этих экскаваторов,

20:23

она гораздо реже. А и уже нужно, если с

20:27

людьми ещё плюс-минус там можно по ходу

20:29

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

20:32

ямку, вообще низкая вероятность, что

20:34

кто-то ту же самую ямку тоже

20:35

одновременно начинает копать. То когда

20:37

все на экскаваторах, там начинается

20:39

полный бедлам, да, начинают друг другу

20:41

мешать. Поэтому, а-а, вот это вот, ээ,

20:45

это прямо важно и важно постоянно быть

20:47

вконтакте, кто что делает. А, а, так как

20:51

за, повторюсь, много дней вообще

20:53

непонятно, то мы стараемся быть

20:54

ВКонтакте каждый день. Как это на

20:56

практике? На практике очень просто. Тут

20:59

нужен син, но син не такой, что: "А я

21:02

вот делал, а я, а я буду делать".

21:05

Знаете, вот этот типичный стендап

21:07

скрамовский с утра. Он всегда на меня

21:09

крайне угнетающе действовал. Вот как,

21:11

знаете, ну как будто это отчёт о

21:13

трудовой повинности, типа я вот барщину

21:16

несу и я должен сейчас отчитаться

21:18

обязательно. Нет, там основная основной

21:20

смысл вообще проинформировать людей, что

21:24

ты будешь трогать, и спросить их, а что

21:26

они хотят потрогать, чтобы вы вместе

21:28

друг другу не мешали. Всё. Точка. То

21:30

есть ты говоришь: "Я, например, сегодня

21:32

хочу порефакторить а наш

21:35

какой-нибудь там профиль пользователя.

21:37

Если кто-то туда полезет, пожалуйста,

21:39

тоже скажите, а то мы столкнёмся. И

21:41

вообще я, может быть, ещё и в базу

21:43

данных залезу. И вообще не просто

21:45

пофакторлифн, ещё икс сюда заодно, да,

21:47

потому что мы же а кроссфункциональны.

21:50

Об этом немножко дальше. Почему в

21:53

вайпкодерской команде полезно быть

21:55

кроссфункциональным? И это тоже, да,

21:57

имейте в виду. А потому что если кто-то

21:59

полезет в эти же поля, допустим, на

22:01

беке, я об этом должен знать заранее.

22:03

Может быть, мы заранее тогда распределим

22:05

по-другому немножко работы. О'кей. идём

22:08

дальше. Идём дальше. И такой интересный

22:10

вопрос. Инструменты. Почему-то с него

22:11

обычно начинают, а на самом деле он

22:13

самый, на мой вкус, не очень важный,

22:15

потому что а история такая, что

22:18

инструменты на самом деле не очень

22:20

важны. То есть, э, если вы работаете в

22:24

курсоре, ваш товарищ Клоди, а ещё третий

22:27

в кодексе, и вы ещё это обмазываете

22:30

какими-нибудь там внешними

22:32

инструментами, не знаю, вот с моим

22:33

шотганом кто-то хочет в шотгане, да, это

22:36

прекрасно всё сочетается, вообще нет

22:39

проблемы, на самом деле. А все кодерские

22:42

инструменты, которые в основе

22:44

поддерживают так или иначе Git Pipeline,

22:46

да?

22:48

Либо, ну, какие там есть варианты, вы

22:50

можете у себя на десктопе что-то

22:52

работать, сами потом комитить, а либо

22:55

какие-нибудь облачные инструменты

22:56

использовать, ээ, которые сами комитят в

22:59

гиIT, вы оттуда забираете изменения. Да

23:01

какая разница? Это, короче говоря, всё

23:03

работает. Поэтому мой опыт такой:

23:05

инструменты вообще не особо важны,

23:07

каждый по вкусу делает, но но важно

23:10

иметь общие правила. А почему важно

23:13

иметь общие правила? Потому что правила

23:16

- это как раз тот вот, э, общий клей,

23:20

который позволяет вам вообще делать так,

23:23

чтобы проект не распадался. Потому что в

23:25

обычном проекте, что у нас обычно есть,

23:28

да? Ну, у нас есть, понятно,

23:30

какой-нибудь линтинг в обычном проекте.

23:33

А у нас есть какие-нибудь скрипты? Ну,

23:35

допустим, у нас есть какие-нибудь commit

23:37

actions. Ну, это вот классика, да? И то

23:40

зачастую комитет экшнсов нет, потому что

23:43

команда девопсов там нет, допустим, да?

23:46

Или мы или мы это настраиваем там год,

23:49

знаете, типа мы к этому идём, да? А, ну

23:53

какие-нибудь скрипты, типа кто-то

23:55

делает, кто-то не делает. Ну, в общем, и

23:57

вот то, что я встречал в проектах,

23:59

зачастую это просто написанные, да,

24:01

просто написанные правила. Просто

24:03

правила, а, на бумажке, грубо говоря,

24:06

написаны, э, в текст файле, как мы

24:10

пишем, да? Потом на кодрев тыкает,

24:13

говорит: "А, пункт 10, ты неправильно

24:15

сделал". Ага, плохо прочитал. Дальше

24:19

продвинутые команды. У них есть вот lint

24:21

какие-нибуд скрипты и какие-нибуд GitHub

24:24

Actions, да?

24:26

А что мы к этому добавляем? В агентской

24:28

разработке мы обязательно добавляем вот

24:31

эти вот две штуки. Ну, во, во-первых, мы

24:34

общие правила а для агентов добавляем,

24:38

да? Во-вторых, мы используем, стараемся

24:41

использовать общие скилы. А почему? Ну,

24:44

просто чтобы кто во что гораз здесь не

24:46

работал, чтобы плюс-минус одинаковые

24:48

понятия.

24:51

Если агенту не задать общего понятия,

24:53

например, о том, как тестировать, а то

24:56

две среды разработки с двумя разными

24:58

агентами, да, у одного клодту другого

25:00

кодекса, они вообще по дефолту, не знаю,

25:03

разные фреймворки фреймворки вообще

25:05

выберут. Поэтому вот эти вот правила о

25:08

фреймворках, об основных каких-то

25:10

особенностях нашего проекта, а

25:13

обязательно стоит

25:15

ну именно в контексте общих правил

25:17

использовать. Ну, то же самое касается

25:19

скилов, да, там скилы, опять же, на

25:22

прогон тестов, скилы на kindплои и так

25:25

далее. И это и плюс всё остальное тоже,

25:29

да, плюс всё остальное тоже. И я бы

25:32

сказал, что асо особое внимание нужно

25:36

уделять правилам тестов, да? Вот сейчас

25:39

вот сюда добавим. То есть, особенно про

25:42

тесты, особенно про тесты,

25:45

потому что в агентской разработки,

25:48

особенно в командной агентской

25:50

разработке, всё крутится вокруг тестов.

25:52

Без тестов, без прямо развесистых

25:56

пайплайнов тестовых у вас максимально

25:59

быстро родится хаос. А про то, почему не

26:02

спасают тестировщики, тоже чуть

26:05

подальше.

26:06

Далее посмотрим на то, как у нас

26:08

преобразуется Git, да? Потому что Git

26:11

Workflow для нас - это то, в чём мы

26:14

живём. Это то, та основа, на котором

26:16

всё, ну, всё нанизывается. Давайте

26:18

посмотрим на традиционный workflow,

26:22

когда мы просто разрабатываем сами по

26:24

себе, да? Ну вот обычная работа, давайте

26:27

так, не сами по себе, а именно командная

26:29

работа. Ну, традиционно, во-первых, у

26:31

нас есть деф какая-нибудь ветка, да?

26:34

Деф-веетка. Что делает разработчик,

26:36

когда

26:38

хочет новую фичу взять? Он себе

26:40

отпачковывает фичику.

26:43

Он начинает в ней разрабатывать. Когда

26:45

он разработал, да? А если это хороший

26:49

разработчик, он подмёрживает и странка

26:52

опять сюда, а решает конфликты, а вроде

26:56

бы всё решено. О'кей. В этот момент он

26:58

делает request, потом PL request висит,

27:01

Pull request проходит в review, и если а

27:05

в момент, после э допустим, Тимлит

27:09

говорит, что всё ок, да, то происходит

27:12

итоговый мер. Бывает ещё здесь,

27:15

например, что в этот момент что-то

27:16

влили. Пока он там ревьюил, уже транк

27:19

вообще изменился, надо заново

27:21

перемеживать. Но это редкость, да, это

27:23

редкость. И в принципе вот такая вот

27:26

история работает. А почему она работает?

27:28

Потому что у нас этих фичоветок, а, ну,

27:31

достаточно считанное количество от

27:33

каждого разработчика в неделю, и они вот

27:36

этими постоянными мержами в транк друг

27:38

друга, ну, не сильно задевают. Stage

27:41

про, ну, вот они и так существуют, да,

27:43

стабилизированная версия странка льётся

27:45

в stage, stage же ещё раз там

27:47

стабилизируются, гоняются какие-нибудь

27:49

тестюты и прочее, и заливается в прот.

27:52

О'кей, всё понятно. Ну, стандартно все

27:54

знают. Но в чём здесь есть проблема?

27:57

Во-первых, очень медленная стадия ревью.

28:00

То есть вот стадия ревью всех бесит. А

28:02

почему? Потому что она, блин, занимает

28:04

меньше, ну, времени. Зачастую не меньше,

28:05

чем вообще сама разработка, да. Плюс

28:08

ревью бывает ревью ручные, ревью,

28:12

основанные на правилах вот этих вот, да,

28:15

текст файл, а-а, вот это вот кнуть носом

28:19

в пункт 36, который ты там не учёл, да,

28:21

обязательно. А хорошо, если есть,

28:24

который сразу сам работает. Далее, потом

28:27

фичи на каждый чих создаются. Ну, это,

28:30

конечно, прикольно для видимости работы,

28:31

но на самом деле не шибко удобно. Бывают

28:34

мелкие очень фичи, типа, добавить

28:35

кнопку. Ну и зачем ей как бы фичаетка?

28:38

Так, глобально. А, ну и пока

28:41

делается фича. На самом деле бывает, что

28:43

накидают, э, изменения. А если

28:47

разработка, не дай бог, затянулась, да,

28:50

если ревью, не дай бог, затянулось, то

28:52

все успевают понакидать тебе сюда разных

28:56

своих комитов. Ты потом это каждый ра

28:58

каждый раз ты это мёрзшь, в общем,

29:00

ругаешься и всё это как-то неприятно. Ну

29:04

о'кей. Но все к этому привыкли. Хорошо.

29:06

Стандартный Git Workflow.

29:09

А есть, но с этим есть проблема. Почему?

29:12

Вот проблема такая. Представьте, что у

29:15

нас, а, вот такая вот история. Но только

29:18

мы делаем не 10 комитов в неделю, да, не

29:22

10 фич в неделю, а 10 фич в день. Причём

29:25

нас пять человек. 50 фич мы делаем в

29:28

день. Вы можете себе представить 50

29:31

ревью в день в команде? Вы можете себе

29:33

представить 50 мёржей, да? Причём это

29:36

эти мёржи вообще в произвольное время

29:38

должны происходить абсолютно. То есть

29:40

это, ну, это такая каша становится, что

29:43

просто жесть. И вот эта, собственно, вот

29:45

эта каша, она максимально начинает

29:48

тормозить разработку. То есть в итоге

29:50

время на разработку скукоживается,

29:52

потому что, ну, пошёл агенту, как бы

29:54

сказал сделать, он тебе за 15 минут

29:56

сделал. А всё остальное время мы

29:59

занимаемся вот этими вот, э, классными

30:02

задачками, типа: "авайте пообсудим, а

30:04

давайте ревью, а давайте теперь, пока мы

30:07

тут ревью, ещё три человека, влили свои

30:09

какие-то фичи. У нас там теперь уже мж,

30:12

ну, какие-то мёржконфликты. Давайте их

30:14

теперь заново мёржить. Ну, короче, в

30:17

общем, весело, да. Так вот, чтобы это

30:20

веселье несколько побороть, мы делаем

30:23

чудовищную вещь. Мы делаем совершенно,

30:26

а, гнусный антипаттерн, называемый

30:29

именная ветка. То есть мы берём и

30:32

раздаём каждому разработчику ветку. Вот

30:34

я Глеб, у меня будет ветка Глеб, а,

30:36

Витя, Петя, Даша, Маша, у всех у них

30:38

есть своя веточка. И что я делаю?

30:42

Во-первых, в начале дня я мержусь

30:44

странка. Свою ветку, да, ни у кого не

30:47

спрашиваю. Моя задача какая, чтобы, ну,

30:50

я отвечаю за свою ветку, чтобы она мне

30:53

была вообще удобна в работе. И моя

30:56

моя задача, что то, что я лью вообще со

30:59

своей ветки, оно работоспособно. Это я

31:01

за это вообще отвечаю. А то, что

31:03

происходит в рамках моей ветки, я её

31:05

могу в середине ломать, я её могу

31:07

откатывать, я её могу бранчить. Короче,

31:10

что хочу вообще с ней делаю. В общем, а

31:12

развлекаюсь, как хочу. Почему я

31:14

развлекаюсь, как хочу? Дело в том, что я

31:16

в параллель. Вы, наверное, в курсе, но

31:18

эффективный агентский пайплайн - это

31:20

две-три фичи в параллель. Вообще

31:22

зачастую, да, иногда в разных

31:24

инструментах. И я постоянно

31:26

отпачковываю, а, от своей вот этой

31:29

именной большой ветки. Я либо

31:30

отпачковываю фичи ветки, ну, если

31:33

чувствую, что фичи вообще достойны своих

31:35

отдельных веток. бывает, что фичи такие

31:36

мелкие, что и не нужно. А, ну, взрослые

31:40

ребята от пачковы от фичи ветки

31:42

продолжают, да? То есть вот примерно как

31:45

вот здесь вот аналог, но только не

31:46

отранка, а от своей именной ветки я

31:48

отпачковываю. Отпачковал, вмёрл,

31:51

отпачковал, вмёрл. Мёржко конфликты

31:54

решаю сам, да, сам, сам сво со своими

31:57

фичами разбираюсь, какая из них там

31:58

главнее, какую дропнуть, какую не

32:00

дропнуть, как это всё должно работать. А

32:03

половину фичей мелких вообще делаю без

32:05

фичеток, потому что, опять же, я сам

32:08

отвечаю за свою именную ветку, наворотил

32:10

тут, э, не знаю, 30 комитов сзади. Моя

32:14

проблема. Главное, что Главное, чтобы

32:17

тот мёрж, который я потом отправлю в

32:19

транк, да, в середине дня, например, или

32:22

вот я делал кусок какого-то важного

32:24

функционала, аа, и меня там Вася, а Вася

32:28

ждёт, пока я его закончу, чтобы самому

32:30

начать, потому что мы договорились, что,

32:33

а, я вот там часть поляны топчу и чтобы

32:35

потом сложного мёрзжа не было, он ждёт,

32:37

пока я его доделаю. Да, вот этот кусочек

32:40

я отправляю в тран. Что суперважно? А

32:44

суперважно, что все разработчики

32:46

придерживаются вот такой конвенции.

32:48

Во-первых, тестов много.

32:51

Тесты на каждый чих, тесты нормальные и

32:53

тесты зелёные. Если хотя бы один тест

32:56

падает, именная ветка не имеет права

32:59

замёржиться в тран. Потому что если у

33:01

каждого один тест упадёт и вы это всё

33:03

замёрз в тран, всё у вас будет

33:06

катастрофа. Вы потом в жизни не

33:08

разберётесь, что там вообще происходит.

33:10

Короче, у вас возникнет каша. А

33:13

единственный способ сохранить, э,

33:16

ну, вообще рассудок - это следить за

33:19

тестами в данном случае, да? Почему?

33:21

Потому что код, давайте подумаем, а что

33:24

будет, если мы кодрев здесь внедрим?

33:27

А-а, кодрев на уровне того, что я 10

33:30

фичей или там 20 фичей в день делаю и

33:33

кто кто мои фичи будет ревьюить. Ну,

33:35

о'кей, агент поревьюет, да, кодревью

33:38

агентский мы внедряем, но о'кей, а

33:41

разработчик другой успеет ревьюить? Да

33:43

нет, конечно, он прочитать это всё не

33:45

успеет. А сможет ли другой разработчик

33:48

проревью мои компаунд как бы изменения,

33:51

всё то, что я наделал за сегодняшний

33:53

день? Нет, не сможет, потому что за

33:55

сегодняшний день я в среднем там меняю 5

33:58

тире 10.000 строк кода. Ну какой вообще

34:00

какой разумный человек это всё сможет

34:02

осознать? Нет, никакого времени на это

34:04

не хватит. А сможет ли тестировщик

34:07

протестировать вообще все мои изменения?

34:10

Да не в жизни. Не в жизни он мою каждую

34:12

фичу успеет протестить. Это сколько надо

34:14

тестировщиков? На одного разработчика 10

34:16

тестировщиков придётся делать, да?

34:19

Поэтому тестировщик, я сам пишу тесты,

34:24

ээ пишу автотесты, да, много, потому что

34:27

я же ленивый тестировщик. Я стараюсь

34:28

всё-таки, чтобы, а, побольше было, а-э,

34:33

ну, того, что не надо потом, да, больше

34:35

ещё раз, второй раз тестировать, чтобы

34:36

оно само самостоятельно тестировалось.

34:39

Но я, на самом деле, и вручную тестирую,

34:42

будучи а вот такой вайб-команде. На

34:45

самом деле,

34:47

необходимость в чисто ручных

34:48

тестировщиках как таковая, она, ну,

34:51

уменьшается, так скажем, ну, не совсем

34:54

без них, да, потому что интеграционные

34:56

тесты, например, там из trank of stage,

34:58

да, они могут гонять, о'кей, о'кей, и то

35:01

их можно toend тестами заменить на том

35:03

же самом плейрайте, на чём угодно. А

35:06

просто не хватит столько тестировщиков,

35:08

если вы хотите выжимать из команды там

35:10

X10 эффективность, да, а не а не

35:13

дропнутся там до X полтора, да, как или

35:16

до 20% сверху. А поэтому вот вот так

35:20

вот, да, и ээ вот именные ветки. А в

35:24

классическом Git Workflow это считается

35:26

ужас-ужас, а нет ручного кодрев,

35:29

ужас-ужас, да. А тем не менее это

35:32

прекрасно всё работает. И более того, я

35:34

считаю, что так и надо работать. Вот это

35:36

вообще вот новая парадигма, да? Новая

35:39

парадигма, возврат к старой парадигме,

35:42

когда мы ещё а не были приучены, как

35:44

надо, как правильно. Аа идём дальше. А,

35:48

собственно, а про инструментарий уже

35:51

говорил. Ещё пару слов скажу. Аа есть ну

35:55

то есть можно использовать

35:57

так называемый enticinting, да? То есть,

36:00

когда мы агентами кодстайл правим,

36:02

помимо каких-то, а-э, ну,

36:05

верифицированных правил, там, как бы,

36:08

заранее заданных, да? То есть мы, у нас

36:11

есть линтеры, которые чисто языковые

36:13

особенности делают, и у нас есть агенты,

36:15

которые проверяют на архитектурные

36:18

паттерны, на соответствие технологиям,

36:21

которые мы используем и так далее. Это

36:23

можно выделять в сайгентский workflлоow,

36:25

это можно выделять вообще в отдельную

36:27

стадию, это можно повесить на

36:29

какие-нибудь комитхурки, да, вот,

36:31

допустим, аа вот, ну, линтить абсолютно

36:35

каждую фичу, это бывает просто долго. А,

36:38

допустим, если я мёржу в транк, повесить

36:40

сюда какого-нибудь агента, который, а,

36:43

смотрит просто по всем, ну, по всему

36:46

комиту проходится и смотрит на кодстайл,

36:48

допустим, нормальная история, да,

36:50

рабочая. Вот. А-а, далее, интересная

36:53

штука про роли в команде. Ну, во-первых,

36:55

всё очень сильно стирается, да, потому

36:58

что, ну, когда все могут писать на всём,

37:01

на самом деле становится так, что, а-э,

37:05

и все и могут сделать всё. То есть у нас

37:07

получается снова возврат к мульти, э,

37:12

как это сказать, блин, забыл слово. Ну,

37:15

короче говоря, разработчики становятся

37:16

универсальными, да, перестаёт вот это

37:18

быть деление там фронтбк. Ладно,

37:21

фронтбк, аа проject-менеджеры,

37:24

продакт-менеджеры там частично не нужны,

37:27

а может быть и полностью, тестировщики

37:29

частично не нужны, а может быть и

37:31

полностью, и так далее. То есть на самом

37:33

деле в команде очень роли начинают снова

37:36

объединяться, и все делают всё просто,

37:39

может быть, с разной с разной

37:40

эффективностью, да. Вот у меня как раз

37:42

был случай, когда ну мне вот мне в

37:45

проекте мне вообще больше всегда БК

37:47

нравится делать. Ну, я просто про

37:49

алгоритмы, что-то такое там, а вот

37:51

фронт, вот, чтоб красиво было, ну, мне

37:54

всегда вообще сложно, да, у меня чувство

37:56

красоты и немножко своеобразное. И у нас

37:58

была такая была такое, ну, было

38:00

распределение, что когда есть

38:03

возможность, я прошу другого

38:04

разработчика там написать фронт, когда

38:07

он занят, например, или или у него там

38:09

большая задача, он этот фронт там

38:11

целиком рефакторинг, а мне нужен вот

38:13

фронт прямо сейчас для какой-нибудь

38:14

фечи, но я беру и сам пишу, да, не

38:17

проблема. Точно так же с бэком.

38:19

Допустим, я пишу бк, я там хорошо

38:21

ориентируюсь, аэ, но ему там, чтобы меня

38:24

не ждать, он, пожалуйста, берёт и пишет

38:26

бэк. Ну, про спеки, про всё это. Это

38:28

само собой. Если у нас SДD, а у нас SD,

38:31

да, чуть попозже про SD, что это такое,

38:33

для чего в команде? Аа это база вообще,

38:37

поэтому все пишут спеки. И

38:39

продакт-менеджер там тоже пишет спеки, и

38:42

разработчики пишут спеки. И

38:43

продакт-менеджер потом идёт и

38:45

программирует, потому что если он просто

38:46

пишет спеки, то нафиг он кому нужен.

38:48

Нуще, серьёзно. А, о'кей. Али вообще за

38:51

что во всей эта истории отвечает, на

38:53

самом деле? А, Тимли очень просто. Он

38:56

отвечает за то, что код и странка

38:59

вовремя пуляется там, ну, на стеч напрот

39:02

и он работоспособен. Как он это

39:05

поддерживает? Ну, это его проблема, да.

39:07

Ну, как-то он поддерживает. В общем, ну,

39:09

я просто хочу подчеркнуть, что не стоит

39:11

цепляться за старые практики

39:12

поддерживания. скорее всего, с этим лит

39:14

сойдёт с ума просто, если попытается всё

39:16

это, а-а, всё это, например, ревью.

39:19

О'кей. А процессы,

39:23

процесс, я считаю, я его назвал вот так

39:25

вот. Я его назвал ультраканбан. Почему

39:28

вообще он похож на канбан? Э, потому что

39:32

очень важны ограничения на число задач в

39:34

работе. Потому что, когда у нас такое

39:37

количество веток способен генерировать

39:40

один человек, ветки начинают протухать

39:43

не за неделю и не за месяц, а за час и

39:46

за день, да? Она начинает протухать с

39:48

такой же скоростью за день, как раньше

39:51

она протухала за месяц. И это прямо

39:54

боль, да, это боль. А если вы начинаете

39:58

копить эти ветки, вы их потом никогда не

40:01

перемёрз и проще. И более того, вы

40:03

просто даже там, ну, не то, что там не

40:05

перемёржете, у вас сама спецификация

40:08

успеет поменяться, потому что весь

40:10

остальной проект уехал. А, поэтому

40:12

жёсткие ограничения важно, да, не держим

40:15

ни в коем случае много задач

40:17

одновременно. Далее, планирование. Аа,

40:21

спланируем на день, на неделю.

40:23

Бесполезно. Это вот всё, ну, время

40:25

потратите, а толку не будет.

40:27

Коммуникации с коллегами. Раньше вот

40:29

было принято, что, ну, с утра

40:31

пообщались, ну, и всё, самые хардкорщики

40:35

могут ещё вечерний какой-то митинг

40:37

устроить. Я считаю, что, ну, в

40:39

современном процессе, если вы хотите

40:41

выжить максимум, но это минимум три раза

40:43

в день. Но при этом это не должно быть

40:45

прямо регламентированное общение. Вы

40:47

можете перекинуться там двумя словами в

40:49

Телеграме. А этого достаточно, да.

40:52

Главное, что вы поддерживаете постоянно

40:55

вот этот еже

40:57

в день несколько раз вот таких итераций,

40:59

там, может быть, какой-то код заливаете,

41:02

может быть, подливаете от них и так

41:03

далее. И ревьют сами агенты, да, кодвью

41:07

человеческое, всё убираем. Это, я

41:10

считаю, пережиток старины. Вот эта вот

41:12

история, что: "Ой, а я только я знаю,

41:15

какой код хороший". Да нет, сетки лучше

41:18

тебя знают. Ты просто им плохо доверяешь

41:20

и не умеешь для них собирать контекст,

41:22

да? А на самом деле агенты прекрасно

41:25

ревьют. А про артефакты, во-первых, а

41:30

процесс SD, я надеюсь, ну, многие уже в

41:33

курсе, что это такое, да? Specification

41:35

Driven Development, да? Specification

41:37

Driven Development, то есть разработка

41:39

по спецификациям. спецификации must

41:42

have, да, до кода мы пишем вообще план,

41:44

типа, о чём мы хотим сделать разной

41:47

степени техничности. Но важно с

41:50

выкидываемыми спецификациями, что это

41:53

значит? Это значит, что мы пишем

41:54

спецификацию, потом пишем код, покрываем

41:57

тестами, а потом эту спецификацию

41:59

архивируем. Мы более на неё стараемся не

42:02

ссылаться. Почему? Потому что она

42:05

устареет очень быстро. Потому что код

42:07

является тем, что у вас на самом деле

42:10

живёт в системе, а, и он эволюционирует

42:14

постоянно, в него мёртжет там каждый

42:15

день, каждый час какие-то новые фичи.

42:18

Если вы будете опираться на устаревшую

42:19

спеку, у вас очень быстро агенты

42:21

начинают тупить, да, они смотрят

42:24

реализацию по спеке, смотрят код,

42:25

понимают, что всё, ну, вообще одно

42:27

другому полностью не соответствует,

42:29

начинают фигню какую-то делать. Поэтому,

42:32

а, всё очень просто. Архивируем спеку.

42:35

Вопрос: а как же тогда понять, а вот мы

42:37

снова что-то делаем? А как нам понять? А

42:40

как же сделано? Должна же быть

42:41

нормальная документация? Очень просто.

42:44

А-а, задаём агенту вопрос: как у нас

42:47

сделано, когда мы хотим какой-то новый

42:48

функционал сделать. Пишем новую

42:50

спецификацию. Соответственно, он нам

42:52

говорит, как сделаем. Мы на этой базе

42:54

пишем новую спецификацию. Мы не

42:56

цепляемся за старую. У нас код - это

42:58

исходная информация. по этой новой спеке

43:01

пишем код, покрываем тестами и снова её

43:04

архивируем. Вот это называется

43:06

specification Ren Development с

43:08

выкидываемыми спецификациями.

43:10

Вот. И а мой опыт в итоге, да, то есть я

43:14

вот так уверенно говорю, собственно, а

43:16

что это всё позволило сделать? А вот за

43:20

3 месяца, ой, за 2 месяца в три руки, ну

43:23

там в две плюс руки, там третий был, не

43:26

так сильно увлечёт. Мы сделали 1.000

43:29

автоматизированных полреквестов, да, там

43:31

тыся7 штук, я посчитал несколько тысяч

43:35

неавтоматизированных, да, то есть,

43:37

которые мы сделали через

43:39

ну, автоматизированный, я имею в виду, у

43:41

нас агент прямо коммитил прямо в

43:42

репозитории, да, мы просто нажимали

43:44

merge full request. А, несколько тысяч

43:48

фич/комитов, э, полуавтоматизированных,

43:52

когда ты у себя там в курсоре или в

43:54

кодексе это делаешь, а потом вручную

43:56

комметишь. А в проекте написано больше

43:58

600 бкэнд-тестов, там 50 фронт N2N

44:01

тестов. Вот этого, кстати, мало, да? Вот

44:03

этого мало, надо больше. Вот и это

44:07

реальная скорость разработки, ну,

44:10

порядка двух крупных фич в день или там

44:12

двадцати мелких фич в день, да, в

44:14

отличие от там 10 фич в неделю, что

44:18

бывает. Причём это разработка в команде.

44:21

И у нас было даже такое ощущение, что

44:25

какое-то просто сумасшествие, потому что

44:27

мы вдвоём, ну, прямо реально делаем

44:29

эквивалент двух там тире трёх команд по

44:32

10 человек. Мы все, да, все те, кто

44:34

работали над этим проектом, мы имели

44:37

большой опыт работы в, ну, серьёзных

44:40

командах разработки. И скорость мы,

44:42

конечно, развили, э, просто неимоверну,

44:45

да, вот такими вот способами.

44:48

То есть мы смогли сохранить скорость

44:50

индивидуального контрибьюшена, и при

44:53

этом мы смогли всё равно не просесть по

44:56

качеству, потому что вот эти

44:57

бэкэнд-тесты нас очень хорошо спасали.

44:59

Ну, вообще все, все подряд тесты нас

45:02

спасали. А напомню, у нас тестировщиков

45:04

в команде при этом не было, да, совсем.

45:07

Аа куда это всё улучшать? Улучшать очень

45:10

просто. Пишите больше тестов, ещё

45:12

больше, да, и в 10 раз больше. Ну и

45:15

следите за их качеством, потому что

45:16

иногда нейронки пишут тесты, просто

45:19

заглушки тупые какие-то совершенно

45:21

ненужные. За ними нужно иногда

45:23

послеживать.

45:24

А теперь последнее самое. И э у нас

45:28

останется, наверное, 5 минут ответить на

45:29

вопрос. Как внедрить это себе? Да, вот

45:32

вы сейчас посмотрели, такие: "Ой, это

45:34

какие-то сказки, у нас так не работает,

45:36

мы уже пробовали там ещё что-то".

45:38

Во-первых, нужен один человек, фанат, а,

45:41

который на себе знает, что это

45:43

эффективнее там 10-20 раз, да, он уже

45:45

это почувствовал, он готов это нести как

45:47

проводник. Далее, вам нужна отдельная

45:50

команда с экспериментальными процессами.

45:52

То есть вы не пытайтесь это на команде,

45:55

которая уже есть, развернуть сразу.

45:58

Скорее всего, будет большое

45:59

сопротивление. Сопротивление само по

46:02

себе сформирует негативный как бы

46:05

результат, да, потому что наш образ

46:08

мысли, он формирует, в общем-то, итог. А

46:12

негативный результат закрепится как уже

46:15

норма, новая норма, да. Мы такие: "Мы

46:17

попробовали вайпкодинг, он у нас не

46:19

работает". Да, будет вот так вот.

46:21

Поэтому пробуйте на отдельной команде. А

46:24

если у вас и если и когда у вас на

46:26

отдельной команде, причём здесь нужно

46:28

два-три человека, не более, да? два-три

46:31

человека начать, иначе слишком а-а ну

46:35

слишком большое вот трение по процессам.

46:38

А далее, когда вы вот в таком формате

46:41

сможете от этой команды добиться

46:43

результатов, уже ээ члены этой команды

46:46

идут другие, делают

46:48

становятся их ядрами и трансформируют

46:50

остальные команды в организации.

46:53

На этом всё. Да, я попытался рассказать

46:56

про своём о своём опыте выстраданном,

46:59

как делать вайбкодинг эффективно. А

47:03

давайте отвечу, с удовольствием отвечу

47:05

на вопрос.

47:08

>> Да, Глеб, спасибо большое. Коллеги,

47:10

во-первых, во-первых, спасибо за доклад.

47:12

Вот классный вызвал, мне кажется, очень

47:14

живую реакцию. Вот я в чате следил за

47:17

нашим чатом. Коллеги слушатели, вам

47:19

отдельное спасибо. Я получил большое

47:21

удовольствие. Вот тест-менеджер, значит,

47:24

внутри меня, которым я отработал 8 лет,

47:26

тоже, значит, получил удовольствие. Вот,

47:28

Глеб, ну, главный вопрос имхо, если

47:30

обобщить вот комментарии, сомнения

47:32

людей, когда они пытались примерить на

47:34

себя то, что ты говоришь, это область и

47:37

граница применимости такого подхода. То

47:39

есть насколько это работает там для

47:41

энтерпрайса, для больших проектов, для

47:43

проектов, где качество критически важно,

47:45

что происходит с архитектурой вот при

47:47

таком подходе вот, ну, и так далее, и

47:48

так далее. Как ты

47:49

>> видишь, классный вопрос. А на самом деле

47:52

очень важно вообще для AI-кодинга

47:54

критически важно с каким проектом мы

47:56

имеем дело, с какого объёма проектом.

47:58

Почему? Потому что если представить вот

48:01

это вот у нас длина контекста просто у

48:02

меня нарисована, а это вот, допустим,

48:04

условно разные сетки, а то ин проект -

48:07

это, допустим, 200.000 токенов, ну такой

48:09

средненький, маленький. Стартап там на

48:12

полгода шесть человек традиционным

48:14

способом. Это, допустим, две там 2 тире3

48:17

млн токенов, да, какой-нибудь, э,

48:20

корпорация,

48:22

а, если что, токены в строки перевести

48:24

так, разделите на 15, а, соответственно,

48:28

2 млн токенов - это что у нас там? Я

48:31

плохо делю на 15 уме. Аа что-то типа

48:36

100.000, да, 100 с копейками. А, раздели

48:41

130-10.000 токенов, да, это, ну, такой

48:45

как бы не не шибко не шибко большой

48:49

проект ещё вот 160 180, например, тысяч

48:51

строк. Но в корпорациях бывают проекты

48:53

на миллионы, да, на миллионы строк, на

48:57

десятки миллионов строк. Так вот, а вот

49:00

этот подход идеально работает на

49:02

маленьких проектах. А почему? Потому что

49:06

на больших проектах а там становится

49:09

проблемой. Там всё, там всё ещё узким

49:12

горлышком на самом деле является

49:14

агентский кодинг. Там вот эта часть, а

49:16

она вот она не в 10 раз ускоряется. То

49:19

есть на чем меньше проект, тем быстрее у

49:21

нас вот схлопывается стоимость

49:23

разработки. Маленький проект, там

49:25

действительно X20. Проект побольше, там,

49:27

допустим, X3. Проект совсем большой,

49:29

может быть, там X075.

49:32

Она, конечно, увеличивается не

49:34

настолько. Поэтому на большом проекте

49:36

можно жить на традиционном workкфлоу. На

49:39

самом деле, потому что разработка у вас

49:41

ещё не настолько сильно улучшается. Тем

49:44

не менее, она каждый месяц улучшается,

49:46

да, каждый месяц новые среды, новые

49:48

агенты, не знаю, какой-нибудь кодекс.

49:50

Офигенно уже круто работает с

49:51

контекстом, да? А и там в X2

49:54

производительности он уже даже на

49:56

больших проектах позволяет выжить и так

49:58

далее. И это будет схлопываться. Чем

50:00

далее это схлопывается, тем больше

50:04

ну больше оверхед на всё остальное. Вот

50:07

и всё. на больших проектах. Что ещё,

50:09

кстати, ну, как бы наоборот плюс, что

50:11

вот этот бульдозер, да, бульдозеры на

50:13

поляне, у нас поляна-то большая, мы

50:15

меньше мешаем друг другу. А поэтому

50:18

здесь как это вольница такая наступает.

50:20

На самом деле, я думаю, в какой-то

50:21

момент, когда вот эти агенты начнут

50:24

хорошо ориентироваться в контексте, то

50:26

большие проекты будут даже проще

50:27

маленькие в каком-то смысле. Знаете, как

50:30

даже в традиционном кодинге, когда ты

50:33

только начинаешь проект, обычно в него,

50:35

ну, в неё не засунуть там две команды,

50:37

там буквально там два человека начинают

50:40

какую-то вот бойлерплей делают, базу

50:42

делают, а потом уже там можно и пять

50:44

человек подключить. Они там поработали,

50:46

поработали, можно и 20 человек

50:48

подключить, да? То есть поляна

50:49

расширяется. Ну вот здесь точно так же.

50:52

Чем больше проект, тем, с одной стороны

50:54

overhead, э, как бы больше, с другой

50:57

стороны поляна шире, нам проще. А вот,

51:00

надеюсь, ответил.

51:02

>> О'кей, принято. Слушай, второй вопрос,

51:04

коллеги. Я, извините, вот я их записывал

51:06

все. Я, наглеп, могу тебе потом

51:07

передать. Может быть, ты в канале

51:08

разберёшься или коллег направим к тебе.

51:11

Слушай, а как с качеством? Ну, то есть

51:13

как вы убеждаетесь, что искусственный

51:15

интеллект не нагенерил каких-то не очень

51:18

качественных тестов, которые проверили и

51:19

стали все зелёненькие?

51:21

А потому что мы подключаем, ну,

51:24

во-первых, ты подключаешь ревюеров, в

51:27

том числе на тест, в том числе

51:29

агентских. А если у тебя есть сомнения,

51:32

смотришь глазами. Если ты глазами

51:35

смотришь и понимаешь, что там 3/4 тестов

51:38

молоко, ну, значит, что-то не так.

51:41

Значит, может быть, к твоей ситуации это

51:44

ещё не зрелый агент для разработки, но

51:47

там последнее время я считаю, что тесты

51:50

агенты пишут хорошо. А я не вижу такого,

51:53

чтобы они совсем вот 3 с 12, например,

51:56

год назад отвратительно тесты писал. Он

51:58

очень любил там, знаете, тесты типа ас

52:01

просто, да, прекрасный тест, конечно,

52:04

очень всегда зелёный, да, и вот в таком

52:06

духе. То есть он какие-то стабы писал

52:08

вместо тестов. В последнее время агенты

52:10

сильно поумнели, они просто прекратили

52:12

писать штабы вместо тестов. Но поэтому

52:14

достаточно на тесты несколько раз

52:16

посмотреть глазами, убедиться, что они

52:17

вменяемые, ну и всё. И отдать это

52:20

агентам.

52:23

>> Хорошо. Слушайте, ну что, коллеги, у нас

52:25

в целом время доклада подошло к концу.

52:27

Мы хотим оставаться в тайминге, поэтому,

52:29

Глеб, большое спасибо. Вот, давай мы

52:31

тебя отпустим. Коллеги, е, если что, да,

52:34

да, контакты спикеров можно найти. А

52:36

может быть, Глеб, кстати, останешься,

52:37

да, сейчас и в чате кому-то сможешь

52:39

прокомментировать.

52:40

>> Вот поэтому всех с вопросами и

52:43

комментариями по этому докладу

52:44

направляем непосредственно к спикеру.

52:46

Вот. А мы движемся дальше по нашей

52:49

программе.

UNLOCK MORE

Sign up free to access premium features

INTERACTIVE VIEWER

Watch the video with synced subtitles, adjustable overlay, and full playback control.

SIGN UP FREE TO UNLOCK

AI SUMMARY

Get an instant AI-generated summary of the video content, key points, and takeaways.

SIGN UP FREE TO UNLOCK

TRANSLATE

Translate the transcript to 100+ languages with one click. Download in any format.

SIGN UP FREE TO UNLOCK

MIND MAP

Visualize the transcript as an interactive mind map. Understand structure at a glance.

SIGN UP FREE TO UNLOCK

CHAT WITH TRANSCRIPT

Ask questions about the video content. Get answers powered by AI directly from the transcript.

SIGN UP FREE TO UNLOCK

GET MORE FROM YOUR TRANSCRIPTS

Sign up for free and unlock interactive viewer, AI summaries, translations, mind maps, and more. No credit card required.