Что такое опытный CTO. Часть II.
Как я уже писал, регулярно провожу встречи с тимлидами огромного проекта. Он настолько велик, что кажется, в нём представлены все тренды современной разработки, включая 1С-разработку. Сами продукты тоже разные. В прошлый раз я писал про новые проекты.
Теперь поговорим про старые продукты: культурные наслоения и страх изменений.
(Это как старый трактор — гремит, тарахтит, но тащит на себе всю компанию).
Старые продукты, особенно те, которые работают уже более пятнадцати-двадцати лет, несут на себе тяжесть времени и множества компромиссов, сделанных в прошлом.
Легаси давно вышло за пределы кода. Люди в командах становятся суровыми, непринимающими инициативу и стремящимися к стабильности, покою, почти к слиянию с вечным. Документация часто сохранилась с "лучших времён" и давным-давно перестала соответствовать действительности.
Чтобы понять логику происходящего, приходится разбирать код до каждой запятой. Погружение требует значительных усилий программистов, так как никаких достоверных описаний уже не осталось.
Эти продукты "радуют" новостями вроде:
- сотрудник принёс оффер конкурента,
- спустя миллион спринтов выпустили мелкое изменение, которое разблокирует багфикс, который в свою очередь когда-нибудь даст возможность внедрить первую часть миллион лет ждущей своей очереди фичи.
У старых продуктов всё настолько плохо, что кажется, их поддерживает только молитва и пара скрепок, найденных под столом.
Руководители этих проектов:
- всегда пессимистичны и общаются с бизнесом в формате "баба яга против,"
- демонстрируют богатый опыт в знаниях о том, почему именно новая идея не сработает,
- верят, что решаемых проблем не существует.
Чувствуете это ощущение бессилия и полной импотенции? Чувство тоски и обречённости? Чувство, когда команда давно не верит ни во что?
Большая часть серьёзных проектов, которым более десяти лет, состоит именно из таких элементов.
- Плюсы:
На таких продуктах завязана основная часть доходов компаний.
- Минусы:
Никто толком не понимает, как это работает. Все боятся вносить изменения по принципу: "оказался в болоте — сиди и не чирикай."
Здесь баги лечат молитвами, а изменения — редкость, словно солнечное затмение.
Настоящий CTO на новых проектах только учится, а по-настоящему опытный CTO — это тот, кто умеет:
- эффектно эксплуатировать,
- грамотно переформатировать,
- развивать старые тяжеловесные проекты, которые изначально к этому в принципе не приспособлены.
Главная его заслуга — умение делать невозможное возможным.