#процессы

24 постов
пост №2051

Удивительно наблюдать, как гиганты (не)справляются с вайб-кодингом:

Github потерял последнюю девятку в своем SLA. Отдельно замечу, что status page вендоров уже давно нельзя верить и вот люди собрали собственный, народный.

Амазон был вынужден сильно замедлить выкатку фич после падений и теперь требует сениор-ревью перед релизами.

Хотя казалось бы, уж у них-то должны быть и автоматизированные тесты и легион ручных QA-инженеров!

Вот целый список подобных падений, с оценкой, сколько пользователей они задели.

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

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

В общем, быть техдиром опять становится интересно.

пост №1815

Встречали это «вечное противостояние» между продактами и разрабами? Каждый думает, что лучше знает, что делать с продуктом:

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

Раньше я думал, это — «здоровый производственный конфликт». Теперь я считаю, что это — признаки «бытовой неустроенности», того, что с разработкой в компании есть проблемы. К сожалению, 90% команд живёт в этом состоянии.

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

Я приму участие в этом курсе — но об этом в следующий раз.

пост №1760

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

Трагедия в том, что предыдущий подрядчик уже взял кучу денег и потратил полгода клиента «на разработку», не задав базовые вопросы о бизнесе. Честно говоря, у него и не было шанса запуститься вовремя.

Пускай это жёсткий пример, но история классическая:
1. заказчик описывает задачу и просит назвать сроки и цены;
2. подрядчики называют сроки и цену и берут проект;
3. начинаются работы по проекту, и что-то идёт не так;
4. к дедлайну нужного результата нет, все недовольны. Но проект надо доделать.

И эта проблема не только у аутсорсеров — такая же динамика есть и во многих продуктовых компаниях.

Почему так происходит?

- 💼 заказчики живут в реальном мире: если продукт не начнет продаваться или решать другие задачи вовремя, то экономика бизнеса не сойдется и можно закрываться — поэтому они требуют четких сроков и смет;
- 🙏 подрядчики вынуждены комититься в сроки и деньги без детальной проработки проекта. Иначе проект возьмет более сговорчивый конкурент, и команда останется без зарплаты;
- 🛠️ разработчики в команде мечтают работать над сложными проектами уровня Яндекса, но вынуждены пилить такие кривые задачи, как будто их ставили некомпетентные дураки.

На самом деле все хотят как лучше.

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

Почему это иллюзия?
Потому что разработка — это перевод очень нечетких хотелок и смутных желаний заказчика в супер строгий, не допускающий никакого двойственного толкования язык программирования. Это как с мыслями: всё очевидно, пока крутишь их в голове. Но стоит сесть и попытаться записать их, как выходит полная хрень.

(Этот пост я написал с третьей попытки, а потом понял, что потребуется целая серия постов. Так что я знаю, о чём говорю.)

💡 Для того чтобы управлять сроками, качеством и стоимостью разработки, нужно действовать контринтуитивно: уметь находиться в состоянии неопределенности, выдерживать её — и методично её прояснять.

На старте проекта бессмысленно требовать от заказчика четкости: вообще самое плохое, что можно сделать — это заставить его написать техническое задание (если он умеет писать ТЗ — то он и программирует неплохо). Вместо этого мы вначале 70-90% времени работаем исследователями — разбираемся, какую бизнес-задачу заказчика решаем и какие ресурсы и ограничения у нас есть.

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

пост №1593

Раз уж про мессенджеры и работу: на прошлой неделе главный рабочий мессенджер Slack объявил о повышении цен: c 8 долларов в месяц за сотрудника до 8,75$.

Я узнал об этом случайно от знакомых, потому что у нас в компании единственный корпоративный чат — в телеграме, с фоточками котов, собак, ежей, оленей и прочих домашних животных.

Почти вся наша рабочая коммуникация — асинхронная, в Basecamp. Стоит Basecamp 99$ в месяц вне зависимости от числа проектов и сотрудников.

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

Я переводил несколько команд в Basecamp и хоть это и не просто, результат того стоит.

Успевают программисты и дизайнеры больше, а устают — меньше. Рекомендую.

Картинка из 2015 для разрыва шаблона.

пост №1574

Вернулся старый клиент, просит прислать ещё раз оффер, который мы готовили для него 9 месяцев назад.

Файл по ссылке в google docs почему-то удален, не открывается.

Копии нигде нет. У нас тогда ещё не было наших замечательных менеджеров Ксюши и Даши, которые делают так, что ничего не теряется.

В результате выкрутился тем, что нашел запись Zoom-звонка, в которой я презентую оффер с шерингом экрана — там можно поставить на паузу и увидеть все таблицы. Магия!

У меня зум настроен так, что все встречи по-умолчанию записываются в облако — очень удобно при написании фоллоу-апов.

