Но самое удивительное — сколько бы мы ни ходили по проектам, проблемы везде были абсолютно одинаковые. Думаю, вы и себя в этом списке узнаете:
- Никто уже не понимает сложную бизнес-логику и спрятался в своем маленьком огородике
- При починке одного бага возникает еще три новых (хорошо если вообще что- запускается).
- Мониторинг есть только в формате «недовольные клиенты обрывают телефон техподдержки».
- Как устроена система целиком, знают только пара старцев, которым уже пора на пенсию (у одного из них старческое слабоумие).
- Релиз и деплой — это микроинсульт у тимлида.
- В очередной раз сделали совсем не то, что было нужно.
Мы наступили, кажется, на все возможные и невозможные грабли — архитектурные, организационные и продуктовые. Более того, мы и сами неоднократно участвовали в создании подобных проблем. Видели, как быстрые решения и компромиссы превращаются в многолетнюю боль, как модные подходы ломаются о реальность и как отсутствие базовых инженерных принципов со временем начинает стоить очень дорого. Особенно это ощущается сейчас, когда каждая компания борется за эффективность. Раньше многие проблемы можно было просто залить деньгами, а теперь их нет.
Но нам хватило мозгов построить цикл обратной связи: смотреть на результаты, разбирать ошибки и каждый раз пытаться понять не только что сломалось или получилось не очень, но и почему это произошло. Мы перебирали подходы до тех пор, пока не получали результат, который нас устраивал.
Именно этот опыт и стал отправной точкой.
В какой-то момент мы поймали себя на мысли: а что, если собрать все, что мы считаем важным, в единый, последовательный набор принципов? Такой себе путеводитель по разработке сложных систем. Сначала это было нужно только нам самим. Потом мы поняли, что это нужно и другим. Попробовали вынести наши подходы за пределы своих команд — и неожиданно оказалось, что запрос есть, причем вполне понятный. Они устали постоянно разгребать последствия, хотят делать свою работу более осознанно и оставаться востребованными специалистами.
Кстати, мы всю дорогу рассказывали, что разработка — это процентов 20 всего процесса. Остальное — понимание бизнеса, предметной области, архитектуры, требований, компромиссов и всего того, что большинство старается скипнуть (я тут код пришел писать, а не вот это всё). И знаете, приятно иногда оказаться правыми. Пришел ИИ, навыки кодинга неплохо так подешевели, а вся остальная часть профессии никуда не делась (про ИИ как-нибудь поговорим отдельно, так что подписывайтесь).
Так появился проект, который в итоге мы назвали StringConcat. Когда-то мы шутили, что главное в нашей работе — правильно склеивать строки в браузере.