Сообщество - Типичный программист

Типичный программист

1 373 поста 6 692 подписчика

Популярные теги в сообществе:

3

Служить и защищать: тимлид на страже команды

Служить и защищать: тимлид на страже команды Личный опыт, Тимлид, Лидерство, Команда, Работа, Автоматизация, Эффективный менеджер, Разработка, Методология, Менеджмент, Мотивация, Scrum, Kanban, Руководство, Процесс, Продуктивность, Длиннопост

life developer

Привет, дорогой читатель! Хочу поделиться историей о том, как за 6 лет работы тимлидом в разных компаниях я понял, что наибольшую эффективность работы команды стоит ждать тогда, когда ты служишь своей команде. Сейчас объясню на примерах.

Кстати, термин «servant leadership» ввёл в 1970-х годах Роберт Гринлиф в своём эссе «Слуга как лидер». Он работал топ-менеджером в AT&T, и я понял то же, что и он, только спустя полвека.

Статья – чисто моё мнение и видение ситуации исходя из опыта. В роли тимлида я руководил различными командами: от 1 разработчика до группы из 20 человек (разработчики, тестеры, аналитики).


НАЧАЛО ПУТИ: ОТ ОДНОГО РАЗРАБА ДО ДВАДЦАТИ

Когда я дорос до тимлида, я попал в классическую ловушку. Думал: «Ну всё, теперь я главный, буду раздавать указания и следить за их выполнением». Но реалии были таковыми, что выполнять задачи – это полдела, а вот делать их эффективно – это надо попотеть и примерить на себя роли психолога, «старшего товарища» и лидера, которому доверяют коллеги, кто может свободно общаться с начальством о нуждах команды. По сути, такое связующее звено между эффективной командой и заказчиками. Это и есть суть servant leadership – служить команде, а не командовать ею.

Эту-то эффективность и надо выстраивать тимлиду, приводя команду к максимальной точке эффективности. Микроменеджмент долой!

К слову, обязанности тимлида, руководителя проекта и руководителя продукта в небольших компаниях переплетаются.

АВТОМАТИЗАЦИЯ РУТИНЫ

Первое, что я стараюсь сделать в этой роли – избавить команду от рутины. Настроить автоматизацию в Jira: сценарии для создания задач, автоматические переходы по статусам, уведомления, шаблоны новых задач. Разработчики, тестировщики и аналитики перестают тратить время на заполнение полей вручную, а рабочий процесс по описанию задач поставлен на рельсы.

Дальше берусь за GitLab (а в основном его сейчас используют) – включил линковку задач Jira с MR, проверки code style (линтер + SonarQube), запуск тестов. Также, MR проверяется в полуавтоматическом режиме с помощью AI.

Для тестировщиков будет удобным настроить систему логирования ошибок в проде – Sentry.

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

Таким образом, команда получила больше времени на то, что действительно важно – на написание кода. И, хочу заметить, что всё это должен проконтролировать тимлид (ну и техлид, если имеется).

ЗАЩИТА КОМАНДЫ ОТ НАЧАЛЬСТВА

Отдельная история – это утилиты для сбора статистики по работе сотрудников. Начальство любит цифры, и мы их должны предоставить. Вместо того, чтобы заставлять разработчиков писать отчёты – обычно автоматизируются выгрузки отчётов о закрытых задачах, времени их выполнения в разрезе по каждому разработчику. Всё это можно настроить через Jira API, либо платные плагины. Получилось «два в одном»: менеджмент доволен красивыми графиками, а команда не отвлекается на отчётность.

РИТУАЛЫ БЕЗ ФАНАТИЗМА

Насчёт стандартного набора тимлида: дейлики, ретро, планирование с Planning Poker. Главное – не переусердствовать. Всё для команды, а не команда для процессов. Если какая-то практика не работает, меняем или убираем.

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

Также хорошей практикой будет совместный поход в бар/квест с коллегами.

SCRUMBAN КАК КОМПРОМИСС

Насчёт методологий – никто в чистом виде их не использует. Обычно в моей практике получается так называемый Scrumban – помесь Scrum и Kanban. Почему? Потому что чистый Scrum слишком жёсткий для фронтенда (особенно когда постоянно прилетают «горящие» задачи), а чистый Kanban не особо предназначен для планирования.

Scrumban даёт гибкость Kanban с планированием из Scrum. Команда может быстро реагировать на изменения, но при этом не теряет фокус на основных целях спринта.

ВСЁ ВЫШЕ И ВЫШЕ И ВЫШЕ…

