Первый совет, который я дам вам, - это признать, что управление командой более важно, чем выполнение ваших собственных задач программирования. Это означает, что если у вас есть 3 младших, которые нуждаются в помощи, ваша задача состоит в том, чтобы не скулить о том, как это отвлекает вас от развития. Как лидерство, вы часто становитесь препятствием на пути прогресса, если сначала вы слишком сосредоточены на собственных задачах разработки.
Кроме того, вам нужно научиться делегировать. Трудно дать кому-то задание, если вы можете сделать это легко через час, и вы знаете, что он будет колебаться в течение дня. Тем не менее, они никогда не будут прогрессировать, пока не получат задания, и вы будете работать сверхурочно, пока ваша команда играет в игры.
Кроме того, никогда не исправляйте чужой код. Скажите им, что не так (и почему), и заставьте их это исправить. Или вы попадете в цикл, в котором вы должны все исправить, потому что они не становятся лучше. Если они не могут это исправить, подумайте, стоит ли им оставаться в команде. Не позволяйте слабым членам команды оставаться, потому что вы исправляете все, что они делают.
Будучи лидером, вы становитесь плохим парнем и даете им неприятные новости (как вверх, так и вниз по цепочке). Это касается и работы. Это означает, что вы должны делать оценку плохой производительности; Вы должны сказать им, что срок был перенесен или требования изменились; вам нужно подтолкнуть ленивого парня, который не делает успехов; и вы должны сообщить своему начальству, когда крайний срок не будет соблюден, и почему, и что вы делаете с этим. Быть ведущим - это не быть любимым, а быть эффективным. Ваша задача - выпускать программы, а не заводить друзей. Коммуникация является ключевой, и предотвращение плохих новостей в конечном итоге ухудшает ситуацию. Скорее всего, клиент справится с тем, что ему скажут, что до запуска будет еще три недели в месяц, чем когда истечет дата запуска, а затем вы скажете ему, что вам нужно еще три недели.