Все персонажи и события являются вымышленными. Любое совпадение с реально живущими или когда-либо жившими людьми случайно.

- Господи, мы все умрем! Все умрем! Теперь точно умрем!

- Успокойся. Что случилось?

- У нас такой бэклог, такой бэклог. Нам нужно больше разрабов.

- Сколько?

- Восемь. Нет, девять! А десять можно?

- Ну, так наймите. Мне их что ли нанимать?

- Директор по людям не может! Говорит бюджет скрипит и зарплаты у нас ниже рынка.

- Так, б***ь, ко мне в кабинет этого дармоеда! Это все? Тогда давай, иди – пиши код.

- Вот так, Сашуля, я живу который год. Успокаиваю, утираю всем сопли и подтираю ж**у.

Зачастую, после стадии MVP и получения инвестиций в раунде, продукт развивается достаточно хаотично. В большей степени ориентируясь на те контракты, которые удается подписать с потенциальным заказчиком, пусть даже на невыгодных для бизнеса и самого продукта условиях. Это объясняется и желанием нарастить выручку, и стать заметным игроком на рынке, и отсутствием опыта, и огромными амбициями стартаперов.

Как правило, в первые несколько лет продаваемый IT-продукт достаточно сырой и требует больших доработок. Чем больше контрактов и проектов заключается, тем больше и разнообразнее накапливается задач к работе. Вместе с ростом задач, растет опыт и вариативность решений, применяемые для каждого конкретного заказчика.

Исторически так сложилось, что проекты и программное обеспечение развиваются (как правило) без привязки к будущим продажам и системе управления самой разработкой. Будучи сложным продуктом – IT-продукты/услуги демонстрируют многомерность и вариативность своих возможностей исключительно при проектном подходе, что означает (как минимум на первых этапах развития компании) невозможность массового подхода к внедрению и продаже IT-продуктов/услуг. В том числе из-за этого, требуется большое количество часов высококлассных специалистов и экспертов. Этим во многом и объясняется продажа IT через энтерпрайз решения и индивидуальный подход. 

Если говорить метафорически, то с каждой новой продажей ПО от основного ствола дерева отделяется новая ветка, растущая и развивающаяся в своем темпе и на своих условиях. Чем больше таких энтерпрайз проектов – тем больше веток и тем больше требуется людей, чтобы ухаживать за старыми ветками и обслуживать новые.

Из-за такого подхода, добавляя новую фичу или устраняя баг в основном продукте, есть вероятность возникновения проблемы в некоторых ответвлениях и реализуемых ранее проектах. Для его устранения требуются дополнительные ресурсы от тестировщиков до разработчиков, в зависимости от сложности возникшей проблемы.

- Все упало!

- Где упало?

- * *****!

- Что упало?

- Вообще все!!

- Заказчик орет, ничего не работает!

Силы команды направляются на восстановление работоспособности ПО, в рамках конкретного проекта. Новые проекты и продукты ждут, все остальные заказчики тоже ждут. Степень аларма может колебаться от «некритичного» до «огонь-пожар-горим».

С одной стороны, такой индивидуальный подход к управлению проектами и развитием компании способствует формированию аврального режима (или если говорить в рамках терминологии моей предыдущей книги, то режим называется «нам п****ц»), внутри которого люди на регулярной основе преодолевают препятствия, достигают результатов и живут в постоянном хаосе и стрессе. Этот режим в целом характерен для компаний, находящихся на начальной стадии своего развития. Однако для последующего роста (выручки, числа заказчиков, проектов, сотрудников и т.д.) требуется изменение пропорций в режимах управления с преобладанием рутинного режима (или «раз-два-три-повтори»).

Из-за особенностей рынка, а именно большой емкости и регулярно растущего спроса на IT-продукты (в том числе ввиду ухода зарубежных игроков и амбициозных задач для IT-сектора со стороны государства) – число заказчиков будет расти и для их обслуживания при текущей системе производства IT-продуктов будут требоваться огромные ресурсы, которых ввиду ограниченности рынка труда в требуемом количестве прямо сейчас нет.