Отдельный навык servant leadership – это умение защищать интересы команды перед руководством. Когда разработчик хорошо работает, но по каким-то причинам не получает повышение зарплаты, моя задача – это исправить.

Готовлю аргументы, собираю метрики производительности, иду к начальству и «выбиваю» повышения. Не всегда получается, но попытки нужно делать. То же касается и обновления оборудования, или повышения в должности. После ответа руководства для самого разработчика перспективы работы в этой компании будут видны чётче. Команда должна знать, что тимлид на её стороне, что тимлид первым принимает удары и берёт ответственность за подчинённых и их ошибки.

Разбор ошибок с командой – всё это делается на общих встречах, а частные проблемы разбираются один на один (не при всех).

ПОЧЕМУ ЭТО РАБОТАЕТ

Servant leadership работает по простой причине: когда разработчики видят, что ты работаешь для них, а не против них, они начинают работать лучше. Не из страха, а из уважения и желания не подвести.

Плюс, такой подход снимает множество конфликтов. Команда понимает, что тимлид – это не «надсмотрщик», а партнёр, который помогает решать проблемы и защитит, если необходимо.

ЗАКЛЮЧЕНИЕ

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

Servant leadership – это не про мягкотелость или попустительство. Это про создание условий для максимальной продуктивности команды. И да, иногда приходится быть жёстким – но всегда в интересах команды, а не для демонстрации власти.

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

PS: Я не описал здесь про решение конфликтных ситуаций, но это тоже надо уметь делать деликатно. О чём будет одна из последующих статей.

Эту и другие мои статьи можно всегда обсудить тут «Life Developer. Статьи»

Показать полностью 1
5

Когнитивная недогрузка разработчика: мой способ борьбы с паузами в коде1

Когнитивная недогрузка разработчика: мой способ борьбы с паузами в коде Личный опыт, Саморазвитие, Развитие, Опыт, Работа, Программист, Мотивация, СДВГ, Продуктивность, Дофамин, Фон, Концентрация, Изучение, IT, Длиннопост

Привет! Хочу поделиться открытием, которое изменило моё отношение к работе. Оказывается, моя «странная» привычка отвлекаться на что-то фоном – вроде фильмов, серфинга по статьям или похода на кухню за кофе – на самом деле имеет научное обоснование. Возможно, далее ты узнаешь и себя.


ЧУТЬ ПОЯСНЕНИЯ

«Когнитивная недогрузка» – состояние, когда мозг получает недостаточно стимулов для полной загрузки. Исследования* показали: когда нам скучно, мозг начинает искать дополнительные источники информации. То есть чем больше ты погружаешься в задачу – тем сложнее уже тормозить во время вынужденных пауз и твой мозг «ищет топливо» для дальнейшей эффективной работы без остановки.

У программистов это особенно выражено. Запустил сборку – сиди «тупи» 3 минуты. Отправил вопрос в рабочий чат – ждёшь ответ. Думаешь над архитектурой – процесс небыстрый. В эти моменты часть мозга «простаивает» и требует загрузки.

МОЙ СЛУЧАЙ

За много лет разработки я заметил закономерность: во время работы мне постоянно нужна фоновая активность. Дома могу спокойно лежать на диване, а вот за компьютером – никак.

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

КАК ПРОЯВЛЯЕТСЯ У МЕНЯ

Я люблю во время вынужденных пауз читать различные технические статьи в интернете. А ещё у меня почти всегда запущен фоном какой-нибудь фильм, сериал или YouTube-подкаст во время работы.

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

КАК НА СЧЁТ МУЗЫКИ?

Хороший вопрос. Пробовал музыку – не то. Мне нужен именно визуальный ряд, чтобы занять «простаивающую» часть мозга. Плюс, с YouTube я могу параллельно что-то новое узнать из последних тенденций IT в мире (привет TED).

ЧТО ГОВОРИТ НАУКА

Исследования* утверждают, что объём ресурсов внимания уменьшается при низкой умственной нагрузке, что приводит к снижению продуктивности и скуке. Во время пауз в работе мозг получает недостаточно стимулов и начинает искать дополнительные источники активности. Поэтому фоновый просмотр видео или серфинг сайтов помогает поддерживать внимание и облегчает возвращение к основной задаче.

Кто-то крутит спиннер, кто-то жуёт жвачку, кто-то листает соцсети. Главное – найти свой способ «догрузить» мозг, не мешая основной работе.

