Для того, чтобы стать техническим руководством следующих являются важными
Возможность наставничества сотрудников на всех уровнях старшинства, от человека, который не работал в университете в течение 3 месяцев, до человека, который программировал в течение 30 лет
Хорошее знание вашей области разработки. Это включает в себя: языки, платформы, утилиты, среды разработки
Твердое понимание систем управления проблемами, навыков управления проектами и контроля версий
Будьте убийцей жучков
Знать, как проводить своевременные проверки кода, что искать и как минимизировать количество времени, которое они затрачивают на удержание, и на внесение изменений
Будьте в курсе событий в вашей области разработки. Например, если бы вы не изучали новые фреймворки или технологии из .NET 2, вы бы поступили сегодня совершенно в обратном направлении.
Как писать модульные тесты и макеты, и заставить ваших разработчиков писать их тоже
Знание того, что такое шаблоны проектирования и когда их использовать
Знание того, что пахнет код и как их смягчить
Непрерывная интеграция
Умение планировать проекты и релизы
В зависимости от вашей организации и наличия у вас архитекторов, вам, вероятно, потребуется знать следующее:
Способность разбивать на части ваши проекты и разбивать их на функциональные части
Тщательное понимание безопасности, включая правильный способ обработки паролей, разделения систем, защиты данных и т. Д.
Корпоративные концепции, такие как служебные шины, очереди сообщений, BizTalk
Шаблоны корпоративного дизайна
Сервисные архитектуры / RPC, такие как SOAP и REST
Платформы ORM, такие как Hibernate, Entity Framework, Doctrine
Постоянное развертывание
Облако
Возможность рекомендовать правильные технологии для использования в проекте. Это может быть сложно, если ваша команда / магазин работает только с .NET, PHP или Java.
Разработайте приложение таким образом, чтобы будущие улучшения были легко учтены
Если вы собираетесь стать менеджером по развитию, вам также понадобятся:
- Навыки собеседования и как правильно подобрать персонал
- Как решать проблемы людей с членами вашей команды
- Управление бизнес-директивами / целями и преобразование соответствующих в информацию для ваших разработчиков
- Возможность оценить время для программистов разных навыков
- Возможность распределять задания по нужным разработчикам на основе их навыков и способностей.
И, наконец, некоторые другие рекомендуемые моменты:
Учиться за пределами вашей области разработки
Научитесь говорить « НЕТ», когда это невозможно или выходит за рамки возможностей или противоречит ограничениям, таким как бюджет или время.
Управление командой - это сложная задача. Вы должны быть человеком, который может ответить на любой вопрос, вы должны знать, какие технологии использовать (если у вас нет архитектора), вы должны иметь навыки управления людьми и быть доступными вашими сотрудниками (занимая руководящую должность). В дополнение к этому вам необходимо обладать навыками точной оценки, чтобы обеспечить прибыльность проекта, а также иметь возможность запачкать руки чьим-либо кодом, чтобы точно определять проблемы и быстро их устранять. Вы должны избегать желания делать все самостоятельно и создавать командную среду, которая не токсична. Вам необходимо постоянно оставаться на вершине своего технологического стека и изучать новейшие разработки и технологии, а также более широкие отраслевые тенденции.
Вы также должны знать хотя бы одну платформу базы данных и хорошо ее знать. Знать, как выполнять репликацию, хранимые процедуры, как работает оптимизатор запросов, как правильно разрабатывать схему и какие поля индексировать.
Независимо от конкретной должности, любая старшая роль требует от вас способности эффективно общаться. Если вы не уверены в себе, посмотрите на что-то вроде Toast Masters (публичное выступление). Узнайте, как сделать и держать зрительный контакт. Будь уверен. Оденьтесь соответственно для положения. Подавать пример.