Что делает хорошего архитектора / менеджера / ведущего разработчика?

12

Я ведущий разработчик для небольшой компании по разработке программного обеспечения. За последние два года моя команда выросла из одного разработчика (меня) в группу из примерно девяти человек. Большинство из нас - очень способные старшие инженеры (20+ лет опыта в создании программного обеспечения на человека), поэтому, как правило, требуется совсем немного ручного труда. Мы используем Scrum для управления нашими усилиями, и мы обычно быстро справляемся с минимальными письменными требованиями.

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

Моя цель состоит в том, чтобы позволить моей группе расти еще больше (т.е. увеличивать скорость Scrum), добавляя больше разработчиков , поэтому я не хочу просто становиться «полицией архитектуры», которая навязывает мою волю команде. Другими словами, я хочу быть парнем, который помогает вещам работать лучше / плавнее, а не парнем, который замедляет процесс, добавляя ненужный слой бюрократии. Тем не менее, один из наших главных рисков заключается в том, что вещи выйдут из-под контроля, если мы добавим больше людей, не имея достаточной структуры, чтобы держать нас всех на одной странице.

Каков наилучший способ достижения моей цели?

brianberns
источник
6
Не уверен, что это ответ, но я бы лично хотел, чтобы вы организовали команды и немного персонализировали свое управление. Знайте, над чем они работают, будьте в курсе того, над чем они работают, и т. Д. Если вы не организовываете их в группу, принимайте участие в обзорах кода, помогайте писать модули, которые нуждаются в дополнительной помощи, и возможно проводить время с отдельными разработчиками. У меня был один или два менеджера, которые не помогали и не проверяли нас, чтобы посмотреть, как идут дела, но также не хотели знать (да, плохой менеджер).
Саймон Уайтхед
Я думаю, что роли, которые вы упомянули в названии, имеют различную специфику и используют разные навыки. Который из них?
Эйфорическая
3
Подробные требования и «ненужный слой бюрократии» - это не одно и то же. Требования могут спасти вашу жизнь, особенно при работе с большой командой. Не стоит недооценивать их силу.
СуперМ

Ответы:

12

Если бы вы были в такой команде, что бы вы хотели, чтобы ваш босс делал со своим временем?

  1. Устранить препятствия для прогресса.
  2. Посредник споры между членами команды.
  3. Взаимодействовать с деловыми людьми, чтобы нам не пришлось.
  4. Держите нас в курсе бизнес-проектов высокого уровня, чтобы мы не чувствовали себя изолированными.
  5. Держите нас честными, особенно если / когда плохое яблоко попадает в команду.
  6. Быть защитником команды в других отделах.
  7. Будьте единым голосом противодействия необоснованным бизнес-запросам.
  8. Облегчить общение в команде.

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

Telastyn
источник
5
Я не могу помочь, но чувствую, что этот список очень негативно ориентирован. Это как «защитить меня от плохих вещей». Как насчет положительного воздействия?
Николь
1
@NickC Я думал, что это часть работы менеджера. Что вы имеете в виду с положительным воздействием ?
BЈовић
2
@ nickC: да, я склонен негативно относиться к вещам, но, как показывает мой опыт, снижение негативного влияния оказывает самое большое положительное влияние на производительность и моральный дух команды. Особенно, если вы беспокоитесь о том, чтобы помогать людям с процессом.
Теластин
@NickC Я полностью согласен с Теластином, в конце его список может просто выделить то, с чем столкнулись бы разработчики, если бы у них не было технического лидера. Хотя можно добавить больше положительных моментов, т.е. «Хорошие технические лидеры имеют общее видение технического направления продукта и следят за тем, чтобы команда его понимала. Они делегируют характерные области другим членам команды и позволяют им принимать решения. Они признают, что члены их команды умны, доверяют им, и полагаться на них, чтобы справиться со значительными частями проекта ". см. engineering.foursquare.com/2014/01/30/…
Adrien Be
6

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

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

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

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

Переход к командному руководству

Как мне стать ведущим разработчиком?

Как заслужить уважение членов команды как лидера команды?

Бернард Ди
источник
«Хороший менеджер имеет большое влияние на счастье команды»: я думаю, что вы правы, но это поднимает другой вопрос «Может ли команда быть счастливой даже с бесполезным менеджером?»
Адриен Бе
4

Я думаю, что это баланс этих черт:

  • Технические навыки : Вы не хотите, чтобы кто-то руководил, который не может оценить качество работы, которую он / она направляет.
  • Самодостаточность : может определять цели и не реагировать.
  • Знает, как извлечь выгоду из конфликта : конфликт вызывает разговоры
  • Авто-дидактика : не важно, что он / она знает все, но знает, как учиться.
  • Хорошее отношение и энергия : вам нужен кто-то, кто мотивирует и облегчает работу каждого, а не дива, которая лает на заказы.
  • Опыт с неудачей : возможно, самый важный. Я видел очень молодых лидеров, которые могут не иметь проблем со всеми предыдущими, но при первых признаках неудачи они замирают или избегают ответственности. Старшинство не имеет никакого отношения к возрасту, но правильное количество правильного опыта, и неудача определенно что-то, чтобы рассмотреть.

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

  • «Расскажи мне проект, где ты потерпел неудачу, как ты справился с этим и чему ты научился»
  • «Расскажите мне об одном случае, когда вы нарушили правила, чтобы добиться цели»
  • Примените тест Fizz Buzz с любым легким поворотом, который только можно придумать.

Тест FizzBuzz абсолютно необходим, будучи правильным или неправильным, он не так важен, как:

  • Время, необходимое ему / ей, чтобы ответить : 15 минут в среднем, 30 минут на границе нормально,> 30 минут НЕ ОК
  • Если он / она может отлаживать свой собственный код : у меня однажды был парень с 15-летним стажем, претендующий на руководящую должность ... ему потребовалось 40 минут, чтобы выполнить тест ... в псевдокоде ... получил это неправильно и не смог выяснить почему. У меня был еще один случай, когда другой парень провел около 5 минут, оправдываясь и не мог смириться с тем, что он был неправ.
dukeofgaming
источник
1
+1. Каждый должен знать, как учиться.
СуперМ
Тест FizzBuzz предназначен для устранения людей с так называемыми inertia of mind, не так ли? Поработав некоторое время со сложными проблемами, большинство из нас не может найти простых решений для простых проблем.
СуперМ