* см. работу «Malleable attentional resources theory» от Young & Stanton, 2002г.

Когнитивная недогрузка разработчика: мой способ борьбы с паузами в коде Личный опыт, Саморазвитие, Развитие, Опыт, Работа, Программист, Мотивация, СДВГ, Продуктивность, Дофамин, Фон, Концентрация, Изучение, IT, Длиннопост

А как ты справляешься с паузами в работе?  Что делаешь, пока ждёшь компиляцию кода?


Эту и другие мои статьи можно всегда обсудить тут «Life Developer. Статьи»

Показать полностью 2

В Google уже сейчас половина кода — дело рук ИИ

В Google уже сейчас половина кода — дело рук ИИ Искусственный интеллект, Openai, Будущее, Digital, Инновации, Чат-бот, Технологии, Тренд, DeepSeek, Google, Программирование

Цитата из отчета:

"...ИИ помогает дописывать 50% символов кода. Другими словами, сейчас столько же символов в коде дописывается с помощью ИИ, сколько вручную вводят разработчики. Хотя инженерам всё ещё нужно тратить время на проверку предложений, у них остаётся больше времени для сосредоточения на проектировании кода"

📊 Подробнее в отчёте Google


Пишу о применении и влиянии новых технологий на бизнес и повседневную жизнь в Telegram канале: : https://t.me/+NimdslpY9WU0MDYy

Показать полностью
9

От джуна до тимлида и обратно: почему я выбрал код

Привет! Решил поделиться своей историей – может, кому-то будет полезно или хотя бы весело. За 20+ лет в разработке я прошёл путь от студента, который изучал C++, до техлида в госкомпании. И знаешь что? Понял, что комфортнее всего мне было просто кодить, а не управлять людьми.


НАЧАЛО: КОГДА ИНТЕРНЕТ БЫЛ ПО КАРТОЧКАМ

Всё началось в институте. Купил толстенную книгу по C++ (автор – Бьерн Страуструп), но начать кодить получилось не сразу, компилятор на горбушке было трудно достать. Поэтому я смотрел на предлагаемый в книге код и представлял себе результат выполнения. Да-да, я мысленно «компилировал» код и пытался понять, что выведется на экран. Сейчас это звучит странным, но тогда у меня не было другого выхода, а программировать ужас как хотелось.

Потом появился Delphi. Drag&Drop интерфейс – сразу видишь результат. Чувствуешь себя настоящим программистом, что вот-вот и начнёшь делать «мега крутую программу», а то и новую оболочку для Windows. Параллельно ненадолго пришёл 1С, потом интранет-сайт (олдовое название) на работе на PHP. И меня уже было не остановить: HTML, CSS, немного JavaScript – всё по классике.

ГОДЫ СТРАНСТВИЙ

Дальше понеслось: десктопные приложения на C# WPF, перехват хуков Windows API, бэкенд, фронтенд, базы данных – что угодно, лишь бы работало. С упоением ждал новых версий технологий, чтобы попробовать их новые фишки.  PostgreSQL, MSSQL, MySQL, Redis, MongoDB – всё перепробовал. Параллельно с этим хочешь не хочешь, но изучаешь, как не только «переустановить винду», но и поднять с нуля БД, что прописать в реестр и как создать сервер для сайта. Был универсальным солдатом: утром фиксишь баг в API, днём рисуешь новую форму на фронте, вечером оптимизируешь запросы к базе.

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

КАРЬЕРНЫЕ КАЧЕЛИ

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

Тимлид – это когда ты должен быть на связи 24/7. Суббота, воскресенье, утро 1 января – не важно. «Можешь быстро посмотреть?», «А как ты думаешь?», «А почему не работает?». И вроде бы статус высокий, зарплата больше но кайфа от работы меньше. Да, ты как небольшой руководитель стараешься всё автоматизировать, все процессы работы твоих сотрудников – от Jira правил до автопроверки кода и выкладки Docker-контейнеров на стенд. Но при этом теряешь контроль над самым важным элементом – кодом проекта.

ПРОЗРЕНИЕ

И тут до меня дошло: я программист, чёрт возьми! Мне больше нравится решать задачи кодом, а не людьми. Мне нравится видеть, как оживает интерфейс, как оптимизированный алгоритм работает в разы быстрее. Мне НЕ нравится объяснять в пятый раз, почему нужно не просто «добавить кнопочку» из задачи, а и предугадать к чему это добавление может привести (в том числе намёк в сторону тестов кода).

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

ВЫВОД

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

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

