Управление Командой Программистов: Как И Как Правильно Их Мотивировать? Первая Часть

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



Управление командой программистов: как и как правильно их мотивировать? Первая часть

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

Крутые разработчики встречаются редко и востребованы.

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

Помимо сложностей с наймом как таковым, опыт каждого конкретного разработчика, его знание существующего продукта и истории его развития зачастую незаменимы или трудно и трудоемки в восполнении.

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

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

Рассмотрим основные факторы мотивации программистов (команд программистов), используя для наглядности и структурирования изложения пирамиду Маслоу.

Если вы не слышали о пирамиде Маслоу, то это не бесспорная, но очень популярная и показательная теория американского психолога Абрахама Гарольда Маслоу, который предложил теорию личной мотивации, основанную на иерархии человеческих потребностей (см.

картинку ниже).

Маслоу расположил потребности личности в иерархическом порядке: от физиологических потребностей до потребности в потенциальном развитии и самореализации.

Ключевое предположение теории Маслоу заключается в том, что «человек не может испытывать потребности более высокого уровня, пока не будут удовлетворены его потребности более низкого уровня».

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



Управление командой программистов: как и как правильно их мотивировать? Первая часть

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

Помимо того, что каждым человеком движут разные интересы, каждый человек еще и находится в разных условиях жизни.

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

То, что важно одному, совершенно неважно другому, и завтра все снова изменится.

Чтобы правильно понять этот контекст, есть простое средство – нужно над ним задуматься и поработать с ним.

Самое главное – это общение.

Обязательно разговаривайте с коллективом о чем-то помимо работы, выстраивайте неформальные отношения.

Итак, теперь давайте пройдемся по пирамиде Маслоу и рассмотрим ее уровни применительно к управлению командой программистов.

Я: Физиологические, биологические потребности: Говоря о мотивации, многие часто в первую очередь думают о зарплате.

В данном случае под зарплатой я подразумеваю постоянную часть компенсационного пакета, которая никак не зависит от результатов.

Это не касается бонусов, бонусов и акций компании.

Именно зарплату я бы в нашем случае отнес к уровню «физиологических потребностей».

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

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

Особенность работы с программистами в том, что все это люди, во-первых, очень умные (особенность профессии), во-вторых, глубоко и/или широко образованные.

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

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

Для людей этого уровня зарплата обычно не является основным мотивирующим фактором.

При этом отсутствие достойной зарплаты у программистов, в их понимании, демотивирует, и демотивирует сильно.

Достойная зарплата – это норма.

Заработная плата значительно выше нормы (рыночной) – тоже, как ни странно, достаточно демотивирующий фактор.

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

По его словам, более скучающих, ленивых и демотивированных программистов он в жизни не видел.

Факт повышения зарплаты может мотивировать в краткосрочной перспективе, но через несколько месяцев новая зарплата становится нормой и перестает мотивировать.

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

Второй важный момент – наличие справедливого баланса в уровне зарплат в команде.

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

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

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

II. Потребность в безопасности, комфорте, постоянстве условий проживания: 70 лет назад наличие печки в автомобиле могло быть мотивирующим фактором при выборе автомобиля; тогда это было выше нормы и было признаком роскоши.

Сейчас даже отсутствие кондиционера – нонсенс, а его наличие, конечно, не будет мотивирующим фактором при выборе автомобиля.

Так 10-15 лет назад удобный офис, хорошее железо, вкусный кофе, фитнес, гибкий график и т. д. могли быть хорошими мотивирующими факторами, а сейчас это скорее норма работы хорошего программиста.

В то же время их отсутствие снова будет демотивировать.

Важным демотивирующим фактором является отсутствие способности концентрироваться и шумная рабочая обстановка.

Работа программиста требует тишины и концентрации.

Если офисное помещение не дает возможности предоставить разработчикам уединенное рабочее пространство, необходимо как минимум обеспечить комфортное сотрудничество коллег, не мешающих друг другу.

Энергичных и громких товарищей лучше объединять друг с другом, давая возможность сконцентрироваться тем, кто в этом нуждается.

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

«Эта тема хорошо освещена в одной из статей Джоэла Спольски».

Тест Джоэла: 12 шагов к улучшению кода».

Физический компонент комфорта – самый основной и простой; теперь поговорим об остальном.

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

Это хорошо и правильно, если специфика работы команды это позволяет (например, нет встреч с клиентами, политиками или банкирами).

Важно иметь определенное время, в течение которого вся команда будет работать вместе на местном уровне, чтобы люди могли общаться и решать проблемы лицом к лицу.

Программист, по сути, не уходит с работы даже после работы.

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

Учитывая необходимость быть хорошими (о чем мы поговорим ниже), мелочный контроль вреден.

Это не только демотивирует, но и снижает производительность.

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

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

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

Это тоже крайне важные моменты, которые очень сильно влияют на атмосферу в коллективе.

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

Большая часть этого должна быть формально описана, все должно периодически обсуждаться.

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

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

Мы все проводим большую часть времени на работе и хотим делать это без стресса, конфликтов и страха.

Команда разработчиков обычно работает под давлением графиков и клиентов.

Никому не нужен дополнительный стресс со стороны коллег и начальства.

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

