Переход от роли разработки программного обеспечения к управленческой или руководящей роли - это то, что требует времени. Я специализировался в разработке программного обеспечения, уделяя особое внимание процессу разработки программного обеспечения, и специализировался в управлении бизнесом и коммуникации. Даже с этим академическим опытом в том, как управлять проектами в области программного обеспечения, как набирать и нанимать, как руководить командами и как общаться с группами в устной и письменной форме, я обнаружил, что большинство управленческих и руководящих ролей, особенно в отрасли, которую я хотел чтобы работать в, требуется 5+ лет опыта в разработке программного обеспечения (у меня было 2, включая кооперативы и стажировки).
В то же время я просто продолжил учебу по темам управления проектами.
Первое, что я бы порекомендовал, это стать хорошим коммуникатором и переговорщиком. Узнайте, как вести разговор, который имеет значение. Даже как разработчик, есть решения, которые должны быть приняты с коллегами, клиентами и пользователями. Иногда вам приходится вести трудные разговоры и достигать соглашения, которое приносит пользу всем. Это непростая цель, но я бы порекомендовал эту книгу, которая называется « Трудные беседы: как обсудить, что важнее всего» . Есть и другие, такие как « Прошлое нет» и « Да»: переговоры по соглашению без сдачи , которые также будут полезны. Они актуальны независимо от того, в какой позиции вы находитесь.
С технической точки зрения, понимание жизненного цикла разработки программного обеспечения важно для руководства и управления командами разработчиков программного обеспечения. Лидерские должности, вероятно, означают, что вы участвуете в разработке требований, архитектуре систем программного обеспечения, проектировании, внедрении, тестировании и обеспечении качества, а также в задачах обслуживания. Хотя вы не можете быть экспертом во всем этом, менеджер или лидер должен по крайней мере понять их все. Как разработчик, вы, вероятно, выполняете большую часть своей работы в области проектирования, реализации и обслуживания, а также проводите некоторое тестирование. Я бы очень рекомендовал такие книги, как « Требования к программному обеспечению» (и его компаньон, « Подробнее о требованиях к программному обеспечению» ), « Архитектура программного обеспечения на практике» (хотя мой университет перешел наАрхитектура программных систем: работа с заинтересованными сторонами, использующими точки зрения и перспективы после того, как я прошел курс по архитектуре, и мне это было рекомендовано), а также Метрики и модели в разработке качества программного обеспечения .
С точки зрения управления проектами вы можете узнать о моделях процессов и методологиях. Существуют гибкие методы, такие как Scrum и Extreme Programming, и методы, основанные на планах, такие как Waterfall и Spiral. Существуют также методологические основы, такие как CMMI и Процесс персонального программного обеспечения / Процесс группового программного обеспечения. Те, которые имеют отношение к вам, зависят от того, где вы работаете, с точки зрения отрасли и компании. Существует множество книг по различным методологиям и структурам, но я очень рекомендую Rapid Development: Taming Wild Software Schedules для общего управления разработкой программного обеспечения и процессом разработки программного обеспечения.
Если вы хотите продолжить свое образование, вы можете взглянуть больше на путь технического менеджмента, чем на курс управления бизнесом. Если вы хотели получить должность технического менеджера, посмотрите на программы разработки программного обеспечения, управления разработкой программного обеспечения и управления проектированием. Для большей части управления бизнесом вы можете рассмотреть программы MBA, управление бизнесом или некоторые программы инженерного менеджмента, которые имеют сильный экономический или финансовый компонент.