«BizOpsDev и самоорганизующиеся команды программистов»
🎙 Разговор на Team Lead Talks
Почти два часа без слайдов и без модерации.
Три человека обсуждают то, о чём большинство подкастов предпочитает молчать:
почему самоорганизующиеся команды работают,
почему их всё равно убивают,
и почему через полгода начинают строить заново.
Сверхпроводящие датчики, треугольник Серпинского, банковская система на Oracle в 93-м, водоканал на четыре человека — и ни одного product owner’а на протяжении всего разговора.
Лаборатория 321 и коэффициент трудового участия [00:30]
Ведущий: Всем привет, добро пожаловать на новый выпуск подкаста Team Lead Talks. Сегодня у нас в гостях Сергей Буш — апологет подхода самоорганизующихся команд и подхода, который он называет BizOpsDev. Это амальгамация разных линий: Team Topologies, Cynefin, Деминг, системное мышление. Сергей — очень активный участник нашего закрытого сообщества Team Lead Talks. Если я что-то упустил, Сергей, — какой у тебя питч обычно про себя?
Сергей: BizOpsDev — это лучший питч про себя. Ещё у нас всё *321. По ходу пьесы, когда совершим пролёт над гнездом кукушки, или психушки, или 321, — всё раскроем. Отдельного питча нет, но лучшее, что можно сказать — BizOpsDev.
Ведущий: Давай начнём с 321. Если посмотреть на твой LinkedIn — 321 буквально с девяностых годов. Что это означает? Сейчас это даже как «в степени 321».
Сергей: Я учился в институте достаточно успешно и должен был сделать карьеру учёного, если бы не Перестройка. Меня угораздило попасть в ведущую научно-исследовательскую лабораторию Омского политехнического института. Она называлась просто — лаборатория 321 шестого корпуса. Воздействие на мою жизнь оказалось фундаментальным.
Когда встал вопрос, что надо делать своё дело — мысль была только одна: называем лабораторией 321. И с тех пор у нас всё 321: app321, HardSoft 321. Я десять лет занимался инженерно-строительным бизнесом — даже «Фасадстрой 321» был, единственная в Омске лицензия на работу с памятниками строительной архитектуры.
Если нам не врут все ведущие спикеры на тему Agile и софтовой разработки — самая близкая модель к разработке софта и команде — это научно-исследовательская лаборатория. Мы обязательно этого коснёмся.
Ведущий: То есть 321 — это история формирования твоего профессионального отношения к миру и к работе?
Сергей: Абсолютно. Шок, шок. Я начинал в Совке, Перестройка началась 39 лет назад. Я совковый мальчик, успешно учащийся в институте. Закончил с красным дипломом. Нас было четыре человека с красным дипломом, и всех краснодипломников приводят на смотрины в эту лабораторию. Меня распределили туда как светоча.
Начинается Перестройка, мы работали на ведущий омский НИИ по понятной тематике. У нас был руководитель — Геннадий Кривой, повезло с фамилией. Он был светоч, на нём всё держалось. Потом начинаются подрядные договора. Деньги теперь не по штатке, весь коллектив должен собраться, коэффициент трудового участия проставить самим.
Сергей: Садимся первый раз, начинаем проставлять коэффициент трудового участия. Вы представляете шок? Геннадий получает самую низкую оценку! Двойку. Почему? Потому что мы все работали, все друг друга видели за паяльником, а он как бы не работал. Он — руководитель. Он смотрел, что-то подсказывал.
Ведущий: Когда все будут слушать про эту двоечку научному руководителю лаборатории, все менеджеры слезу смахнут.
Сергей: Это был шок. Все сидели в подавленном состоянии. Никому даже в голову не пришло... Мы напрямую оценивали, кто сколько за паяльником просидел, сколько физически времени потратил.
Закончилась наша лаборатория трагически. Как только занавес приподнялся — Геннадий Кривой исчез. Он что-то знал, чего я ещё не знал, о чём мои родители не говорили. С этого момента закончилась лаборатория 321 политехнического института. Пришло время двигаться самим.
СКВИДы, Серпинский и рождение complexity-мышления [10:25]
Ведущий: Ты говоришь, что лаборатория — это то, что больше всего похоже на разработку софта. Что там происходило? Как была организована работа? Сама организация была не очень видна — вы двойку поставили руководителю, который, я подозреваю, всё-таки организовывал вам пространство, где вы могли работать.
Сергей: Как раз происходила самоорганизация. Мы занимаемся задачами, на которые нет ответов. Готовых процессов, как надо вести научно-исследовательскую деятельность, — нет. Кто-то с кем-то кооперируется, как-то решаем. Когда упираемся — идём к Гене, и Гена решает все вопросы. Он обеспечивал финансирование. Внутри лаборатории мы были абсолютно свободны. Будущее выглядело по советским меркам прекрасным: в мире всего четыре лаборатории занимались такой тематикой.
Чтобы вы представляли, что такое сверхпроводимость: мы ездили в Новосибирск, в ИЯФ, там нам в сосуд Дьюара загружали гелий с азотной шубой. На поезде ехали туда с Дьюаром, обратно с Дьюаром, окунали свои штанги. Моя дипломная — я спаял электронную модель ПТ-РЕСКВИДа.
Что это такое? Есть сверхпроводящее кольцо, настоящий сверхпроводник, где сопротивление не очень низкое, а реально ноль. В нём делается тонкий диэлектрический переход — переход Джозефсона, квантовый эффект. В кольцо вставляете маленький резистор, чтобы подать напряжение. Если сможете это устройство заставить работать, у вас получится преобразователь напряжения в частоту, в котором нет ни свойств металлов, ничего — только мировые константы. Абсолютный преобразователь.
Но частоты — гигагерцы, реальными измерительными приборами посмотреть ничего невозможно. Надо было спаять электронную модель. Компьютерная техника не тянула. Я спаял и получил вольтамперную характеристику.
Если вы с фракталами в жизни сталкивались — вольтамперная характеристика ПТ-РЕСКВИДа — это лестница Кантора. Натурально. А узнал я об этом только в 1994 году. Защитился в 88-м, а в 94-м на стажировке в Англии читал про теорию хаоса нелинейных систем. Сложились две вещи: я исследовал complexity — сложные нелинейные системы, которые не решаются в виде уравнений, — и в то же время столкнулся с тем, что самое сложное — это люди.
Я могу с тобой провести небольшой эксперимент. Как только люди говорят слово «система», у меня есть две бумажки в моём телефоне, всегда со мной. В треугольнике и в квадрате мы строим множество точек. Первая точка выбирается произвольно. Случайный генератор выдаёт номер вершины — до этой вершины проходишь половину расстояния и ставишь следующую точку. Генерим тысячу точек. Как будет выглядеть: в треугольнике или в квадратике?
Ведущий: Я смотрел этот выпуск. В треугольнике возникает фрактал — треугольник Серпинского.
Сергей: Да. Когда у вас есть система нелинейных уравнений — а всё живое описывается системой нелинейных уравнений, — основное свойство этой системы не в самих уравнениях. В квадратике — белый шум, а в треугольнике получаешь фрактал. Меня это вынесло.
Написал программку на Бейсике в Excel, просто потому что не поверил книжке. И в той же книжке, несколько страниц дальше, увидел свою вольтамперную характеристику. Мой руководитель считал, что она не работает — а она тупо работала. В 94-м я метнулся в институт, пытался найти свою дипломную, хоть что-то, — ничего не сохранилось. Эти чертежи, графики, рваные — людям в голову не могло прийти, что такая вольтамперная характеристика бывает.
А там резонанс, если классическим языком говорить. Система находится в возбуждении, и у неё есть аттракторы. Для треугольника существует аттрактор. И для вольтамперной характеристики ПТ-РЕСКВИДа — лестница Кантора. Я был в восторге.
Ведущий: Получается два формирующих момента из истории лаборатории. Первое — люди могут совершать неизведанные вещи, когда они занимаются самоорганизацией: нужны деньги, чтобы не беспокоиться, и более-менее направление. Второе — в реальности есть странные вещи, где из простых начальных условий возникает что-то непредставимое.
Сергей: Люди меня поразили больше. Когда это случилось с нами как с людьми, я понял: самое сложное, что есть, — даже не СКВИДы, не нелинейные уравнения, а организация людей. Я состоялся и как инженер, и как руководитель, считая, что самое важное — организовать людей так, чтобы они себя проявили наилучшим образом.
Позже я осознал: и для софта это лучшая тема. Не я говорю — говорят Мартин Фаулер, Дэйв Фарли, Аллен Холаб, Боб Маршалл: самая близкая модель — ни в коем случае не стройка, не что-то остальное. Научно-исследовательская лаборатория, комплексный домен, Cynefin Framework.
Первый бизнес и первая АБС на Oracle [16:42]
Ведущий: Как ты применил эти идеи на практике? Ты начал говорить про первую коммерческую организацию.
Сергей: Мы сразу пришли к IT, потому что компьютеры в институтах появлялись раньше, чем где бы то ни было. Стоили чудовищно. Опыт программирования я освоил ещё в лаборатории 321. Мы программировали крейт КАМАК — шкаф, в который втыкали не только компьютер, но и информационно-измерительные приборы. Моя специализация — информационно-измерительные приборы: датчики, погрешности, шумы.
В августе 1990-го Горбачёв выпустил указ, что можно создавать малые частные предприятия в любой сфере. Мы были первым частным предприятием города Омска, нас снимал телевизор. Первый независимый контракт — УСМР-4. Сделали CRM-систему на Unix с терминалами и обработкой заявок. Язык — Си.
В 1992-м случился квантовый переход. Я устроился в банк ненадолго — как думал, месяца на три: проконсультировать, помочь с выбором банковской системы. Закончилось тем, что мы написали с нуля банковскую систему. В октябре 93-го запустили — думаю, первую, в худшем случае вторую — АБС на Oracle в России тех времён.
Ведущий: АБС — это автоматизированная банковская система?
Сергей: Да. Тогда все банки были централизованы. Стояла мега-машина в Центральном банке, наутро приходили распечатки — портянки на барабанном принтере. Мы отключились в октябре 93-го, ушли в самостоятельное плавание. Квартал работали в пилоте: получали данные из Центробанка и сравнивали со своими. Потом отцепились.
Профинансировал я это — не поверите — на корреспондентских расчётах. Всё было безумно дорого, железо дорого. Расчёты могли идти месяц. Мы пооткрывали корреспондентские счета — минуя Центробанк, с новосибирскими и московскими банками — и ускорили расчёты для клиентов.
До этого я заработал на чеках России. Весь банк был облеплен, как мухами, представителями организаций, заполнявших чеки руками. Гелевые ручки тогда стали взрывом бизнеса — ими можно было писать на стене, стол не нужен. А у меня был двадцатичетырёхигольчатый принтер. Я обрабатывал прерывание с принтера — вставляешь новый чек, он обработал. Двадцатичетырёхигольчатый давал брак не больше процента. Никто в России тогда такого не печатал. Даже подлинность проверяли по фразе «Напечатан на принтере» — «Да, это наш».
Ведущий: Автоматизированная банковская система — что туда входит?
Сергей: Кор-бэнкинг. Система счетов, баланс. У банка всё должно биться день в день — отчётность нельзя собирать раз в месяц. Касса, где хранятся настоящие деньги, — нельзя закрыть, если не сошлось. Точность абсолютная каждый день.
Мы написали балансовый учёт. В чём выигрыш? Когда приходит проверка, девочка убегает в подвал и может день не вернуться, потому что физически перебирает документы. Мы в проводке записали, где первичка лежит — она пошла и тут же вернулась.
Сергей: Потом мы сделали банк-клиент. Тогда модем звонил — музыка была. Клиенту нажать кнопку, мы организовали транспорт, PGP-подпись — платёжка к нам уехала. И мы сделали так, что операционистка видела её у себя в том же Excel, добавляла пару полей и апрувила. Первый банк-клиент — и не потребовалось ни одной линии поддержки. Никакой первой, второй, третьей. Операционистка полностью видела, как работал клиент, в своём интерфейсе.
Следующая знаменательная история — Омский водоканал. Он пришёл через Жилсоцбанк, в котором обслуживалось ЖКХ. Две команды автоматизаторов до нас штангу не подняли. Руководитель сказал: «Слушай, у нас тут какой-то чудесный банк, такого нигде нет. Пойди к этим ребятам». Вот так я познакомился с Омскводоканалом, с настоящим красным директором.
АБС до сих пор работает, хотя организация уже не существует. Отключили пару лет назад, потому что выписки за чёртову гору лет нужны.
Водоканал и секретное оружие: инструмент не главное [27:05]
Ведущий: Тот банк был твоим первым опытом, а водоканал — повторение. Ты заикнулся про команду. В чём было секретное оружие? Питер Тиль писал, что их секретным оружием был Лисп — когда все писали на Си, они писали на Лиспе. А у тебя секретным оружием была команда.
Сергей: Я вообще не верю в секретный инструмент. Инструмент не играет роли. Процитирую Линуса Торвальдса: «Вы не поверите, какие вещи могут вытворять люди, если они владеют какой-то системой или какими-то кодами».
У нас был выбор: Oracle на Unix или Novell с Btrieve на Windows. Склонялся к Oracle. На Novell с Btrieve делали real-time эмулятор плавания на корабле в Омско-Иртышском пароходстве — парень мне сказал: «Как только серверов больше пяти-шести, мы не понимаем, что происходит». В 93-м я встретился с Сибирским торговым банком — огромнейшим, корреспондентские расчёты через них превосходили в несколько раз расчёты через ЦБ. Они спросили: «А как вы работаете?» Я с 386-го ноутбука по обычной линии зашёл в свой банк, показал, как онлайн идут операции по счетам в Oracle/Unix.
Но секрет был не в этом. Секрет — команда из четырёх человек, в которой мы распределяли задачи исходя из здравого смысла. Постоянный здравый смысл. И нам был дан такой же карт-бланш, как в институте.
Есть у меня любимый фильм — «Лоренс Аравийский». Лоренс со своим другом-арабом бредёт по пустыне к колодцу. Издалека на верблюде приближается чувак и с огромного расстояния стреляет другу Лоренса в голову. Убивает. Ему говорят: «Ты что делаешь?» Он отвечает: «Он — ничто. Колодец — это всё». Большинство, когда смотрят, думают: мир не сильно изменился. В пустыне колодец важнее человеческой жизни.
Сергей: Когда мы говорим про платформы и системы — я использую только слово «инструмент». Нет никаких платформ, нет никаких систем, есть только инструмент. Желательно с открытыми кодами. А как люди сорганизованы — это 95% значимости. Unix и Oracle нам просто было легче. Мы сами как команда решили, нам никто не говорил. Нам сказали: надо решать проблему. Мы её сами решили. И на Novell взлетели бы — просто испытали бы больше болей.
Ведущий: Я пытаюсь переложить это на современные реалии больших компаний, где IT выглядит как центральное. Огромные платформы, которыми пользуются миллионы. Большая разница: в банке не было ситуации, что у вас годовой бюджет, который у вас не спросили. Что вы должны потратить ровно столько, не больше, не меньше. Что клиент где-то там далеко, достучаться до него тяжело, а «клиентоориентированность» спускается сверху.
Сергей: По сути так и было. Надо было сделать первичную автоматизацию. «Делайте IT». Был страх, что москвичи всех сметут, и омский банк обречён.
BizOpsDev была всегда в начале [37:26]
Сергей: Я в одну брокерскую компанию заходил как консалтер. Прихожу — там унылый конвейер, всё плохо, куча людей, всё делается долго и дорого. Рассказываю: давайте попробуем Agile. Они: «О, так у нас уже был Agile, не работает». Можно было возмутиться: «Вы что, с ума сошли? У вас был не Agile». Нет.
У всех компаний, у всех стартапов, любой новой темы — ты всегда начинаешь Agile. Мало ресурсов, ты собираешь команду. И это очень важный момент. Эта команда — всё и вся. Она первая, вторая, третья линия поддержки. Она находит ключевых специалистов, ради которых этот софт делается. Это BizOpsDev-команда. И она всегда была в начале у всех. У кого-то неуспешно завершилось, у кого-то успешно.
Проблема начинается, когда этот первоначальный успех объявляется детством. Теперь повзрослел, теперь пора «по-взрослому». С этого момента начался настоящий дэмидж. Надо было просто дать этому расти. Это бы деревце выросло в огромный дуб.
В команде из четырёх человек мы поддерживали не только банк. Потом сделали команду в четыре человека в Омском водоканале. Это город-миллионник. Все интеграции со всеми службами закрыли. Надо было уже придумывать, что надо. Устойчивая команда — четыре человека. Если функциональных задач было бы больше — сделали бы две по четыре, сами бы договорились, как разделить, Domain Driven, чтобы перетеканий не было.
Если вы почитаете всех классиков, — первая ошибка когда? В 2006-м это обнаружил Amazon: когда сопровождение, Operations, было отделено от девелопмента. Он тогда не родил термин DevOps — он это всё писал.
Ведущий: «You build it, you run it».
Сергей: Ещё более правильно. Ребята, которые сопровождают, — они должны иметь первое слово. Они должны разрабатывать. Если вы в таком режиме — команда работает. Потом пошло разделение — отделили программистов от сопровождения. Operations было ослаблено, фактически выброшено. С этого момента IT стало стоить денег, значимо в операциях, — откуда туда люди пришли? Из электроники, из компьютерного производства. Но производство компьютеров — совершенно другое, чем заказная разработка или последняя миля, кастомный софт.
Нигде бизнес не хочет, чтобы с ним разговаривали через хелпдеск. Они хотят общаться с лучшими. Если с директором — со мной. Если с разработчиками — со светочами. Мы так делали везде. Я как нож вхожу в любую организацию внутрь, потому что от этого отказаться невозможно. Иногда приходится создавать IT-подразделение на стороне бизнеса, потому что большое IT уже не перестроить. Оно уже обречено.
А почему термин BizOpsDev родился только сейчас? Пандемия, переезд и свободное время. У меня был друг в 90-е, уехавший в Канаду. Он сказал: «Откуда я знаю, что я думаю, пока я не сказал?» Пять баллов. Особенно в свете современного AI. Пока ты не сказал — ты не знаешь, что подумал. BizOpsDev как термин — родился. У нас всю дорогу BizOpsDev. Сформулировали мы его последний год-два.
Четверо без ролей: определение BizOpsDev [42:46]
Ведущий: Давай обозначим. Biz — человек от бизнеса в команде. Ops — Operations. Development — программисты. Причём программисты и Operations обычно одно и то же. Как DevOps, только наоборот. Немножко похоже на Scrum-команду, где есть Product Owner.
Сергей: Есть Аллен Холуб — рекомендую его в Твиттере и в Линкедине. Нет чётких ролей. Смысл команды: маленькая команда в четыре-пять человек — самая эффективная. Меньше чем два-три — в IT не работает. Четыре-пять — отлично. Нет чётких ролей. Можно сказать, что он лидер, что он тимлид — может быть, даже сам человек с этим не согласен, потому что он понимает: его тимлидство — только выглядит, что это он. Без этих людей он ничто.
А как же тысячи сотрудников? Например, Банк Открытие, в котором мы внедрили CRM: активных пользователей — тысячи ежедневно, логинов — 8–10 тысяч. Как справляемся? Тут начинается мэджик. Ключевые специалисты — продвинутые пользователи. Мы написали документацию по какому-то куску — выбросили. Сейчас делаем автотестом. Кросс-функциональный тест не только тестирует регрессионно — он генерит заготовки пользовательского сценария работы. Отдаём ключевому специалисту, который не научными терминами пишет, а как это есть на самом деле.
Самое смешное — он становится нулевой линией поддержки. И его дружки по всем регионам не звонят нам, не пишут нам. Он вместе с нами — первая и последняя линия поддержки. В водоканале было 300 непрерывных пользователей. Зато задачи сложнее.
«Мы нарушили все известные практики ведения задач, отказались от привычных ТЗ, совещаний в пиджаках и долгих обсуждений с умным видом. Мы просто выстроили честный диалог с руководством и стали работать в удобном нам режиме.»
Когда внедряется существенный кусок — все четверо в момент внедрения работают на первой линии. Все. В обычном режиме есть аналитики, часть нашей команды — они снимают основные вопросы. У нас есть девочка в команде, Марианна, помягче, полегче — она общается. Но бывает, что все работают на первой линии. И все программируют. Нет деления. Product Owner нет.
Когда вы читаете Team Topologies — там есть всё тело. Фантастическая книжка. Stream-Aligned Teams. Только это труп без головы. Головы не хватает — она прострелена тем чуваком у колодца. Потому что ключевых специалистов не хватает. Когда всё это соединяют — у нас это выглядит как Product Owner. Product Owner — связующий. Да вы с ума сошли. Не может быть Product Owner. Никаких лишних людей не надо. Прямо непосредственно ключевые специалисты, которые с утра до вечера этим пользуются.
Что ещё ухудшает ситуацию? Саппорт. Он параллелен. Мы разработчики — даже сказав «наша главная задача разрабатывать», мы сразу поставили себя в пораженческое положение.
Чтобы в крупном IT что-то поменять сегодня, нужно либо объединять Operations со Stream-Aligned Team (тяжело), либо в бизнес вставить мини-IT-командочку, куда соберутся ключевые специалисты. Немножко усилим программистами, чтобы дальше разговаривали на языке программистов. Будет распределённый BizOpsDev. Можно всё это отдать туда. Пускай в бизнесе живёт, а большое IT — высокоуровневый IT-разговор. Этих Stream-Aligned Teams просто нет. Заходит совок и внедряет метрики вместо того, чтобы создать эти команды.
Если есть у вас BizOpsDev-команда — это дерево, на котором существуют все остальные ветки: платформенные команды, Enabling Team и прочее. Это стволовое, это самое главное. Но все занимаются — в Тинькове, в любом банке — платформами, процессами, Скрамом. Аллен Холуб говорит: Скрам не имеет никакого отношения к Agile. Единственный случай, когда Скрам можно применять — когда люди сами по какой-то причине это решили.
Ведущий: Хочется пример. Кто такие ключевые специалисты, программисты. Biz — эти, Ops — эти, Dev — эти. На примере любого приложения.
Сергей: OpsDev не делится. Все разработчики. Если приходит человек и говорит: «Я хочу только разрабатывать, сопровождение не моё», — до свидания. «Я пишу только на Oracle» — до свидания. Мы пишем на том, на чём пишется.
Банк Открытие. Был кредитчик, заинтересованный парень. Занимался выдачей кредитов. Мы никого не задействовали — он сам вовлёкся в нашу работу. Стал для нас и хелпдеском, и работал с операционкой. В операционке нашли пару продвинутых девчонок. Само руководство там оказалось толковое. И всё. Мы оказались BizOpsDev. Мы не первый день банками занимались.
Как снежинка — нельзя заранее нарисовать рисунок снежинки, как распределим. То же самое в водоканале. Специалистов нет. Нашли девчонку, забросили её в штат водоканала как аналитика. Она разбирается, мы разбираемся, выросли. Потом от каждого направления такие девчонки — три были очень ключевые. Они самые продвинутые пользователи, и они же нулевая линия поддержки.
Ведущий: Как в химии — к атому другие подсасываются. Таких ячеек может быть много — получается фрактал.
Сергей: Да. А проблема роста возникает, когда приходят люди и говорят: «Теперь надо сверху поставить директора этих директоров».
Ведущий: Я могу открыть Team Topologies.
Сергей: Открывай, прямо важно. Там написано про разрушение невероятно эффективных Stream-Aligned Teams.
Ведущий: Третья глава, Team First Thinking. Цитата Аллана Келли: «Disbanding high-performing teams is worse than vandalism. It is corporate psychopathy». Разрушение высокопроизводительных команд — это хуже, чем вандализм. Это корпоративная психопатия.
Сергей: Давай прямо остановимся. Эта проблема настолько ключевая, что в одной из важных книг в менеджменте по IT — оно стоит где-то одной строчкой. Team Topologies абсолютно не даёт рецепта. Мы сейчас пытаемся это распаковать, и вам должно быть тяжело — этого просто нет.
Ведущий: Наш коллега Александр Щепановский приводил такую аналогию — три эпохи развития компании. Первая — эпоха героев: ключевые специалисты, неважно на каком языке, главное решить задачу, начальник им не нужен. Вторая — эпоха лидеров: вокруг героев создаются отделы. Третья — эпоха толпы: лидерам скучно, они уходят, структура неживая. Шашечки есть, а такси не едет. Люди-коробочки — Java-сервис, который не хочет знать, что за конвейер, по которому он едет.
Сергей: Очень хорошая аналогия, только тут два этапа. Самоорганизующаяся команда, BizOpsDev — и после этого корпоративный киллинг, конвейер. Мысли нет подумать, что команда вперёд.
Скаляр, сталь и уборщица [58:34]
Сергей: AI оказывает огромную службу человечеству, но не в том смысле, как вы думаете. Он показывает, что наши нейронные сети похожи на человека. И даёт нам одну важную подсказку. Попытаюсь коротенько, минут на сорок, объяснить.
Вначале автоматизация делалась — нам говорилось: человек ненадёжен, роботы надёжны. Поэтому тупые операции должны выполнять роботы. Отсюда и растут ноги умного конвейера. Ненадёжный, ошибающийся человек, принимающий неправильные решения.
AI сейчас стоит — рядом с атомной станцией Microsoft строит свой ЦОД, чтобы AI веселее отвечал. Но это оказалось полный BS. Это был маркетинг. А теперь вдруг мы обнаружили: эти простые сеточки с коэффициентами... В 94-м году, кстати, кроме хаоса я ещё обнаружил Fuzzy Logic. Самые примитивные нейронные сети. И уже эффект был чумовой. Тряска из камеры убралась. Бетон смогли замешать — до этого автоматизировать не могли. Чувак стоит, на глаз глянул. AI — Human Intelligence. Его это не пугает. Хоп — и замесил. Смогли наконец-то парковать машины. Простейшие сетки дали результат.
И теперь мы в состоянии сымитировать немножко человеческую психику. И что обнаруживаем? А нифига не понятно. Появились словари, переводы. Это как на срез головы посмотреть — смысла никакого. Построили модель, немножко похожую на то, что мы есть, — и уже офигеваем. И опять сразу пытаемся заменить тупого человека. Постоянно продаётся: люди — ничто, конвейер — всё, процессы — всё, и нам нужен AI. Человек нам не нужен. Хотя каждый человек несопоставим.
Если подумать, как формируется наше тело — на самом деле это и есть наш мозг. Ещё не родились — мы уже как BizOpsDev-командочка подключились к большому телу. С момента зарождения через нас пошли датасеты. Грузят, грузят, грузят. Потом вылупились, и в чудовищном объёме датасеты продолжаются.
Когда человечество попытается к этому приблизиться — это как в космос мы вышли, но до ближайшей звезды — никогда с нашими технологиями. AI, которым мы сейчас поражены нафиг, — мы просто вышли в космос. До человека — никогда.
Сергей: Это подсказка, что мы просто не ценим человека. Платформы — всё, AI — всё, конвейер — всё, процессы — всё. Мы ищем процессы — не находим. Потому что — человек.
Представим, что в каком-то будущем придумали скаляр. Реально, intelligence можно заскалярить. Среднее по человечеству — скаляр 500. AI может скалярить всех нас, посмотрев одно видео. Эйнштейн — 501.2. Уборщица, которую просто под скаляр подвели, — 499.9. Потом просканировали уборщиц и обнаружили, что есть уборщица со скаляром 502.
А потом обнаружили: если брать отдельно — у них вот такой скаляр. А если брать человека с учётом группы, с которой он работает, или семьи, в которой он живёт, — средний 5000. И это и есть team thinking.
До школы мы уже совершенные разработчики ПО. Нам только дайте время, и мы этот инструмент освоим. За два года я оказался на передовом исследовании. Берёшь любого человека, не мешаешь ему жить, а тем более команда — готовая команда обладает порядками величин по мощности.
Ведущий: Ты как будто себя немножко преуменьшаешь в прошлом. Говоришь, что за два года как нулевой человек вышел в науку. Но у тебя был красный диплом, вас таких было не очень много. Из этой условной элиты, самых умников, взяли и собрали лабораторию. У нас сегодня в воскресенье выйдет интервью с Principal Engineer в Apple. Он сказал про Google: заблуждение, что Google нанимает программистов. Google нанимает умников, которые ещё и умеют программировать. Команда не может состоять из средних программистов. Там должен быть высокомотивированный, высококлассный специалист.
Сергей: Дима, просто лучший вопрос. Ты попал в яблочко. В этом-то и есть весь парадокс: не надо набирать самых умных. Это проблема. Самые умные, прошедшие школу и институт, — уже разучились работать в команде. Чтобы сложиться как командный игрок, им нужен делёрнинг. А это невозможно. У него карьерный рост. Попёр вперёд.
Существует контора в Омске, у которой нет никакой процедуры найма. Никогда не было. Называется лаборатория 321. Мы с супругой посчитали: через сколько прошло программистов? 45 человек. Сколько из них, когда они вышли, считались джизусами программирования? 17. Это что за процент? Это что за процент в Омске? Там что, источник умников? Условия создают. Закон Деминга — 95 на 5. Если система даёт тебе раскрыться — поверь мне.
Чем отличается сталь от железа в химическом смысле?
Ведущий: Допингом. Небольшой примесью.
Сергей: Примесью. Можно включить мозг и попытаться возразить Бушу — сказать: углерод — это же алмаз, он тоже углерод. Или про легированную сталь: буквально доли процента фантастически меняют свойства.
Но у меня пример погрубее — супруга просила ничего такого не говорить на видео. Я считаю: основная масса углерода — это говно. Поэтому железо с говном — это сталь. Мы — flesh. Слабая, ошибающаяся, нуждающаяся постоянно, чтобы за нами присмотрел менеджер.
Сергей: Самостоятельная команда — это взрослые люди, они сразу взрослые. Это не джуниоры. Нас окружает реальность — это complexity. Треугольники Серпинского, фракталы — и мы как-то в них живём без проблем.
А потом нас начинают... Советская школа и русская школа — это худшая форма обучения. Тебя приучают быть одному. Со школы — твой индивидуальный успех. Институт — ещё большая нагрузка, хотя многие считают это лучшим временем. Ты всё равно один: есть ты, твой диплом.
Если бы не сложилась эта группа друзей, которые получили эти красные дипломы, — ни у кого не было бы красного диплома. Каждый из нас получил красный. Если бы минус один человек — все бы вышли с синими дипломами. Нет скаляра. Мы живём в complexity. Дай команде сформироваться — и они составят magic. Надо полгода.
Соведущий: У тебя в LinkedIn есть презентация про BizOpsDev — удвоение числа таких команд возможно каждые полгода. Откуда это число?
Сергей: Эмпирически. Откуда я знаю, что знаю? Это как с AI. Оттого, что ты увидишь узлы, соединения, решётки, — ты можешь его спросить, и он тебе скажет, что думает. Большая подсказка. Убогий AI является убогим подобием нас, но он даёт нам подсказки про нас. Мы продолжаем жить, через нас продолжают идти датасеты. Я знаю, что команда расширяется: берёшь новеньких — если приживаются, через полгода можешь удвоиться и отделить.
Команда как сервис и когнитивное облако [66:55]
Сергей: А примеры — глава 3, строка 1. Как я оцениваю развитие IT за 40 лет? Несмотря на попытку войти в землю обетованную с помощью свободного ПО, — это скитание по пустыне. Мы сорок лет скитаемся в пустыне. И теперь пришёл момент войти в землю обетованную. BizOpsDev.
Мы находимся под давлением всегда. Основная проблема — бизнес не понимает: командам нужно просто дать направление. Независимо от того, краснодипломников или синедипломников набрал. На водоканале нет ни одного краснодипломника. Им просто равных нет. Весь «Росводоканал» работает теперь на усечённой версии нашей программы, потому что без нас не смогли поднять. Часть кусков отбросили, которые были неподъёмными.
Ведущий: А в тюрьме сейчас макароны.
Сергей: Это не про макароны. Это отсылка к Писанию: «А где мясо? Там, в Египте, мясо было». Когда я был в Англии в 2004 году, познакомился с одним пастором. Он сказал: «Через 40 лет, может быть, Россия будет свободна». Я на каком позитиве туда поехал — единственный человек, который прошёл по специальной программе, которую Тэтчер договорилась с Горбачёвым, чтобы дать финансистам и банкирам стажировку в Англии. Но перед рассветом темнее мрак.
Почитайте Алистера Кокбёрна. Он говорит: во всех теориях — в этой основе — есть всё, что нужно. Что такое Agile-манифест? Методология, система? Нет, это как притчи. Несколько тезисов, которые мы как AI — Human I — никакого AI не будет, будет только Amplified Intelligence. Этот AI, что мы имеем, — просто инструмент. Он будет нас усиливать. Но всё самое важное случается здесь.
Многие вещи в любой теории понастроены сверху консалтерами, для бизнеса, для сертификации. Это не нужно. Мы эту реальность воспринимаем как она есть. Ты за окно смотришь — реальность. Твоя семья — реальность. Помочь могут только простые посылы, которые ты попробуешь в своей жизни. Всё пробуйте, лучшего держитесь.
В Agile — четыре ценности и несколько принципов. Ты их прочитал — больше ничего не нужно. Ни скрам-гайда, ничего. Ты есть вершина AI-творения, и каждый из нас — вершина. Фокус в том, что по отдельности наша мощность теряет порядок величины. Нам нужно найти наше сочленение.
Вы вдвоём — для меня это тоже подтверждение BizOpsDev. По отдельности вы потянули бы то, чем сейчас занимаетесь? Из Писания: «Если соберутся двое или трое во имя Моё — то Я среди них». Это сложная система. Если собрались двое или трое для достойной цели — вы будете наблюдать magic.
У нас, кроме BizOpsDev, есть Team as a Service — команда как сервис. Чтобы такая команда сложилась — полгода-год. Через три года то, что она в состоянии сделать, сопоставимо с тем, что можно ходить по воде. Всё остальное — аутстаффинг, аутсорсинг — не то. Эти команды — настоящее ядро. К ним можно подключиться только в ёмкости одного виртуального человека. Ты не покупаешь конкретного программиста — ты покупаешь сервис определённого направления. Надо программиста — поворачиваются боком программистом. Надо аналитика — поворачиваются аналитиком. Надо с бизнесом ходить, обосновывать — идут.
Большинство хорошего IT знает, чего не надо делать, и отказывается это делать.
Закон Конвея, закон Галла и семечка роста [73:48]
Ведущий: История про то, что у нас с IT что-то не так, что мы скитаемся по пустыне, — если консультантов слушать, никто не скитается, все уже пришли. Но если послушать просто людей, которые работают, — по факту все знают, что что-то у нас с IT не так.
Сергей: Ты не можешь себя обмануть. Не ври себе.
Ведущий: Есть несколько моментов. Например, закон Конвея — архитектуры систем повторяют способы коммуникации. Team Topologies выстроено вокруг того, что можно провести обратный манёвр Конвея — выстроим коммуникации, и системы, инструменты выстроятся следом. Но с точки зрения BizOpsDev — это вещи, о которых нет смысла говорить. У этой Stream-Aligned Team отсутствует голова — часть, которая принесла бы смысл. Какая разница, как эффективно работают процессы и какие инструменты, если вы делаете не то?
Сергей: Абсолютно. Всегда надо смотреть систему целиком. Ты должен подниматься как можно выше. В бизнесе верхний уровень очевиден — видна вся организация. Ты должен с неё начинать. Чем хорош BizOpsDev: главное — найти, где воткнуться, где бизнесу реально нужно IT. И всё. А дальше эти BizOpsDev-команды из себя выделят enabling teams, выделят платформенный тип. Они между собой нейроны пробьют — эти команды как сервис, связи.
Ведущий: Ещё — закон Галла: любая работающая сложная система, если посмотреть в прошлое, без вариантов выросла из маленькой работающей простой системы. У нас есть компания: классическое IT, продукт, тек, аналитики, поддержка — и все эти ветки сидят под разными C-левелами с годовыми бюджетами. Тек говорит: нам нужно 10 Java-программистов, 15 фронтендщиков на React, все со знанием облака. В результате не очень понятно, кто что делает. Программисты становятся коробочками — «я пишу контроллеры на Java и больше ничего не делаю». Как из этого перейти? Есть ли шанс начать с чего-то маленького?
Сергей: Лучшее, что я сейчас вижу: сказать — забудьте неэффективные первую, вторую, третью линии поддержки. Мы будем вас поддерживать напрямую. Взяли кого-то из саппорта, подключили к бизнесу. В бизнесе выявили ключевых специалистов, аналитиков. Эту связь установить. И сказать: «Ребята, включаем турбонаддув». Приходишь к руководителю: «Хотите, чтобы лучшие программисты — эта команда, которая есть, — была непосредственно вашей поддержкой? Без хелпдеска. Давайте упростим». Если хоть где-то бизнес уже устал — он согласится.
Зависит от человека. Если кто-то внутри прозрел — без подсказки увидит. Всё, что нужно от нас сегодня, — вопрос задать. Ты нас слышишь, невидимый слушатель? Ты Jesus — можешь там всё перевернуть хоть сегодня.
Сергей: Чем мы можем помочь? Менторинг как сервис. Подключиться маленькой струйкой — в одного виртуального специалиста. Все свои компетенции по стоимости одного специалиста готовы подключить. Это максимум.
В 2024 году, после трёх лет подготовки второй версии, — а до этого были две первые, которые мы внедрили в Уралсиб, — я выпустил app321. Мини-ERP, мини-CRM, мини-BPMS. Меньше тридцати тысяч строк кода. Кому нужен этот инструмент? Тем, кто, зная закон Галла, хочет старую систему разобрать. Они хотят получить минимальный объём кода на старте, который потом сами добьют. Семечка, из которой вырастет дерево. Или сперматозоид, из которого вырастет полнофункциональный сложный организм.
Есть инструменты, желательно с открытыми кодами. Есть кастомизированная кодовая база. И есть самое важное: всё это покрывается когнитивным облаком. Этот термин важнейший. Когнитивное облако.
Вы открываете Team Topologies — у меня к ним претензия. Мало того, что они отрубили голову, не говорят, что у них труп лежит, — они говорят о когнитивной нагрузке. И вдруг какие-то менеджеры снижают когнитивную нагрузку. Это что за унизительное отношение к каждому человеку, а тем более к команде? Трезвитесь. Когда команда сложилась, она своим когнитивным облаком покрывает всю complexity в кодах.
Облако включает личные отношения внутри команды, с кучей людей, которые используют продукт, — не только ключевых специалистов. Внешний периметр. Это и есть то, что надо сказать бизнесу: ты не понимаешь — это неосязаемо, но оно есть. Концепции ты понимаешь. Это когнитивное облако, которым обладает команда. Если команда по какой-то причине уйдёт, все коды превращаются в тыкву, в legacy-систему в тот же день. Ещё вчера это были джедайские мечи — оружие, ребята делали немыслимое. Ушли, когнитивное облако развалилось — писец.
Ведущий: Это два примера. Один — как внутри компании завести BizOpsDev-команду, подключившись к тебе. Кристаллы так растут — нужно зерно кристаллизации. Этой семечкой может быть человек, который приходит не как «коробочка» «я Java-программист», а как специалист: «Я знаю, как делать IT, я вам покажу». Такой диверсант — не говорит: «Сейчас всех переучу», а «Я просто вам сделаю хорошо». Второй вариант — инструмент тоже может быть семечкой. Маленький кусочек системы, вокруг которого нарастает команда. Не «делает задачки на Java», а всё, что нужно сделать.
Разработка — это постройка фабрики, не работа на ней [84:03]
Сергей: Мы это сделали чисто для себя. Если нас пригласят разобрать монолит — у нас уже есть отмычка. Тихой сапой шли. Я выделил ведущего разработчика, он — первая линия поддержки на одном крупном банке. И аналитик. Лучшие люди первыми получают все запросы. Дальше либо делают сами, либо разруливают. У меня этот инструмент готов, швейцарский нож. Но чтобы воспользоваться — всё равно люди вперёд.
Как происходит освоение новых технологий? Решили: «CRM модно» или «AI модно». Набирается новая команда. Живёт сама по себе в форме лаборатории — опять DevOps настоящий. Ищет, кому быть полезной, стучится. И взлетает. Но когда они взлетели и это начинает быть похожим на бизнес — совершается суицид. Глава 3, преамбула. Мы в таком безумном цикле.
Кривая развития технологий. Bell curve знаете? Есть Долина смерти. До Долины смерти — BizOpsDev. А дальше просто бабки косим. В этом зазоре что происходит? Эта команда, которая думает, что тулзой всех осчастливит, — на самом деле BizOpsDev-команда с великолепным когнитивным облаком, которая оказывает поддержку первым клиентам. Представляете, какой кайф с ними работать? А потом мы начинаем делать деньги. Продавать что? Воду из колодца. В этот момент уходят все ключевые разработчики.
Это и есть переход. Когда «детство закончилось, теперь давайте по-взрослому». А не надо по-взрослому. Надо расти такими же, какими были. Или не расти — расти органически. Но приходят люди, которые хотят отбить деньги, — и это случается.
Мы не даём здоровому войти. «Только дети войдут» в Писании. В этом смысле мы, как дети, уже обладаем всем необходимым. Ещё до школы мы лучшие софтовые разработчики, ещё не потерявшие навык командной игры. Это как игра. Такая команда — когда к ней ни зайдёте, она никогда не работает. У них всегда весело, они всегда рады поговорить — потому что у них производительность чумовая.
Ведущий: Мне подумалась метафора про конвейер. Разработка софта — это не работа конвейера, а постройка самого конвейера. Когда тебе нужно построить фабрику — это разработка софта. Когда эта фабрика уже работает — это период, когда мы рубим бабки. Часть проблем от того, что эти два понятия смешиваются. Ещё один момент: когда мы говорим «бизнес» — что вообще за бизнес? По сути — потребности конкретных пользователей.
Сергей: Конкретных людей. Для кого-то делаешь. Первый шаг, только один шаг вперёд. AI, кстати, что подсказывает? Тебе нужно знать, какое слово ты скажешь следующим. Если почитать всех философов, — что такое правильная жизнь? Когда ты в состоянии выбрать следующий шаг. Между прошлым и будущим ты всегда можешь сделать только следующий шаг. И наш мозг создан для этого. Мы созданы для этого хаоса, этой неопределённости, этого complexity.
Есть люди, которые в шаге от меня, и я могу сделать для них что-то. Это и есть задача IT — дать ему инструмент, который на нём сидит как надо. Ничего лишнего. IT должно быть минимальным. Digital Last. Максимум не программировать. В первую очередь — операционная поддержка. И во вторую — кто поддерживает, те и должны первыми заниматься разработкой.
Возвращаясь к посылу: ты поразишься, насколько средние люди в команде оказываются пятитысячниками вместо отдельно взятых пятисотовиков с красным дипломом. У меня многие ребята не имеют высшего образования. Пришли ко мне работать и даже не закончили. Не потому, что пришли ко мне, а потому что им не заканчивалось.
Сергей: Первичная автоматизация была свободой, по-настоящему. В сложных системах опыт неповторим. Ни отрицательный, ни положительный. Но для этого в команде нужна свобода. Если команда сложилась, до того момента как её убьют, — эти ребята свободны погрузиться и в теорию, и в практику. Жить полной жизнью, заниматься семьёй, детьми, иностранными языками. Они не пытаются свою производительность повысить до безумия. Ты работаешь, пока тебе в радость. А все остальные вопросы решаешь.
Почему из ИТ нельзя выстроить конвейер [90:17]
Ведущий: Ты снова сказал «сложные системы». Это возвращает к Cynefin. Но ведь даже в IT есть продукты в простом домене. Проблема решена, есть лучшие практики. Просто ставишь систему и пользуешься. Электронная почта, например.
Сергей: Нет. У тебя есть операционная служба — BizOpsDev — тебя это вообще не касается. Они сами решают простые и сложные вопросы. Что взять? Какие кнопочки? Какую библиотеку? Какой сторидж? Всё решается здесь. Для них решать не надо.
Проблема в том, что такого класса задач — минимум, и они не принципиальны. 95% находится в комплексном домене.
Ведущий: Ещё один момент. Ошибка в определении того, насколько домен сложный или простой. Которая происходит на уровне VP или C-уровня и спускается как руководство к действию. Например: «У нас слишком много тратится на AWS. Простая история. Возьмём человека, который AWS понимает, пройдёмся по сервисам, посмотрим самые дорогие, придём к командам, скажем: сделайте дешевле». Фактически может быть, что эта проблема непростая. Выигрыш может быть гораздо больше, если посмотреть, какие вопросы команда решает, какую ценность приносит. Очень часто сложные задачи кажутся простыми. В результате решения получаются совершенно не туда.
Сергей: В результате ты попадаешь в хаос.
Егор два хороших пункта подцепил. Первое — как правильно? Команде скажи: «Ребята, можем удешевить? Running costs жмут». Всё, больше ничего. Они лучше тебя разберутся, что отключить, что перевесить. Если у тебя несколько команд — всем: «В целом курс такой — AWS уменьшаем или уходим. Open source можно». Не надо указывать людям, как переставлять ноги.
Второе — сложный домен. Бизнес всё хочет привести к конвейеру. Продажи — конвейер с воронками, производство машин, постройка домов. Всё остальное — особенно менеджмент — находится в сложном домене. Эксперты там всё решают. Я эксперт, стал экспертом-начальником. Для бизнеса домен научно-исследовательский — это что за сейл-питч? Не продашь.
Некоторые предатели в наших рядах приходят к таким бизнесменам и говорят: «Я — Jesus автоматизации, я тебе всё превращу в простое. Хочешь раскрасить задачки светофором? Хочешь сроки, чёткий менеджмент, процессы? Я тебе всё это сделаю». То, что это не работает, не соотносится с реальностью, — другой вопрос. Все эти CIO и архитекторы — на самом деле штрейкбрехеры, которые позволяют всем остальным находиться в пустыне и волочить цепи. Хотя что мешает стать свободными? Ничего. Встали и пошли.
Прямо как в книжке: ты больной? Надоело болеть? Встань и ходи. И к IT это имеет удивительное отношение. Бизнес хочет, чтобы IT был конвейером. Проектный подход. Меня бесит это слово «проектный подход» — надо перейти от проектного к командному. Перестать разговаривать, что мы команда. Какая мы команда? Поделены на группы и прикованы к конвейеру. Эти инструменты продаются.
Заметили? Продаётся всё, что вокруг BizOpsDev, но сам BizOpsDev почему-то пока не продался.
Ведущий: Пока ещё не продался.
Сергей: Надеюсь, просто не хватило термина. Сейчас подберём ключики. Накопленный опыт — если Гегель не врал — количество переходит в качество. Мы были свободные, как дети. Потом помытарились. И теперь опять станем свободными.
Ведущий: Похоже на точку.
Сергей: Пытаюсь закончить, смотрю по времени.
Ведущий: Хорошее место, чтобы остановиться. При случае всегда можем продолжить.
Ведущий (Дима): Можно прийти в сообщество, встретить там Сергея и задать все вопросы на созвоне.
Сергей: Переписка идёт прямо местами великолепно. То, что придумали с этим клубом, — просто здорово. Я даже не вижу площадок — где это обсуждается?
Сама по себе книжка ничего не решает. Решает только живое общение, где конкретно ты с живыми людьми. Боб Маршалл написал: «Программисты, не обманывайтесь — ваша работа не коды писать, а общаться, разговаривать друг с другом». Это нонсенс. Если ты бизнесу это скажешь — «главное, смотри, как они весело общаются», — что это за речь в продаже?
Ведущий: Когда они будут код писать?
Сергей: Да-да. Они хотят количество строчек или время. А ещё на ноутбук поставить программу, которая следит — ты смотришь на экран или нет. Что такое? Что это, друзья, коллеги?
Предлагаю здесь поставить точку. Многоточие.
Ведущий: Восклицательный знак.
Сергей: Восклицательный знак. Надеюсь, как минимум это было интересно. Будем дерзать.
Ведущий: Спасибо большое за разговор.
Сергей: Вам спасибо огромное. Спасибо, что пригласили.
Ведущий: Спасибо всем, кто смотрит, слушает. Подписывайтесь. До встречи.