Не побоюсь выступить в роли Капитана Очевидность и скажу то, что давным-давно известно. И что я, имея за плечами 20-летний профессиональный опыт разработки ПО и пусть небольшой, но очень экстремальный опыт руководства разработчиками, осознаю все лучше и лучше.
Управление разработкой ПО — это управление людьми. Успех разработки не в технологиях, не в инструментах, не в процессах, не в регламентах. А в людях.
Есть у человека способность придумывать решения — он будет их придумывать. Нет способностей, то хоть 20 человек посади на задачу, не будет нормального решения. Соответственно, проблема в том, чтобы найти того, кто умеет придумывать, поставить его на нужное место и дать ему возможность думать.
Есть у человека желание работать — он будет выдавать хороший код (тесты, документацию). Нет желания, то хоть как ставь ему задачу, хоть как его контролируй — не будет хорошего кода (тестов, документации). Соответственно, проблема в том, чтобы заинтересовать человека тем, что он делает.
Есть у человека способность вести за собой, показывать личным примером, разъяснять все в подробностях — команда вокруг него сформируется и будет делать то, что нужно. Нет таких способностей, то хоть как оформляй должностные инструкции и хоть как раздавай административные полномочия — не будет работоспособной команды.
Есть у человека способность выполнять рутинную работу, смело можно будет ему поручать вычищать баги. А нет таких способностей, дай ему то, что требует усидчивости и терпения, и скорее рано, чем поздно, он придет к тебе с заявлением на увольнение.
Есть у человека способность учить людей, рассказывать и показывать на пальцах, как все устроено, как делать надо, а как не надо — будет передача опыта новым сотрудникам и обучение молодежи. Соответственно, нужно выявлять таких прирожденных учителей и формировать вокруг него временные молодые команды.
Есть два человека, которые в принципе не могут друг с другом договориться, значит не будут они договариваться, хоть сколько усилий на их консолидацию не направь. И бесполезно их в одну команду ставить, даже если они друг друга дополняют в профессиональном плане. И никакого толку от них не будет, даже если они числятся в одном подразделении в штатном расписании.
Нет у человека способностей нормально с людьми коммуницировать, любит он замыкаться в себе, пропадать из вида, а потом появляться с простым и красивым решением сложной проблемы — ну и пусть себе работает один, не нужно вокруг него команду формировать, делать его тим-лидом или просить обучать молодых.
Фокус в том, что таких ярко выраженных типажей не так уж и много. Многие сочетают в себе разные качества, в большей или меньшей степени. И, главное, не всегда осознают что могут, и не всегда понимают, чего хотят. Более того, с возрастом взгляды, устремления и амбиции меняются, об этом обязательно нужно помнить.
Но главный фокус в том, что теории все это просто. А на практике все намного, намного сложнее.