Кроме того, индивидуальный проектный подход (при котором каждый проект развивается параллельно основному продукту/услуге) предполагает увеличение штата, а следовательно приводит к росту нагрузки на ФОТ. Даже с учетом привилегий и государственной поддержки в виде льготного налогообложения – речь идет о высоких постоянных издержках, уменьшающих рентабельность IT-бизнеса и при неумелом менеджменте, сводящих ее, фактически к 0. Даже если представить, что рынок труда разработчиков, тестировщиков и прочих – резиновый, наем и раздутие штата не решит проблему, т.к. с ростом проектов будет регулярно требоваться расширение числа высоко экспертного и дорогостоящего персонала (почти как сложные проценты и геометрическая прогрессия). Именно поэтому, подход с ответвлениями новых проектов экономически оправдан до определенной стадии развития компании и в конечном итоге, должен представлять собой либо минимальное число таких веток с фокусом на основной ствол, либо пересаживание ветки отдельно и передачи прав на ее обслуживание кому-то другому.

И если раньше бюджеты заказчиков позволяли продавать им IT-продукты по завышенной цене, не беспокоясь о комплексным подходом к ценообразованию, а на рынке присутствовало полтора землекопа небольшое количество игроков, то начиная с этого года ситуация изменилась и продолжает меняться. Кроме того, что происходит сокращение бюджетов у потенциальных заказчиков (потребителей рынка IT) крупные компании для обеспечения себе дальнейшего роста поглощают IT-стартапы и продают их продукцию под своим брендом (все тот же CTM, но теперь в IT). Это означает, что на IT рынке будет появляться все больше сильных игроков и компаний, которые раньше не претендовали на долю большого и жирного IT-пирога.

Для конечных потребителей это означает благодать. Внутри самого IT-рынка рост конкуренции и появления сильных игроков, в конечном итоге приведет либо к пересмотру бизнес-процессов внутри действующих на рынке IT-компаний, либо к их уходу (из-за роста издержек и невозможности конкурировать в т.ч. по цене и качеству с новыми, более сильными игроками).

 

Одним из ключевых решений, связанных с невозможностью роста новых проектов и обслуживанием старых, является работа по сокращению технического долга и появление в работе разработки… волшебного слова – МИКРОСЕРВИСЫ. 

В переводе с технического языка на экономический, подход к микросервисам означает изменение технологии производства IT продукта таким образом, чтобы максимально упростить сложность каждой отдельной операции и действия. Это позволит привлекать к работе над операциями по «новой технологии» менее экспертный персонал, а значит снизятся издержки и повысится управляемость.

Адам Смит с его примером про булавки потирает руки, глядя как его подход к углублению уровня разделения физического труда адаптируют к интеллектуальному продукту. С физическим продуктом дело обстояло достаточно просто. Сначала один человек (суперэксперт – кузнец) полностью выполнял все операции по изготовлению булавки и в день производил только 1 булавку. Потом технологию раздробили на простые операции, привлекли менее квалифицированную рабочую силу (женщин, детей или кого-то из руко**пых, готовых работать за еду) и стали производить в день 100 булавок. Кроме того, что выросла производительность, сократилась себестоимость на производство 1 булавки, еще и отпала зависимость и потребность в дорогих и редких специалистах.

Дальше – больше (особенно больше после НТР), подход стали применять в других технологиях и производствах (автомобилестроение, самолетостроение, производство электроники, выпекание булочек и т.д.). С ростом и развитием IT-рынка пришла очередь менять технологию производства IT-продуктов, заменяя в конечном итоге дорогих и редких разработчиков, менее дорогими и редкими. А с учетом уменьшения численности населения в России и сокращением доли трудоспособного населения (только в период с 2010 по 2021 годы показатель снизился с 61,5% до 56% в среднем по стране), а также с учетом тренда life long learning (вот совпадение-то!) – переучивать придется многих и брать тех, что дают. 

- Скажи, пожалуйста, какая цель внедрения микросервисов? – спрашиваю у директора по технике.