Показать полностью
6

Стоицизм, самурайство и пофигизм в ИТ

Статья о моей философии и изрядно приправлена самоиронией. И причём здесь катана и JBL?

Стоицизм, самурайство и пофигизм в ИТ Психология, Личный опыт, Система, Work Life balance, Длиннопост

Для тех, кто устал от корпоративного театра, но все еще любит своё дело.

Пролог: Катана и JBL Boombox 3

На праздник Пурим я пришёл в офис с катаной в одной руке и колонкой в другой. Коллеги думали — это костюм. Скорее метафора.

Катана — принципы, которые режут правду. Boombox — пофигизм, чтобы танцевать среди хаоса.

Мы не в эпоху сёгунов, но ИТ — та же война: против глупости, выгорания и бессмысленных скрамов.

1. Стоик — это не каменный идол.

«Всё пропало! Продакты снова всё поменяли!» — нервничает коллега.

Стоицизм — это когда вокруг всё горит, а ты спрашиваешь себя:

  • Что я могу изменить? (допилить фичу, пинговать тимлида)

  • Что не могу? (бред клиента, политику компании)

Какое часто правильное действие? Сейчас просто сделать свою часть, закрыть ноут и уйти в йогу/прогулку/чатик.

Зачем?

Чтобы не сгореть. Помни, что ты всё-таки просто человек. Делай что можешь - а дальше - будь что будет. Если баг в твоей зоне — чини. Если бардак в чужой — не становись «добровольным пожарным». Закрыл ноутбук — действительно закрыл. Научись говорить «нет». Даже себе — не всегда стоит хвататься за первичный импульс. Мир не рухнет.

Не геройствуй. Это плохо заканчивается. Компания — не твоя семья.

2. Самурай без господина. Или зачем тебе кодекс

Для меня «самурайский кодекс» — не про ритуалы, а про честность перед собой. Выбери свои же правила, за которые тебе не стыдно. Такие как:

  • Не пушишь на прод ночью, даже если просят, если чуешь, что «не стоит».

  • Не скидываешь джунам таски, которые они еще не в силах выполнить.

  • Помнишь, что бизнес ценит в первую очередь решения, а не красоту кода.

  • Не целуешься с legacy-кодом — рефакторишь или оставляешь метки для следующих.

Почему?

Не ради кармы. Ради уважения к себе. Какие - выбери сам, я просто привёл примеры. Не забывай, что ты можешь их всегда пересмотреть. Честность с собой — лучшая инвестиция.

3. Дзен в айти: когда режешь код — режь код

ИТ — это бесконечный поток. 20 вкладок в браузере, 5 непрочитанных чатов,3 «срочных» таски. Многозадачность - это зло.

Дзен-ответ:
Выбери одну задачу.
Отключи уведомления.
Почувствуй клавиатуру под пальцами.

Спринт — это иллюзия. Есть только то, что ты делаешь сейчас.

4. Пофигизм - высшая форма ответственности

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

Не жди одобрения и не драматизируй поражения.

  • Уволили? И такое бывает, это не конец жизни.

  • Повысили другого? Да, теперь ты знаешь, что повышают не тех, кто больше всех пашет.

  • Не оценили твой вклад? Да и ладно. Свой опыт ты получил.

В чём сила?

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

5. Остаться собой, даже когда все вокруг с ума сошли

Смысл не в том, чтобы быть героем, а в том, чтобы не предавать себя.

Иногда смотришь на это всё, и видишь — да, это грёбаный цирк. Меняющиеся требования, перенос дедлайнов, дурь топов… Да, я в нем участвую. Но не стоит относиться к этому слишком серьёзно. По моему опыту - чем серьёзнее относишься к жизни — тем больнее она тебе делает. Успокойся, это все игра. Мы все здесь — временно.

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


Эпилог: Ты — ронин цифровой эпохи

Слишком? Ну, переживи как я «смерть двух и более господинов» - когда компания закрывается или тебя увольняют по не зависящим от тебя причинам. Тогда ты точно всё поймешь.

У тебя нет господина (компания — временный наниматель).
Нет вечной верности (только текущий контракт).
Но есть клинок навыков и дзен-пофигизм как ножны.

Это про не ныть, не суетиться и не обманывать себя.

Всё остальное — бонусом.

Держи катану остро отточенной. А JBL — на полной громкости.

Если резонирует — залетай в мою телегу. Там не про айти, это мой психологический дзен панк.

Показать полностью 1
Отличная работа, все прочитано!