Взгляд на проекты под иным углом

Странный я наверное - новая мысль, которую не довел "до конца" (не принял её в некой итерации) продолжает обрабатываться "в фоне" пока работаю и занимаюсь прочей ерундой.

Навеяно утренним постом про резюме

Есть проект. Есть код. Есть люди, которые его пишут. Есть бизнес, который платит. Мы привыкли думать, что это одно целое. Что код, люди и деньги - части одного механизма. Шестерёнки. Одна сломалась - встали все.

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

Код - система

Честная. Падает - падает. Тормозит - тормозит. С ним можно работать. Но код - не инструмент. Это среда. Как почва. Как климат. Ты не можешь приказать коду. Ты можешь работать с ним. Или против него. Архитектура, заложенная год назад, определяет, что ты можешь сделать сегодня. Это не метафора. Это закон.

Исполнители - система

Без документации. Без тестов. Без API. У каждого свой взгляд. Своя роль. Своя мотивация. Кто-то готов перешагнуть через себя. Кто-то нет. Кто-то горит. Кто-то выгорел. Это не команда. Это система. Со связями. С конфликтами. Со скрытыми правилами. И с ней работать не меньше, чем с кодом. А может, больше. Код можно переписать. Людей - нет.

Бизнес - система

Самая непредсказуемая. Нет стабильных требований. Меняется каждую неделю. Не знает, чего хочет. Или знает, но не может выразить. Бизнес думает, что он главный. Что код и исполнители - его инструменты. А на самом деле он сам часть системы. И с ним надо работать не как с заказчиком. Как с подсистемой. У которой свои сбои. Свои баги.

В итоге - три системы

Три языка. Три протокола. И никто не написал между ними API. Бизнес просит фичу. Исполнители говорят: сложно. Код говорит: сломает архитектуру. Исполнители просят время. Бизнес говорит: нет денег. Код говорит: я на пределе. Код падает. Бизнес спрашивает: почему не работает. Исполнители отвечают: мы предупреждали. Все правы. И все виноваты. Потому что нет единой системы. Есть три отдельные. И они воюют.

Метасистема

Введём понятие. Это не проект. Не команда. Не продукт. Это система систем. Бизнес. Исполнители. Код. И связи между ними. И тот, кто видит все три одновременно, и работает не с результатом, но с процессами, которые результат формируют.

Это не менеджер. Менеджер управляет людьми. Не тимлид. Тимлид управляет кодом. Не продукт-оунер. Продукт-оунер управляет требованиями.

Это - архитектор метасистемы. Тот, кто видит, как всё связано. Кто строит шину между тремя системами. Кто настраивает процессы так, чтобы результат появлялся сам. Не рисует "дерево", а создаёт условия.

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

Потом интегрирует. Строит API. Адаптеры. Шину. Чтобы три системы заговорили на одном языке. Не потому что кто-то главный. А потому что они связаны. Если связи нет - проект умирает.

Представьте город. Бизнес - мэрия. Исполнители - жители. Код - инфраструктура. Дороги, водопровод, электричество. Мэр думает: я главный. Жители думают: мы главные. Инфраструктура просто есть. Но если дороги плохие - жители недовольны. Если водопровод течёт - мэр виноват. Если электричество пропадает - страдают все. Архитектор метасистемы - не мэр. Не житель. Не дорога. Это градостроитель. Тот, кто видит, как всё связано. Кто проектирует не дом, не дорогу, а город. Как систему.

Что это даёт? Проект перестаёт быть полем боя. Все видят общую картину. Не свою подсистему, а всё целиком. Результат становится предсказуемым. Не потому что кто-то контролирует. А потому что процессы настроены. И они работают. Архитектор перестаёт быть тем, кто рисует схемы. Он видит систему целиком и управляет не людьми. Не кодом и не деньгами. А связями между ними.