Поэтому менеджеру важно работать, в частности, с конфликтами в коллективе, а не пускать их развитие на самотек.

Управление конфликтами – это отдельная тема, заслуживающая отдельного изучения.

Есть два основных способа повлиять на эмоциональное состояние коллектива и поведение коллег (если кто-то добавит в комментариях, было бы здорово).

Во-первых, это ваше собственное поведение.

Личный пример очень важен для руководителя и команды.

Как говорится, каков священник, таков и приход. Ведите себя так, как вы ожидаете от своих коллег.

Второе — поощрять правильное поведение и, так сказать, дестимулировать неправильное поведение.

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

В общем, обратная связь — это тема для отдельного разговора; это большая и важная часть работы с мотивацией.

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

Чаще всего в команде разработчиков девушек меньше, чем мужчин.

Часто группы полностью мужские.

В таких условиях, еще и под нагрузкой, в коллективе иногда начинает употребляться нецензурная лексика.

Практика показывает, что это отрицательно влияет на атмосферу; общение постепенно становится грубым.

Вам следует избегать его использования самостоятельно и препятствовать его использованию в своей команде.

Команды разработчиков часто называют R&D (исследования и разработки), причем исследования составляют значительную часть работы.

Это та часть, которую обычно сложно программировать и планировать, иначе это не было бы исследованием.

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

Ошибки — нормальная часть работы, их невозможно избежать, но можно изучать, анализировать, учиться на них на будущее и двигаться дальше.

Принцип «5 почему», придуманный в Toyota, — хороший способ добраться до основной причины проблемы.

Наказание за ошибки — отличный способ создать атмосферу страха и неуверенности.

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

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

Прежде чем начать сложную дискуссию, какой-то разбор полетов или просто эмоциональный разговор, важно ваше настроение и отношение к человеку, с которым вы собираетесь поговорить.

Я всегда по умолчанию верю и действую исходя из того, что человек искренне старался сделать лучше всего.

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

Обычно оказывается, что они не то чтобы расходятся, просто у него видение контекста более полное или свежее, и есть что-то, чего вы не знали.

Или, наоборот, он чего-то не знал.

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

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

Именно здесь культурные различия начинают играть большую роль.

В сложной ситуации ехать с ходу легко, очень легко, но потом ехать назад сложно, и осадок остается надолго.

Позвольте мне привести вам простой пример из недавнего опыта.

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

Он пинговал коллегу в мессенджере, подождал 15 минут, пинговал еще раз, потом через 15 минут зашел в большой чат, в котором были и другие менеджеры, и слегка напал на коллегу, с формулировкой типа: «так как ты не соизволите мне ответить, может быть, и вопрос не такой срочныйЭ» В итоге оказалось, что наш корпоративный мессенджер немного туповат, а коллега вообще не видит вопроса.

Мне пришлось извиниться.

В общем, лучше начать с хорошего.

Всегда можно совершить грубую ошибку и потом столкнуться с неприятностями; с этим проблем нет (хотя этого делать не следует).

В общем, за более чем 20 лет работы в нашей отрасли я встретил по-настоящему злостного коллегу лишь один раз (!).

К счастью, мы довольно быстро расстались.

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

Это может показаться мелочами, но атмосфера в коллективе строится именно из таких мелочей.

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

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

Кстати, я начал говорить о команде поддержки и вспомнил каноничный для меня пример.

Однажды у одного из клиентов в Америке возникла проблема с продуктом, один из инженеров из команды поддержки, работавший над его внедрением (командированный из России), остался после работы, чтобы помочь, но проблема не решилась и не решается.

В общем, он задержался и просидел там почти до утра.

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

Процесс эскалации уже набирал обороты в другом часовом поясе, менеджеры службы поддержки в России начали пытаться помочь, из-за определённых сложностей со связью с офисом заказчика (VPN, проблемы со связью, сложности со звонками между странами,.

) они не знала, что парень уже сидит в офисе и решает вопрос, и попыталась его найти.

Нашли только утром (американское), когда вопрос уже был практически решен и продукт работал.

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

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

Во-первых, очень важны коммуникации и атмосфера, от этого зависит успех работы.

Во-вторых, это не работает само по себе; его необходимо рассматривать отдельно и углубленно.

Еще один важный момент, связанный с данным уровнем потребностей, – это опять же заработная плата.

Не размер зарплаты как таковой, а наличие определенного порядка ее изменения.

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

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

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

Это опять же один из тех моментов, наличие которых явно не мотивирует, а вот их отсутствие очень демотивирует. Из необходимости порядка и наличия правил вытекает необходимость соблюдать эти правила, следовать нормам, принятым в коллективе, как формальным, так и неформальным.

В целом я бы назвал это потребностью «быть хорошим».

Наличие этой потребности подтверждает, что микроменеджмент не нужен, а скорее вреден.

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

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

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

Работа программистом требует времени и сосредоточенности.

Программисты очень не любят срочно отказываться от одной задачи и переключаться на другую.

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

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

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

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

Продолжение следует. Теги: #Карьера в IT-индустрии #программирование #Читальный зал #Управление персоналом #HR-процесс #мотивация программиста

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.