18+
реклама
18+
Бургер менюБургер меню

Владислав Бойко – Притчи для падаванов (страница 2)

18

В какой-то момент я понял: мы молодые быки. Бегаем с холма за каждой коровой, а стадо уходит.

И мы остановились. Сели. Разобрались, как вообще должна работать механика прочитанности – в личных чатах, в группах, в каналах, в тредах. Не как она работает у нас, а как она должна работать в принципе. Посмотрели, как это устроено архитектурно. Продумали data-модель. Нарисовали, как это должно выглядеть на концептуальном уровне.

А потом сравнили с тем, что у нас есть.

И стало понятно, что проблема – не в багах. Баги – это симптомы. Проблема в том, что архитектурно всё было сделано неправильно с самого начала. Из говна и палок, как водится. И никакое количество точечных фиксов это не спасёт.

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

Самое сложное было – не дёргаться. Баги сыпятся, все нервничают, а ты сидишь и рисуешь data-модель. Но старый бык на то и старый, что умеет не дёргаться.

Шлюх менять, а не кровати

Утро в офисе. Сотрудники двигают мебель – расставляют по местам, выравнивают по линеечке. Посреди этого хаоса стоит бабушка-уборщица со шваброй и наблюдает.

– Сынки, а чего это вы делаете? Переезжаете?

– Не, бабуль, мебель расставляем по фэншую. Когда всё правильно расставим – сразу выручка вырастет!

Бабушка качает головой:

– Сынки, я тут давно работаю. Ещё до революции это здание убирала. А был тут раньше публичный дом. И когда у них падала прибыль – они кровати не переставляли. Они сразу девочек меняли.

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

Ну и что делать? Можно писать регламенты, договариваться о правилах, внимательнее ревьюить. Короче, двигать кровати.

Посмотрел я на это и думаю: не, так не пойдёт. Проблема же не в том, как мы работаем. Проблема в самом коде.

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

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

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

С командами, кстати, бывает похоже.

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

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

Жёстко? Ну да. Но иногда проблема не в процессах, а в том, кто работает. И тут уж сколько мебель ни двигай – не поможет.

Я не тактик, я стратег

Жили-были мыши. Все их обижали. Однажды пришли мыши к сове:

– Мудрая сова, помоги! Все нас едят. Скоро нас совсем не останется. Что делать?

Подумала сова и говорит:

– Мыши! Станьте ежами. Будете колючими – и для охотников недоступны.

Побежали мыши радостно: станем ежами! станем ежами! Вдруг одна остановилась:

– А кто-нибудь знает, как стать ежами?

Никто не знает. Побежали обратно к сове:

– Сова! А как нам стать ежами?

– Мыши, идите на хер. Я не тактик, я стратег.

Сидим на совещании. Мы, представители другого департамента, и наш руководитель. Обсуждаем критически важную штуку – от неё зависит следующий квартал, а может и два.

Проблема простая: нам нужно что-то от второго департамента. Мы от них зависим, а они от нас – нет. Мы для них просто одна из нагрузок.

И вот мы сидим, приводим аргументы. Логичные, разумные – руководитель их до этого полностью разделял, на всех прошлых встречах кивал, говорил «всё правильно, давайте так». А ребята из второго департамента включают режим «ничего не слышу, ничего делать не буду». Без аргументов, без объяснений, просто – нет и всё.

Их руководителя на встрече нет. Наш – есть. Он всё слышит, видит что вторая сторона вообще не готова разговаривать. И в какой-то момент встаёт и говорит:

– Ну ладно, мне пора. Разбирайтесь, это ваша проблема. Потом расскажете, как решили.

И уходит.

А у нас нет никаких механизмов влияния на второй департамент. Вообще никаких. Единственный способ – эскалировать на уровень руководителей. Для этого и нужен был наш руководитель на этой встрече. А он встал и ушёл.

Мыши, станьте ежами.

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

Ну вот так. Стратегия была – «вы должны договориться». А как договориться, когда у тебя нет ни полномочий, ни ресурсов, ни доступа к тем, кто может решить вопрос – это уже тактика. А он не тактик.

Я потом думал, а что вообще можно было сделать. Ну смотри: если люди просто саботируют процесс без аргументов – это же история про «менять шлюх, а не кровати». Рыба гниёт с головы, значит проблема в руководителе того департамента.

Но как его поменять? Надо выходить на уровень выше своего руководителя. А это уже прыжок через голову, корпоративные игры. Можно, конечно, в кулуарах аккуратно напроситься на разговор с кем-то из директоров… Но это уже такое.

Второй вариант – менять своего руководителя. Потому что если он в такой ситуации умывает руки, то он и дальше будет умывать.

Оба пути ведут к тому, что надо лезть через голову. А я не очень люблю такие игры.

Если честно, хорошей стратегии у меня нет. Так что если кто знает – расскажите.

Часть 2. Доводи до конца

Яма с крокодилами

Ты хочешь познакомиться с девушкой. Она стоит в десяти метрах от тебя. Между вами – яма с крокодилами.

Если ты прыгнешь на два метра – тебя съедят. На пять – съедят. На девять восемьдесят – тоже съедят. Крокодилам плевать, как близко ты был. Не долетел – значит не долетел.

Но и прыгать на сто метров тоже не надо. С той стороны хорошая лужайка, стоит скамейка, сидит девушка. Десять метров – ровно столько, сколько нужно.

В 2006 году Yahoo договорилась купить Facebook за миллиард долларов. Цукерберг согласился. Оставалось подписать. И прямо на подписании CEO Yahoo сказал: «Нам придётся заключить сделку за 850 миллионов, а не за миллиард».

Сэкономили 150 миллионов. Цукерберг промолчал и ушёл. Сделка не состоялась.

Через несколько лет Facebook стоил сотни миллиардов. Yahoo в итоге продали по запчастям. Прыжок на 9.80. Крокодилы не оценили.

И это был не единственный раз. Yahoo присматривалась к LinkedIn, Twitter, YouTube – и каждый раз не допрыгивала. Не важно, сколько попыток ты сделал и сколько денег сэкономил по дороге. Важен только результат: ты на той стороне или нет.

Но есть и другая сторона этой истории. Прыжок на сто метров.

Мы с ребятами когда-то делали стартап. Мне нужно было написать бэкенд, и я выбрал Elixir. Мощный язык, построен на Erlang VM, держит безумные нагрузки. Я сделал бэкенд, который мог бы обслуживать тысячи одновременных пользователей. Архитектура – космос.

А потом мы пошли продавать. И оказалось, что это нахер никому не нужно.

Ноль пользователей. Бэкенд, который держит бесконечную нагрузку, при нагрузке ноль. Красивый, мощный – и абсолютно бесполезный.

Правильнее было сделать лендинг. Просто лендинг. Проверить, готов ли вообще кто-то за это платить. И только когда убедились – писать бэкенд. Это были бы те самые десять метров. А я прыгнул на сто – приземлился далеко за лужайкой, в чистом поле, где никого нет.

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

В IT это работает буквально. Сидишь, куришь мануалы, пытаешься разобраться сам – это прыжок через яму. А можно пойти к тому, кто в теме, и спросить. «Бери вот это решение, а вот это не бери». Пять минут разговора – и ты на той стороне без прыжка.

Есть психологический тест – «пустыня». Ты идёшь по пустыне, перед тобой стена, за ней оазис. Опиши стену. И большинство людей описывают что-то непреодолимое – бетон до неба, колючая проволока, бесконечная в обе стороны.

Но это же стена в твоей голове. Не обязательно её перелезать. Можно сломать. Обойти. Сделать подкоп.