
Полная версия:
Тимлид в небольшой компании. Люди, разработка, бизнес и ИИ

Игорь Чепелев
Тимлид в небольшой компании. Люди, разработка, бизнес и ИИ
Перед началом
Вечером вы закрываете ноутбук и продолжаете объяснять кому-то свою правоту. Собеседника уже нет: встреча закончилась три часа назад. Осталась фраза сотрудника, на которую вы ответили резко, и обещание основателю, которого не стоило давать. Завтра придётся вернуться к обоим.
Днём вы сказали: «Мне нужна самостоятельная команда». А теперь представьте: команда решила без вас, выпустила изменение, всё работает. О чём вы спросите первым? О результате? Или о том, почему вас не позвали? Не спешите выбирать красивый ответ. За несколько глав у нас будет возможность проверить оба.
Компания небольшая. Она делает сервис, через который оптовые фирмы принимают заказы от своих покупателей. Есть старый кабинет, где эти заказы оформляют каждый день, новый продукт, который должен прийти ему на смену, и общий сервер на двоих. Сергей компанию основал, вы теперь руководите разработкой. Анна делает интерфейсы, Борис занимается данными и сервером, Олег ведёт старый кабинет, Денис — интеграции. Позже придёт Вера. Елена отвечает за продукт, Надя — за поддержку. Кто здесь «трудный», кто «перспективный», а кто «не тянет», мы ещё успеем решить. И, возможно, передумать.
Участники и события вымышлены; это учебная история, а не биография автора. Числа иллюстрируют рассуждение, а не задают отраслевые нормы. Внутренние мысли героев показывают возможные мотивы. В своей команде их придётся выяснять, а не угадывать по похожей сцене.
Узнавая в героях сотрудников, попробуйте иногда узнавать себя. Особенно там, где хочется сказать: «У меня другая ситуация». Возможно. Но сначала посмотрим, что произошло после вашей реплики.
ИИ помогает этой команде писать код. Последствия по-прежнему принимают люди. Главы лучше читать подряд: сказанное в понедельник не исчезает к пятнице. Первые пять частей занимают полгода после назначения. В шестой проходит ещё год: команда вырастает с четырёх человек до шестнадцати, и код в ней пишут в основном агенты. Седьмая о том, как такую команду разрезать и что при этом придётся отдать.
После каждой главы есть развилка: похожая ситуация, несколько ходов и короткий разбор каждого. Выберите свой ход до того, как прочтёте разбор: в жизни подсказок под вариантами не будет. Определения и заготовки вынесены в конец. В истории мы задержимся там, где заготовка кончается, а человек напротив всё ещё не согласен.
Кто есть кто
Вы. Три года писали здесь код. С первой главы руководите разработкой и разработчиком при этом быть не перестали.
Сергей. Основатель. Продаёт, называет клиентам сроки и привык получать ответ у того, кто ближе.
Анна. Интерфейсы. Работает быстро, хочет вести большое изменение целиком.
Борис. Данные и сервер. Осторожен, чужие задачи заканчивает вечерами.
Олег. Старый кабинет. Единственный, кто умеет его выпускать.
Денис. Интеграции. Приносит задачи почти готовыми.
Вера. Придёт в шестой главе на место, которое каждый в команде понимает по-своему.
Елена. Продукт. Решает, что входит в выпуск и что обещано клиенту.
Надя. Поддержка. Первой узнаёт, что именно сломалось у клиента.
Тимур, Глеб и Ира. Придут в шестой части, когда команда начнёт расти.
«Меридиан». Клиент: оптовая компания с шестью региональными складами. Первой переходит из старого кабинета в новый продукт.
Что они делают
Старый кабинет. В нём операторы клиентов оформляют заказы. Ночью заказы уходят файлом в учётную систему клиента; эту выгрузку ждут на складах.
Новый продукт. Новый кабинет: карточки покупателей, история заказов, отчёты и подписка с тарифами, которую клиент меняет сам.
Общий сервер. Обслуживает оба кабинета, поэтому любое изменение в нём касается всех клиентов сразу.
Часть I. Пока всё держится на вас
1. Повышение, которого вы не заметили
Сергей объявляет о вашем назначении за семь минут до конца общей встречи. Говорит, что команда выросла, пора освободить его от ежедневной координации, а вам давно тесно в роли разработчика. Анна первой поздравляет. Борис спрашивает, изменится ли порядок ревью. Олег ничего не спрашивает: ему нужно вернуться к обращению клиента.
После встречи Сергей остаётся в звонке.
— Теперь разработка на тебе. Мне нужен результат, а как организовать, решай сам.
Вы слышите доверие. «На тебе» звучит почти как «твоё». Только что именно ваше? Сроки клиентам по-прежнему называет Сергей. Перенести человека между продуктами можно после его согласия. Зарплаты он обсуждает лично. Ваши собственные задачи никто не снял. Вечером вы пытаетесь перечислить новые права и обнаруживаете одно несомненное приобретение: теперь на вопрос «почему не готово?» первым будете отвечать вы.
В понедельник вы приходите с намерением заняться людьми. К обеду Анна ждёт решения по интерфейсу, Борис просит выбрать между двумя обещаниями, которые не помещаются в одну неделю, а Сергей спрашивает, почему ваша интеграция с платёжным провайдером всё ещё не закончена. На вопросы о новой роли пока некогда.
Возможно, дело в вашей организованности. Эта мысль даже утешает: можно раньше вставать, короче проводить встречи, завести другой список задач. Список вы действительно заводите. В нём двадцать три пункта. За день закрываются девять, добавляются четырнадцать. Новый список работает прекрасно: теперь вы точно знаете, насколько не успели.
Вы переносите сложный код на вечер. Через неделю у Сергея появляется подтверждение, что назначение удачное: разработка продолжается, люди получают ответы, важное не падает. Стоимость этого устройства остаётся у вас дома.
Почему трудно спросить о власти
Разговор о полномочиях кажется неблагодарным. Вас только что повысили, а вы уже пришли объяснять, чего вам недодали. Есть и страх услышать: «Раньше как-то справлялись». Поэтому проще ещё немного потерпеть и доказать, что вы достойны назначения.
Но доказательство постепенно превращается в условие роли. Раз вы можете заканчивать свою разработку ночью, её продолжают планировать. Раз умеете договариваться без формальных прав, значит, права вам и не нужны. Компания получает порядок, который работает, и не видит причин его пересматривать.
В среду Сергей лично просит Анну подготовить демонстрацию для клиента. Вы узнаёте об этом, когда Борис спрашивает, почему она пропала из их общей задачи. На встрече Сергей удивляется вашему раздражению:
— Я же не должен через тебя разговаривать со всеми.
— Я теперь за команду отвечаю, — говорите вы.
— Вот и организуй, — отвечает Сергей.
Разговор о вашей должности продлился четыре секунды и ничего вам не добавил. Вы возвращаетесь к двум задачам Анны.
— Разговаривать можно. Сейчас у Анны появились два обещания на одно время. Кто выбирает, какое переносим?
Сергей говорит, что демонстрация важнее. Вы просите сдвинуть срок задачи, из которой он забрал Анну. Он показывает отправленное клиенту письмо. Вы читаете его и произносите: «Ладно, этот раз закрою сам. Но дальше так нельзя».
Обратите внимание на две части фразы. Первая уже стала обещанием. Вторая осталась пожеланием. К вечеру Борис передаёт вам незаконченный участок, а Сергей благодарит за гибкость. Человек получил ровно то, что вы ему пообещали. Было бы странно, если бы он сам догадался считать это провалом договорённости.
Теперь есть о чём говорить. «Разработка на тебе» до сих пор значило для каждого своё. Сергей слышал: ты обеспечишь, чтобы сделали. Вы слышали: я решаю, как делать. Пока эти два смысла не встретились, каждый из вас мог считать ненадёжным другого.
На отдельную встречу вы приносите два плана недели: дневной и тот, который на самом деле выполнили ночами.
— Это временно, — говорит Сергей.
— Какая работа должна закончиться, чтобы временное прекратилось?
Он открывает рот, потом открывает список задач. Разговор о вашей выносливости на этом кончается. Вы проходите по списку с четырьмя вопросами: кто определяет приоритет, кто подтверждает, что выпуск готов, кто вправе сократить объём и кто меняет обещание клиенту. Обещания клиентам Сергей оставляет за собой. Вы организуете работу и показываете, что придётся перенести, до того как он пообещал, а не после. Пока это договорённость двух людей, один из которых только что приучил другого рассчитывать на ночное исключение.
Ещё вы называете собственную загрузку. На код у вас теперь два дня из пяти, остальное забирает новая роль. Значит, интеграцию с провайдером нужно кому-то передать или сдвинуть. Сергей недоволен тем, как медленно это происходит. Вы тоже: передать знакомое труднее, чем вечером закончить самому.
Что стоит узнать до первой реформы
Команда вам знакома, но раньше вы видели её из своего угла. Теперь оказывается, что Надя каждую неделю руками правит заказы, которые ломает загрузка одного прайс-листа, Олег два дня в неделю помогает новому продукту, а Борис согласовывает решения, которые формально не его.
Сначала вы слушаете эти истории по отдельности. Каждая предлагает удобного виноватого. Поддержка обвиняет разработку, разработка вспоминает продажи, продажи показывают обещание, которое никто не опроверг. Чтобы не выбирать самого убедительного рассказчика, вы просите восстановить один недавний случай: кто чего хотел, кто что знал, где работа ждала и кто в итоге заплатил временем.
Рядом появляется короткая карта: кто пользуется старым кабинетом и новым продуктом, что кому обещано, кто за что отвечает, что от чего зависит, как выпускают и как восстанавливают. Неизвестное так и записано: неизвестно. «Кажется, Олег умеет» не значит, что кабинет есть кому выпустить, пока Олег в отпуске. «Резервная копия есть» не отвечает на вопрос, когда из неё последний раз восстанавливались.
Опасные пробелы закрывают сразу. Остальные — не повод перестраивать компанию в первую неделю. Люди и так потратят время, объясняя вам то, чего вы не знали. Не стоит добавлять к этому срочную реформу ради ощущения движения.
В пятницу Борис приносит вам решение, которое раньше вы приняли бы за пять минут. Теперь вы спрашиваете, что здесь на самом деле должны решить вы. Он отвечает, что спор идёт о том, чьё обещание важнее. Технически оба варианта рабочие.
Вы всё равно сначала открываете код. Там легче чувствовать себя компетентным. Только спустя несколько минут закрываете редактор и зовёте Елену.
Новая роль началась с этого небольшого неудобства. Вам пришлось заняться вопросом, который нельзя решить одним хорошим исправлением.
Развилка
Вас назначили руководителем. Прежние задачи остались, новые добавились, и вторую неделю разницу вы закрываете вечерами. Руководитель доволен: всё работает.
С чего начать разговор с ним?
А. «Мне нужно больше полномочий, иначе я не справлюсь».
Б. Потерпеть ещё месяц и прийти с результатами.
В. Принести два плана недели, дневной и ночной, и спросить, что из списка переносится.
Г. Молча раздать часть своих задач команде.
Разбор
А. Слабый ход. Непонятно, какое решение вам нужно, и звучит как жалоба на назначение.
Б. Полшага. Результаты будут, но ночной режим к тому времени станет условием роли.
В. Сильный ход. Разговор идёт о работе, а не о вашей выносливости, и у руководителя появляется выбор.
Г. Слабый ход. Перегрузка переедет к другим, а вопрос о правах так и не прозвучит.
Вывод. Полномочия легче обсуждать на конкретных решениях: кто ставит приоритет, кто меняет обещание клиенту, кто подтверждает выпуск.
Фраза. «Вот что я сделал днём, а вот что ночью. Что из этого списка мы переносим и кто говорит об этом клиенту?»
В справочнике: приложение А, «Роли и полномочия»; приложение Д, «Первые дни в незнакомой области».
2. Он сделал это за вечер
На второй неделе Сергей показывает импорт базы покупателей, собранный с ИИ. «Меридиан», оптовая компания с шестью региональными складами, готов первым перейти из старого кабинета в новый продукт, если туда переедут его покупатели. Таблица открывается, файл загружается, карточки появляются. Сергей несколько раз повторяет загрузку на подготовленном примере и поворачивает экран к вам:
— А мы это обсуждали месяц.
В комнате Анна, Борис и Елена. Поэтому вы слышите больше, чем замечание о сроке. Возникает желание немедленно найти то, что не работает. Если прототип окажется поверхностным, ваш прежний ответ снова станет разумным.
Вы спрашиваете об авторизации, повторных запросах и миграциях почти подряд. Сергей перестаёт показывать и начинает защищать свою работу. Анна вмешивается: интерфейс действительно можно использовать, она уже посмотрела. Теперь её поддержка основателя тоже кажется вам оценкой вашей компетентности.
После встречи Борис говорит, что главный вопрос остался не задан. В старом кабинете и в новой системе один и тот же покупатель может значиться под разными идентификаторами. Нужно решить, когда «ИП Сорокин» и «Сорокин, Тверь» — одна карточка, а когда две разные организации.
Вы знали об этой особенности. Но во время демонстрации были заняты тем, чтобы вернуть себе привычное место эксперта.
Что услышал каждый
«Теперь мы можем быстрее». Быстрее получить экран? Перевезти «Меридиан»? Расклеить карточки, которые склеились зря? На встрече никто не уточняет. И несколько минут у вас полное единодушие: все обсуждают скорость, каждый — свою.
Позже Анна задерживается у вас и спрашивает, можно ли ей довести импорт целиком. Вы отвечаете: «Сначала разберёмся с данными». Она кивает: «Понятно». Что понятно? Что сначала нужно правило? Или что ей снова разрешат только нарисовать экран? Вы не спрашиваете. У вас следующий звонок.
Борис говорит проще: «Скажи заранее, если опять понадобится мой вечер». Вам неприятно это «опять». В прошлый раз он сам предложил помочь. Очень удобная подробность, если не вспоминать, сколько людей тогда ждали его согласия.
Сергей присылает ссылку на запись показа. В конце директор «Меридиана» смеётся и говорит, что теперь хотя бы видно, за что он платит. Вы смотрите этот кусок дважды. В первый раз слышите несправедливость. Во второй — понимаете, почему Сергей так держится за свой прототип. Вам по-прежнему предстоит проверить данные; спор о том, кому было обиднее на демонстрации, их не сопоставит.
На следующий день вы возвращаетесь к результату Сергея.
— Вчера я начал с проверки всего подряд. Давай отдельно посмотрим, что уже можно использовать. И один переход, который меняет срок: как сопоставить старые и новые карточки.
Вы не обещаете, что прототип целиком пойдёт в работу. Сергей не обязан сразу забыть вчерашний тон. Но теперь у встречи есть вопрос, на который можно ответить.
Борис приносит десяток обезличенных карточек, по которым нельзя сказать, один это покупатель или два. Елена выясняет, что «Меридиану» нужно в первом выпуске. Оказывается, старые заказы можно пока оставить в старом кабинете. Это уменьшает объём, но требует согласия клиента.
Анна показывает три экрана. Два можно оставить. Третий придётся переделать: он сообщает об успешном переносе до проверки совпадений. Сергей предлагает пока заменить подпись. Борис спрашивает, кто потом разберёт спорные строки. Пять минут вы спорите о кнопке, за которой стоит работа, никому ещё не назначенная. В итоге выбираете первый шаг поменьше: один регион. Сергей соглашается не обещать перенос всей истории до проверки и сразу смотрит на часы.
Через час он отправит «Меридиану» сообщение: «В пятницу дадим попробовать импорт». Что клиент поймёт под этим предложением, никто пока не уточнит.
Прототип становится обязательством
У готового экрана есть сильное свойство: его легко принять за почти законченный продукт. Оставшееся кажется небольшим, потому что его нельзя сразу показать. Но стоит подключить настоящие данные, и работа становится другой. Появляются доступы, ошибки, вопрос, кто будет восстанавливать, и люди, которым нужно объяснить, почему половина карточек уже переехала, а половина нет.
Представьте макет кухни. Дверцы открываются, подсветка горит, вы уже знаете, где будет кофе. Осталось немного: подключить воду. Можно ли назвать кухню почти готовой? Конечно. Можно ли пока мыть в ней посуду? Совсем другой вопрос. С импортом происходит примерно это: один человек оценивает, насколько убедительно выглядит будущая работа, другой — можно ли уже доверить ей действующие данные. Оба произносят «готово».
Вы решаете оставить часть сделанного Сергеем, проверить сопоставление карточек и назначить владельца первого выпуска. Анна вызывается сама. Вы соглашаетесь, но не снимаете с Бориса другие задачи и не спрашиваете, сколько у него времени. Полномочия Анны тоже пока описаны словами «веди до результата».
На встрече это выглядит как шаг к самостоятельности. На деле она скоро обнаружит, что должна собирать ответы у людей, для которых её задача не первая в списке.
В конце дня вы открываете прототип ещё раз. Некоторые вещи Сергей действительно сделал быстрее, чем вы ожидали. Это означает, что часть вашей оценки нужно изменить. Признать это неприятно: вы уже защищали её перед командой.
Но прежний срок не становится обоснованнее от того, что произнесён уверенно. Если работа сократилась, срок можно пересчитать. А проверка данных как была неизвестной, так и осталась: от чужого раздражения она яснее не становится.
Вы пишете Сергею короткое сообщение с двумя частями: что уже готово и какой ответ ещё влияет на выпуск. Он отвечает: «Отлично, значит, успеваем».
Вы смотрите на это «значит» и решаете уточнить завтра. Сегодня вы уже устали спорить.
Развилка
Основатель за вечер собрал с ИИ работающий прототип и показывает его при всей команде: «А вы это обсуждали месяц».
Что вы говорите первым?
А. Перечисляете, чего в прототипе нет: авторизация, повторные запросы, миграции.
Б. Спрашиваете, что уже можно взять в работу, и называете один переход, от которого зависит срок.
В. Соглашаетесь: теперь успеем быстрее.
Г. Просите неделю на аудит прототипа.
Разбор
А. Слабый ход. Вы защищаете прежнюю оценку, он начинает защищать свою работу, и главный вопрос остаётся не заданным.
Б. Сильный ход. Сделанное признано, оставшееся названо так, что на него можно ответить.
В. Слабый ход. «Быстрее» каждый понял по-своему, а срок пересчитан без данных.
Г. Полшага. Проверка нужна, но без названного вопроса она выглядит как отсрочка.
Вывод. У готового экрана и у готового продукта разные вопросы. Признайте сделанное и отделите то, чего на экране не видно.
Фраза. «Что из этого берём как есть? И один вопрос, который меняет срок: как мы узнаём, что две карточки — один покупатель?»
В справочнике: приложение Г, «До принятия».
3. Ошибка, которая не попала в отчёт
В пятницу «Меридиан» получает импорт: пока для одного региона. Анна проверила загрузку, Борис посмотрел серверную часть, Елена согласовала с клиентом четыреста карточек. В отчёте появляется строка: «Запущено в срок».
В понедельник Надя присылает снимок экрана. Одиннадцать покупателей задвоились. У одного менеджер «Меридиана» уже записал в новую карточку договорённость о скидке, а его коллега продолжал принимать заказы по старой. Теперь мало удалить лишние строки: нужно понять, какие изменения сохранить.
Анна отвечает, что повторную загрузку проверяла. Борис спрашивает, с теми же ли идентификаторами. Вы замечаете, что разговор начинает превращаться в выяснение того, кто недосмотрел.
— Давайте сейчас исправим, потом разберёмся, — говорите вы.
Через минуту Сергей пишет лично: «Кто пропустил?» Вы отвечаете: «Анна не проверила повторную загрузку. Сейчас исправим». Это занимает меньше времени, чем объяснить, что повторные загрузки бывают разными и правило никто не собрал. Пока сообщение кажется предварительным. Сергей переносит его в свою заметку к оценке сотрудников. Об этой заметке вы узнаете позже.
К вечеру данные восстановлены. Надя трижды созванивалась с «Меридианом», Борис отложил свою интеграцию, Анна внесла исправление. Сергей благодарит за оперативность. В недельном отчёте по-прежнему один успешный выпуск.
Посмотрите на этот отчёт. Он врёт? Выпуск действительно состоялся в пятницу. Ошибка действительно устранена. Просто понедельника, который ушёл на исправление, в строке нет. Нет и интеграции Бориса, сдвинувшейся на день. Получается удивительно экономный способ ускорять разработку: достаточно считать только ту часть недели, когда вы что-нибудь выпустили.
Почему люди защищают свою версию
На разборе Анна начинает с фразы: «В требованиях этого не было». Борис отвечает: «Мы это обсуждали». Оба говорят правду о разных вещах. Борис упоминал неоднозначность записей; точное правило и проверка для изменённого файла так и не появились. Анна слышала общий риск, но не получила завершённого условия приёмки.
Вы называете её объяснение оправданием. Анна сразу перестаёт смотреть в документ.
— Ты спросил, что я проверяла. Я отвечаю.
Знакомая неловкость: вопрос был произнесён как вопрос, а внутри у вас уже лежал правильный ответ — она должна признать, что поторопилась. Всё остальное мешает перейти к выводам. Вы просите её продолжить, но прежнего подробного ответа уже не получаете. Теперь она перечисляет только то, что может подтвердить ссылкой.
Борис защищает другое. Если признать случай обычной мелочью, его подготовка опять окажется избыточной, а исправление войдёт в обязанности по умолчанию. Он начинает подробно перечислять сообщения, в которых предупреждал о риске. Вы слышите злорадство. Возможно, там есть и оно. Но за ним лежит вполне предметный вопрос: что происходит с его словами до аварии?
Вам самому тоже нужно объяснение попроще. Назвать ошибку Анны проще, чем признать, что приняли её ответственность без согласованных полномочий и промолчали на сообщение Сергея о сроке.
Чтобы разговор сдвинулся, нужно восстановить последовательность. Какой файл использовали на проверке? Чем отличался реальный? Кто мог подтвердить правило сопоставления? Что клиенту сказали о пределах выпуска? Когда стали известны сомнения?
Постепенно выясняется, что условия готовности жили в трёх местах: в чате, в памяти Бориса и в ожиданиях клиента. Каждый считал часть картины очевидной. Никто не собрал её в одну договорённость, которую можно проверить.
Это не снимает ответственности с Анны за проверку. И не делает Бориса единственным человеком, который обязан был увидеть всё. Вы отделяете конкретные действия от общего портрета сотрудника: в этой задаче не проверили повторную загрузку изменённого файла; общий вывод «Анна не умеет работать без контроля» пока шире фактов.
Цена, которую нужно вернуть в картину
Надя рассказывает, что клиенту пришлось дважды объяснять, почему записи расходятся. В первый раз она сама ещё не понимала причину и обещала обновление раньше, чем получила его от команды. На следующем звонке клиент попросил подключить кого-нибудь «из тех, кто знает».
В техническом отчёте этого нет. Для Нади это самая неприятная часть дня. Она говорит сухо и даже улыбается, чтобы история не выглядела жалобой. Если вы спросите только о количестве обращений, этот эпизод легко пропустить.
В разбор вы включаете восстановление карточек, день поддержки и сдвиг задачи Бориса. Числа приблизительные, и вы так их и помечаете. Сергею отправляете весь разбор. Начинаете дописывать: «Утром я неверно свёл причину к Анне». Потом стираете. В документе и так всё сказано. Зачем отдельно возвращаться к неудачной формулировке?
Затем замечаете ещё одну причину: вам не хочется дважды за день оказаться человеком, который поспешил с выводом. Документ отправлен, личное сообщение осталось. Для вас подробное объяснение уже заменило короткое обвинение. Проверять, заменило ли оно его для Сергея, вы не стали.