- Ну вот смотри, сейчас наши разработчики – это универсальные солдаты. Они могут все. Написать код любой сложности, выполнить практически любую задачу из бэклога, с учетом их грейда, разумеется. А с появлением микросервисов и внедрением этого подхода в нашем ПО, мы сможем привлекать менее универсальных солдат. Понимаешь?

Это кажется логичным и понятным. И безусловно у данного подхода в настоящий момент имеются проблемки с реализацией ввиду того, что изменение технологии производства интеллектуального продукта: 

  • во-первых сложнее с технической точки зрения и требуется не только комплексный подход к ее реализации, но и системное изменение всех бизнес-процессов компании;

  • во-вторых, излишняя рутинизация приводит к усложнению процесса производства интеллектуального продукта, росту бюрократизации и вызывает отторжение у разработчиков;

  • в-третьих, переход на микросервисы возможен в случае, когда компания достигает определенной зрелости и имеет потенциал к росту. 

В противном случае, это красивое слово представляет собой слив бюджета и ресурсов, с последующим накапливанием негативного опыта к данной инициативе. А как известно негативный опыт – хуже отсутствия опыта. Отсюда и скептицизм, и недоверие: «Видали мы ваши микросервисы. Просто модное слово, за которым ничего нет».

Если отбросить тот факт, что микросервисы удастся реализовать на первых этапах не всем, а на формирование и внедрение данного подхода к работе потребуется время, то у разработчиков и всех причастных к IT-отрасли еще есть время пожить в парадигме «Всегда будет так как сейчас».

Сам по себе подход к организации производства IT-продуктов/услуг с помощью микросервисов представляет собой всего лишь переход к формированию пула стандартизированных операций (большей его части) и более рутинному формату работы. Это позволит управлять растущими продажами и оптимизировать себестоимость, что в конечном итоге позволит повысить рентабельность бизнеса и радовать важных акционеров, которым так мечтают продать свои идеи и бизнесы молодые стартаперы.

С учетом аврала в бэклоге, огромную нагрузку и непрекращающиеся запросы в сторону разработки, переход на микросервисы будут продавать как сверхблагодать, чудочудное и диводивное. 

- Вы забудете о бесконечных запросах!

- Вам станет легче жить!

- Вы сможете просто кодить!

С учетом активной стимуляции пассивного поведения персонала внутри IT-отрасли (особенно разработки), рутинизация производства IT-проектов (переход на микросервисы, где это возможно и целесообразно) усилит существующий тренд «травоядных мужчин» среди мужского населения, обладающих умственными способностями.

А вот это уже печально, но судя по всему – неизбежно. 

ПС Обложка - кадр из сериала "Пацаны", режиссер Ф. Сгриккиа, С. Бойд, С. Шварц, Ф. Туа...