Ну и для каждого клиента я создаю отдельную «вечноживую» ссылку с его именем, которую закрепляю в общем чате — так легче заходить на встречи и можно просто посмотреть все встречи именно с ним. Горячо рекомендую!

пост №1568

Мы в компании «Федя и Самат» проводим эксперимент.

Пробуем 4-дневную рабочую неделю.

Мотивация простая: всё равно больше 4 дней нормально думать, именно думать, не просто клавиши нажимать — не получается. Раз так — что время зря терять? Лучше с толком отдохнуть.

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

У нас через пару недель оффлайн слёт — обсудим там первые впечатления подробнее.

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

Эксперимент продлится 2-3 месяца. Федя обещает регулярно отчитываться публично у себя в канале, а я, наверное, буду как обычно время от времени байки травить и отчитаюсь в конце.

Краткий список литературы (я сомневаюсь в её валидности): свежая статья от Harvard Business Review, английская википедия, красивый лендос и аж целое НКО.

пост №1451

Закончил на днях технический аудит очередного клиента. Хочу поделиться историей, которую вижу буквально в каждом втором случае.

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

Через 3-6 лет в компании уже 50 разработчиков. Продукт при этом практически не развивается, фичи доставляются разработкой в продакшен со скорость улитки. Добавьте к этому зарплаты разработчиков в 100-400 тысяч в месяц и вы можете представить, что чувствует бизнес. Почему так?

А происходило вот что: все эти годы, каждый раз, когда нужно было выбрать между «сделать фичу побыстрее прямо сейчас» и «сделать так, чтобы это можно было потом поддерживать, пусть и подольше прямо сейчас» — бизнес с разработкой вместе выбирали первый вариант. Логично, что рано или поздно гора неподдерживабельного кода становится слишком высокой и уже никто не может докинуть ещё что-то сверху.

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

В общем, искать виноватого смысла нет, а варианты решений следующие:

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

2. Если же вам нужно развивать то, что есть — то впереди вас ждут пот и слёзы.

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

Нужно отдавать технические долги и приводить код в порядок. Технически, есть несколько основных подходов и обычно используется их комбинация. Подход первый: выделить изолированный кусочек проекта и переписать его «начисто», минимально затрагивая остальные части. Подход второй: начать писать тесты поверх функциональности, которая есть. И тд и тп. Это — исключительно сложная инженерная работа. В несколько раз сложнее, чем написать аналогичный проект с нуля. Плюс в том, что вы так потеряете меньше знаний, который вложили в продукт за эти годы.

Организационно, вам придётся выделять на это адское количество времени и сил. Речь о 30-50% времени ваших инженеров. Результаты, в плане увеличения скорости разработки, вы увидите через месяцы в лучшем случае. Другого пути я не знаю.

Также, имеет смысл добавить в команду новых опытных бойцов. Дело тут не только в технической компетентности, но и в отсутствии психологических «долгов», свежести и незамутненности взгляда, в четком мандате на перемены. Желательно, чтобы человек уже имел опыт подобного рефакторинга.

В общем, это — путь смелых.

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

Приведение этого процесса в порядок — отдельная работа, но об этом — в следующий раз.

пост №1390

Встреча в офисе — не только вечеринка.

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

Федя заказал ведение этой встречи у Марьяны Онысько. На первую половину, когда составляли таймлайн, меня не пустили (чтобы не давил авторитетом), но вторая мне очень нравится.

Прям кайф, приятно смотреть, как работает профессионал и как команда становится ближе.

пост №1241

«На совещаниях всегда за что-то дрючат, но конкретные решения никогда не озвучиваются — и они приходят откуда-то совершенно разрозненно, в виде одиночных задач. Эстетики там нет, смысла нет, руководящей руки нет, — жалуется один из строителей. — Я понял бы еще, если бы приехало первое лицо, прогулялся человек — и говорит: „Сменить нахуй!“ Но его там не бывает — а перемены все равно происходят. Как-то сами собой».

Именно так происходит совсем плохая IT-разработка, на примере строительства мега-дворца.

За наводку спасибо Игорю.

пост №1157

Как управляют разработкой в самом популярном музыкальном сервисе в мире?

5 лет назад Spotify рассказали о своей системе управления разработкой, Spotify model. Сегодня о ней знает любой менеджер в IT, а многие положения из этой системы стали стандартами де-факто.

На прошлой неделе я поговорил с Юлей Куропатенковой, инженерным менеджером в Spotify. Юля отвечает за бэкенд авторизации. Она рассказала, что за эти годы их система управления разработкой сильно изменилась, сколько программистов и команд в Spotify, кто и за что отвечает. До Spotify Юля поработала в дочке IBM и поэтому может сравнить два диаметрально противоположных подхода к организации разработки.

Слушайте на всех платформах: Apple, Google, Castbox, Яндекс, Spotify, Overcast, ютуб и веб-версия.