В прошлом году я помимо написания кода стал немного заниматься управлением. Самый важный аспект в этом деле — это отношения внутри команды: «люди и взаимодействие важнее процессов и инструментов». Прочитал интересную статью, которая проявила проблемы нашей команды и нашего процесса разработки. Оставил себе конспект.
Будьте осторожны с высокими показателями
Ваши отличные исполнители добиваются высоких результатов продуктивности путем технического долга намеренно или ненамеренно. Они экономят время на дизайне и архитектуре разных уровней, отсутствии адекватного тестирования и разработке кода, который трудно читать, поддерживать и расширять.
Поощряйте продолжительное улучшение продукта
Как бы вы не старались, технический долг будет накапливаться. Стимулируйте разработчиков улучшать приложение, в то время как они работают над своими проектами. Примерами улучшений является создание объектов для повторного использования кода и разбивание больших объектов, которые трудно поддерживать, на объекты поменьше, с которыми легче работать по отдельности. Непрерывное совершенствование это не самостоятельный проект. Когда склонность к постоянным улучшениям станет частью ДНК вашей команды, результаты вас поразят.
Поощряйте право собственности на код
Разработчикам нужно дать право собственности на части кодовой базы и не позволять другим разработчикам менять этот код без одобрения владельца. Это приводит к более высокой производительности труда, поскольку разработчик знаком с кодом, с которым он обычно работает.
Распознавайте лидеров
Некоторые ваши разработчики активнее других участвуют в обсуждениях, к ним чаще обращаются за помощью или советом, чем другие и их чаще приглашают на собрания по разработке, даже если они не будут работать в этом проекте. Эти разработчики ваши истинные лидеры. Ваши коллеги уже проделали тяжелую работу выявления настоящих лидеров за вас. Эти лидеры также должны быть публично признаны таковыми. У ваших лидеров будет уходить больше времени на завершение своих проектов — в конце концов, они делают сразу две работы. Не заставляйте ваших (зачастую стеснительных) истинных лидеров просить о повышении — просто сделай это.
Следите за ложными системами показателей
Разработчики программного обеспечения не так уж и глупы, они быстро узнают, как обыграть систему показателей, если контрпродуктивные средства поощрения видны. Так или иначе, вся работа сведется к достижению самого высокого показателя выполненной работы.
Отдельные рабочие места
Нет ни единого научного доказательства того, что офисы открытого типа это хорошая идея и есть неопровержимые доказательства того, что они ухудшают продуктивность большинства разработчиков программного обеспечения. Разработчикам программного обеспечения нужны личные места.
Поощряйте эксперименты
У большинства компаний нет огромных денежных ресурсов, чтобы дать 20% рабочего времени под экспериментальные проекты как у Google. Эксперименты, тем не менее, периодически следует поощрять и поддерживать. Разработчики программного обеспечения не лишены хороших идей и имеют особый опыт, а соответственно у них хорошее чутье касательно приложений, которые могут быть улучшены и расширены.
Позволяйте сотрудникам уходить
Если сотрудник подходит к вам и просит перейти из одной группы в другую, милостиво позвольте им этого сделать. Это не значит, что вы должны позволить им уйти посреди кризисного времени, но как правило, если они хотят уйти из группы, значит что-то не сложилось.
Всегда выполняйте небольшие просьбы
Ваш сотрудник хочет монитор побольше? Купите. Они хотят определенную клавиатуру? Купите. Они хотят работать из дома каждую среду и это их личное требование? Разрешите. Они хотят Мак вместо ПК? Дайте им его. Даже если у них постоянный поток запросов, который кажется никогда не закончится, никогда не говорите им нет, кроме одного случая: если вы уверены, что эта маленькая просьба появится у всей фирмы и это действительно будет слишком сильно сказываться на бюджете.
Отмените годовые и полугодовые отчеты
Ваши сотрудники не должны ждать шесть-двенадцать месяцев, чтобы узнать, что вы считаете, что они в чем-то преуспели и над чем они должны поработать. Общение между менеджерами и сотрудниками должно быть как река, которая никогда не перестает течь.
Вы не лучше ваших сотрудников
Разработка программного обеспечения это работа. Управление разработкой программного обеспечения это работа. То, что ваши сотрудники отчитываются перед вами, еще не значит, что вы умнее или лучше них. Не путайте и не позволяйте вашим работникам путать менеджмент с карьерным ростом — это просто другая работа, даже если за нее платят немного больше.
Не делайте возврастную скидку
Молодые сотрудники действительно имеют больше энергии, что повышает производительность. Пожилые сотрудники действительно имеют больше опыта и мудрости, которая повышает производительность. Стройте команду с разнообразием в возрасте и смотрите, как они расцветают в нечто большее.
Обобщение
Если вы будете должным образом заботиться о своих сотрудниках, то они будут заботиться о вас, что приводит к лучшим результатам и более высокой удовлетворенностью карьерой для вас и для них.