Комментарии (20)


  1. Fen1kz
    07.08.2022 14:10
    +3

    тренд «травоядных мужчин»

    А можно поподробнее?


    1. sasha_firsova Автор
      07.08.2022 16:13
      -7

      Например тут - https://ru.wikipedia.org/wiki/Травоядные_мужчины

      Речь идет не столько о тех, кто не вступает в сексуальные отношения, сколько о том, что .."Термин «травоядные мужчины» следует по аналогии с животным миром, где травоядность обычно считается признаком пассивности, а плотоядность считается признаком активности и агрессивности" (с)

      У данного явления широкая развилка последствий.


      1. Fen1kz
        07.08.2022 22:30
        +6

        Тогда вообще не понял зачем это здесь. Статья была стандартной такой водой на тему микросервисов (хотя эту тему уже со всех сторон рассмотрели пару лет назад), но вот тут возникает просто тонна вопросов, начиная от "почему травоядные мужчины это печально?" и заканчивая "чо ваще за сексизм в моем 2к22?". Задавать я их не буду, отвечать не нужно, просто отмечу, что весь этот абзац как будто из другой статьи.


        Вроде как если бы я писал статью про шейдеры и в качестве резюме вставил бы абзац из Домостроя :D


        Таким образом видеокарта позволяет легко решить проблему с тенями, который ставят процессоры на колени. Кстати о тенях — баба должна быть в тени своего мужчины, то есть быть молчаливой, доброй, трудолюбивой, во всех делах советоваться с мужем.


  1. funca
    07.08.2022 15:23
    +8

    Вы скорее описали модульный подход, с декомпозицией сложной системы на менее сложные части. Как концепт. То есть это философия, а не практика. По-моему использовать микросервисы чисто ради модульности будет как раз самым затратным вариантом.

    Вот у вас есть колхоз, немеряно земли и огромная техника, которая все это обрабатывает. Весной засеяли, осенью скосили. Часть земли пашется хорошо и быстро. Но местами трактора вязнут в болотах, где то наоборот пески, в общем там ни чего только не растет. Кому-то сверху приходит идея нарезать эти площади на отдельные участки, поселить там фермеров и заставить сдавать урожай в общий котел. А эти микроколхозы пусть сами выкручиваются как хотят. Теперь ключевой вопрос: правда-ли что чем меньше участок, тем меньше нужна квалификация персонала, чтобы получать с него достойный урожай? А можно вместо фермеров использовать тех же колхозников или вообще бомжей?

    По сути микросервисы это как самостоятельные проекты, требующие все тоже самое, что и макро (иметь продуктовое видение, ставить процессы, делать проектирование, тестирование, CI/CD, документирование, поддержку и т.п.). Но только внутри небольших команд. Разрезая монолит, делая систему распределенной, вы ещё сильнее увеличиваете её сложность. Соответственно, разработка и поддержка будет требовать ещё большей квалификации.

    Выигрыш от микросервисов можно получить в другом. Например, в более эффективном использовании системных ресурсов или повышении надёжности. Но без специалистов это будет только лирика.


    1. xeeaax
      07.08.2022 16:00

      ИМХО странная аналогия с колхозом на болотах и песках. Скорее тут про специализацию - эти пусть яблоки выращивают, эти птиц разводят, эти картофель и свеклу.


    1. sasha_firsova Автор
      07.08.2022 16:06
      -2

      Благодарю вас за развернутый комментарий! Возможно, я ошибаюсь, а вы правы.

      По поводу примера с землей - там тоже можно все упростить и рутинизировать и нанимать тех, о ком вы писали: для каждого типа земли прописать регламент обработки, сформировать нормирование и список дел, который каждый, обладающий физической силой может делать по условному чек-листу. Даже можно рассчитать, в каких случаях будет экономически оправдано использование техники, а когда только руки и лопата))

      1. Если средняя темп воздуха более х дней составляет у градусов, тогда сделай действие 1.

      2. Если ... и так далее. Для обработки и выращивания не нужны в таком количестве эксперты. Хотя они безусловно будут нужны для формирования правил и регламентов, а также для аналитики за произошедшими изменениями (в климате, урожайности, новых сортах и т.д.).


      1. saboteur_kiev
        07.08.2022 23:26
        +2

        Только теперь вам нужно для каждого куска земли делать свой отдельный индивидуальный план, его проверять, оформлять договора и так далее, вместо того, чтобы сделать это один раз на всю землю
        И если вы думаете, что каждый будет делать все идеально, то нет. процент проблем будет примерно такой же, а говорить по каждому проценту нужно будет теперь отдельно.


    1. matabili1973
      07.08.2022 18:35

      Если я правильно понимаю саму идею микросервисов, то с большой вероятностью они будут иметь много общего именно вследствие общего происхождения: единый стек технологий, предположительно единую серверную базу и бэкенд, вплоть до единого UI-кита.


      1. XaBoK
        07.08.2022 21:01
        +7

        Всё дело в том, что каждый участник процесса играет в Bullshit Bingo, надеясь, что именно он задаёт правила. Как заметили выше, переход к микросервисам совсем не делает работу проще. Если раньше нужна была формочка с полями, валидация и всё это в базу, то с микросервисами нужно всё тоже самое и еще чуть больше, так как теперь у нас саги и лаги. Но бинго - игра богов-директоров!

        Директор по людям думает, что сможет нанять дешёвой рабсилы. На практике же из-за изоляции команд потребуется больше людей. Раньше было несколько больших но по 5, а теперь много маленьких но по 3 (боюсь отсылку поймут лишь пенсионеры). Это будет связанно и с тем, что нужны будут свои продакты, тестировщики и тд, но и специалисты, на которых раньше экономили - архитекторы и девопсы.

        Директор IT занимающийся железом, хостингом, администрацией и зачастую безопасностью, думает, что сейчас всё на виртуалки и в облака. Но получается, что зоопарк вырос, точек доступа больше, хрупкость увеличивается. Стабильность решается не качеством и оптимизацией софта, а избыточностью за счёт наращивания копий каждого из сервисов.

        Главный по продуктам уверен, что теперь все фичи будут пилить быстро и параллельно. 9 женщин рожают ребенка за месяц, а вы не знали? Но оказывается, что сам по себе изолированный микросервис никакой пользы не несет. Надо чтоб его подёргал кто-то с фронта. А если это чуть более сложная система, чем фид комментариев, то выясняется, что каждый раз необходимо изменять несколько сервисов, да еще и закладывать процесс апгрейда и поддержку версий (особенно если клиентская часть on-prem, как какой-нибудь апп в сторе и пойди знай, когда все клиенты обновят).

        Разработчики будут говорить, что теперь то они смогут прям подобрать инструменты под задачи и не надо прыгать по всей ширине и высоте монолита, но. Вы же уже знаете, что есть "но"? Так вот никто не будет ждать, когда ваши девелоперы на питоне выучат джаву или освоят реакт, потому что тут прям идеально подойдёт. А потом еще будет лечить болезни поверхностных знаний и копипаста со стаковерфлоу. Но, родимые, поехали! Как работали, так и продолжайте, только быстрее и больше! Да и еще, распелите монолит вчера, потому что сегодня мы уже на микросервисах, так что времени на старое у нас совсем нет! Бэклог зовёт!

        И я бы мог еще долго писать, но уже долго писал...


        1. sasha_firsova Автор
          07.08.2022 23:35

          Благодарю вас. И за ссылку:)


  1. Paranoich
    07.08.2022 16:19
    +10

    А можно заранее озвучить сколько ещё сотен статей будет?
    Спасибо.


    1. sasha_firsova Автор
      07.08.2022 23:35

      Это главы книги.


      1. ionicman
        07.08.2022 23:58
        +5

        Окей, тогда сколько глав?)

        P. S. А можно как-то остановить их публикацию на хабре? Задонатить там кому?)


        1. GabrielG
          08.08.2022 11:10

          Книга небольшая, до двух сотен страниц, если не ошибаюсь, так что мы на финишной прямой.


  1. XaBoK
    07.08.2022 17:53

    Что же осталось скрыто в статье под номером 20?


    1. sasha_firsova Автор
      07.08.2022 23:35

      Поправила


    1. sasha_firsova Автор
      07.08.2022 23:36

      Поправила.


  1. ProstakovAlexey
    07.08.2022 21:05
    +1

    Вот это все - раунды инвестиций, хаотичные требования рынка (скорее хаотично записанные), стартапы - это про РФ? Я вижу вокруг 2 состояния - IT обслуживает уже сложившийся крупный бизнес и руководствуется его требовариями (банки со своими срм, сетевые магазы). И IT фирма развивает свой старый/новый продукт за свой счет, требования тоже только ее. Я не туда смотрю?


  1. atamaan
    08.08.2022 15:19

    Бурный поток сознания...


  1. Valerav76
    09.08.2022 15:41

    Это бред нужен только чтобы набрать побольше тупых землекопов. И показать свою значимость мотивируя тем что я крутой руководитель.

    Использовать и разрабатывать микросервисы сложнее чем писать монолит. Правильное решение - искать дорогих и крутых землекопов. Число разрабов скорее всего снизиться но расходы и выхлоп увеличатся.