Je vois beaucoup de programmeurs se détourner des rôles de gestion et d'administration. Ils veulent construire des trucs. Et en conséquence, beaucoup de ces postes sont occupés par des personnes non techniques. Je ne vois pas comment ils ajoutent de la valeur. Est-ce que la planification des réunions, la réservation hors site et d'autres tâches administratives suffisent à justifier leur rôle?
Je ne vois pas comment ils ajoutent actuellement de la valeur et est-ce que la planification de réunions, la réservation hors site et d'autres tâches administratives suffisent pour leur rôle?
Ne sous-estimez pas la quantité d'interaction que votre gestionnaire fait avec les autres services. Ils gèrent les budgets, les plans de formation, la paperasse RH. Ils protègent les développeurs de se laisser entraîner dans des réunions avec d'autres départements et fournissent un front unifié pour votre groupe.
En bref, leur travail consiste à protéger les développeurs motivés de toutes les autres choses démotivantes qui existent dans l'entreprise.
Les meilleurs managers sont des magiciens. Ils font disparaître le reste de l'entreprise pour leurs développeurs. Je ne me souviens pas la citation exacte de Joel mais c'était quelque chose à l'effet que c'est le travail de la direction de s'assurer qu'il y a une grosse pipe Internet, une bête de machine et beaucoup de caféine donc tout le les développeurs doivent se soucier de ce qu'ils font le mieux.
Un bon manager est la voix de votre groupe auprès du reste de l'entreprise.
Comme cela s'applique spécifiquement au développement de logiciels, il existe deux types de rôles à valeur ajoutée pour les gestionnaires: la gestion de projet et le leadership d'équipe.
Un chef de projet s'interface avec les clients et les cadres intermédiaires, ce qui permet aux développeurs de gagner du temps. Il y a souvent des clarifications ou des changements de portée qui surviennent dans les projets, et il est utile pour les clients et les cadres intermédiaires d'avoir un seul point de contact. Essayer de répondre aux questions de chaque membre d'une équipe de développement conduit à des décisions de projet non enregistrées et à des engagements non documentés, le fléau de la gestion de la portée.
De l'autre côté, un chef d'équipe est impliqué dans le développement de carrière/compétences, s'assurant que la charge de travail est répartie de manière appropriée entre les membres de l'équipe, et fournissant des ressources et des récompenses proportionnelles aux contributions et besoins individuels.
Aucun de ces rôles ne nécessite un programmeur tête en bas, en fait un peu l'inverse. Un programmeur passera souvent à une tâche d'écriture de code comme première réponse à une question ou à une crise, et il est utile d'avoir quelqu'un dont le travail consiste à demander si cette tâche doit vraiment être effectuée.
Parallèlement aux autres avantages mentionnés, le gestionnaire non technique peut faire un meilleur travail de prise de décisions finales en cas d'impasse parmi les experts. Je sais que cela semble contre-intuitif, mais les bons gestionnaires non techniques comprennent les forces et les faiblesses de leur personnel.
Exemple: deux programmeurs débattent du serveur à utiliser pour une application. Dans une sorte de démocratie imaginaire, ils obtiennent tous deux une seule voix, donc aucune décision n'est prise. Cette guerre pourrait durer éternellement (et avec certains techniciens, elle le sera). Quelqu'un doit intervenir et arbitrer ce désaccord et lancer le projet. Un bon juge s'appuiera sur l'opinion de celui qui a le plus d'expertise dans ce domaine.
Ce n'est pas parce que quelqu'un manque de talent, de compétence ou de connaissances dans un domaine qu'il ne peut pas identifier ceux qui le font. Reconnaître le talent est un talent.
Est-ce que la planification des réunions, la réservation hors site et d'autres tâches administratives sont suffisantes pour leur rôle?
Oui. Parfaitement suffisant. Ils sont également bons pour appeler la gestion du bâtiment en cas de problème de chauffage, de climatisation, etc. s'assurer que les distributeurs automatiques et les refroidisseurs d'eau sont bien approvisionnés et entretenus; apporter des cadeaux spéciaux pour le nez; garder le bureau propre et ordonné ...
Faites de votre mieux pour penser à d'autres tâches de ce type afin de les occuper et d'éviter les ennuis ...
Leur rôle le plus important? Rester à l'écart et ne pas mélanger avec les programmeurs, et s'assurer que d'autres personnes non techniques font de même.
Considérez une équipe de développement comme un club de baseball MLB (l'analogie est assez bonne IMO): les managers sont toujours d'anciens joueurs - seulement ils savent comment gérer `` la gestion pratique '' d'une équipe de professionnels hautement qualifiés, ringards, idiosyncrasiques, qui font des choses que la plupart des "gens ordinaires" ne peuvent pas faire.