Avec une équipe de 3 autres développeurs web, j'ai le titre de développeur web principal depuis un an maintenant. C'est mon premier travail en tant que lead.
Je suis assez déterminé sur mes rôles de gestion. Je suis curieux de savoir ce que font les autres développeurs de haut niveau. Je suis principalement curieux de savoir quelles sont les responsabilités des autres en tant que développeur principal / senior dans d'autres organisations; car je n'ai rencontré que du travail dans une petite / moyenne entreprise.
(a) À quoi s'attendrait-on d'un développeur Web principal / principal d'une organisation (quelle que soit sa taille)?
(b) Y a-t-il une différence entre le leader du développement web et le développeur web senior?
J'ai passé en revue certains fils de discussion et il y en avait un seul qui a discuté du moment où vous devez vous appeler un développeur senior, mais ne discute pas de manière exhaustive des rôles de ce qu'un développeur senior devrait faire avec son équipe.
la source
Vous avez deux rôles principaux en tant que développeur principal: être un défenseur de votre équipe avec le côté commercial de votre opération et fournir des conseils techniques à votre équipe.
En tant que défenseur, vous devriez aider à communiquer les exigences à votre équipe, repousser lorsque le côté commercial (que ce soit la direction, les chefs de projet ou les vendeurs) fait des demandes ou des demandes irréalistes, et généralement traiter tout ce qui empêche votre équipe d'écrire du code.
En tant que mentor technique, vous devez aider votre équipe à prendre de bonnes décisions, les aider à résoudre les problèmes techniques qu’ils rencontrent et les orienter vers des solutions appropriées. Vous devriez les encourager à améliorer leurs compétences et être un adepte absolu pour suivre les normes de développement appropriées.
Plus important encore, vous devez être un modèle de rôle impeccable. Votre code doit être de la plus haute qualité, vos projets doivent être livrés à temps et de la plus haute qualité. Ce que vous faites va être beaucoup plus important que ce que vous dites.
EDIT: Encore une chose. Vous devez être proactif avec les problèmes techniques. N'attendez pas que votre équipe vienne à vous avec des problèmes. Soyez conscient de ce sur quoi ils travaillent et allez les voir s'ils prennent trop de temps, si vous savez qu'ils sont sur quelque chose de délicat ou en dehors de leurs compétences de base, ou s'ils ont l'air frustrés. Écoutez quand les membres de votre équipe commencent à discuter des problèmes techniques sans vous et intervenez si (et seulement si) vous avez l'impression qu'ils commencent à s'éloigner d'une solution décente, ou s'ils tournent en rond et n'accomplissent rien.
la source
Eh bien, expliquons ... le leadership .
Toutes les erreurs de votre équipe sont désormais à vous de blâmer.
Il en va de même pour les succès, mais vraiment, c'est du développement logiciel, le succès est modeste, vous n'aurez guère de problème à gérer un excès de succès.
Concentrez-vous sur ces erreurs. Évitez-les, minimisez-les, essayez de les contrôler.
Et ne soyez pas autoritaire, votre équipe fait plus d'erreurs si vous le faites .
la source
L'OMI a un rôle d'orientation. Vous avez été dans le coin, donc si un autre développeur (pas junior mais pas senior) a une question ou rencontre un problème dans le module Foobar, vous êtes le go-to guy pour demander "j'essaie de faire X avec Foobar, des idées? ". Vous devez également communiquer les objectifs et les efforts de l'équipe à la direction tout en vous joignant à l'équipe sur des questions techniques (par exemple, si vous et l'équipe pensez qu'un projet prendra 4 mois à faire, ne cédez pas et dites au PDG que ce sera le cas). fait en 1 mois, puis forcer tout le monde à faire des heures supplémentaires). Vous devez également vous assurer que le code est de qualité appropriée et que les autres membres de l'équipe font les choses correctement et ne se contentent pas de pirater les ordures qui vont s'effondrer en cours de route.
Bien sûr, c'est tout ce qui est théorique. Cela dépend de l'équipe; J'ai travaillé avec des "seniors" qui ne connaissaient rien au développement moderne au cours des 5 dernières années et qui étaient "Smithers" à la haute direction et disaient "Monsieur, oui monsieur!" à toute demande, quelle que soit la créativité ridicule et étouffée des autres membres de l'équipe, et a encouragé un environnement de travail très terne au lieu de celui de l'apprentissage constant et de l'artisanat. J'ai également travaillé avec des développeurs seniors très compétents qui ont joué un rôle actif en veillant à ce que les choses soient le mieux possible et à ne jamais céder à la pression de la direction.
la source
Je suis un développeur principal et j'ai plusieurs pistes technologiques avec lesquelles je travaille. La différence est qu'ils sont les chefs de projets techniques. S'il y a un conflit entre les développeurs sur un problème technique, ils décident quoi faire. Si les choses sont en retard, ils décident comment y remédier. Ils sont chargés de s'assurer que les gens facturent leur temps pour projeter, que plus d'heures sont demandées au besoin, que de nouvelles tâches sont attribuées, que les révisions de code sont effectuées (en tant que senior, je peux faire les revues de code), etc. En tant que senior, On me confie généralement les tâches les plus difficiles. En tant qu'aîné, je suis consulté et je suis censé encadrer des jeunes. Les responsables techniques font tout cela aussi, mais ils ont le pouvoir de décision et la responsabilité de la réussite globale du projet. En tant que senior, je ne suis responsable que de ma propre partie du projet.
la source
Il pourrait y avoir de nombreux points de vue différents, comme Jonathan le mentionne ci-dessus.
En tant que développeur senior, vous pouvez définir les décisions architecturales de votre groupe et agir en tant que représentant de votre équipe pour les réunions de groupe de développement de niveau supérieur. Vous pouvez également servir de mentor et diriger les activités techniques des membres de votre équipe.
Souvent, vous pouvez également être une liaison avec la gestion de projet et les utilisateurs professionnels. Vous aiderez à décider comment et quand livrer les livrables du projet et pourrez avoir la possibilité de négocier les priorités des éléments du projet à plus long terme.
En bref, votre rôle est ce que vous choisissez d'en faire, compte tenu des limites fixées par votre propre direction (à la fois technique et commerciale).
la source
D'autres personnes ont couvert l'aspect de base du leadership de cette question, je vais donc essayer de concentrer mes points sur les questions directes posées:
Je m'attendrais à un individu avec un caractère fort et une base de connaissances techniques. Je m'attendrais à ce que quelqu'un ne se contente pas de démolir des idées, mais propose de nouvelles idées pour remplacer celles qu'il trouve déficientes. Je m'attendrais à quelqu'un qui ne pousse pas ou n'intimide pas les développeurs subalternes mais essaie de trouver des moyens qui motivent, enseignent, guident chaque individu. Je m'attendrais à quelqu'un prêt à assumer la responsabilité et l'appropriation des projets, des concepts et des décisions. "Oui-hommes" et "fleurs murales" ne doivent pas s'appliquer. Un senior / lead doit être en mesure de traiter avec les gens aussi efficacement qu'il le fait avec le code ... peut-être même mieux dans certains cas.
La principale différence que j'ai observée est celle de la portée, et je ne l'ai jamais vue écrite nulle part. Un lead est généralement responsable de la productivité d'une seule équipe. Un senior peut être responsable de plusieurs équipes, d'une seule équipe ou d'aucune équipe. Un responsable devrait aider ses développeurs subordonnés à atteindre leurs objectifs dans le cadre d'un projet ou d'une mission spécifique. Par subordonné, j'entends simplement les développeurs qui ont été affectés à un projet dont le chef de file est techniquement «en charge». Je trouve souvent que je suis le chef de file de projets où plusieurs des développeurs sont égaux ou ont plus d'ancienneté que moi, donc ce n'est pas un fait que le chef de file sera le membre le plus "senior" de l'équipe. Compte tenu de cette portée, un développeur senior est une personne sur laquelle toute l'organisation peut compter pour avoir les connaissances et l'expérience nécessaires pour aider n'importe qui. Un senior est censé être un modèle (comme quelqu'un d'autre l'a dit) pour tout développeur de l'organisation et devrait également aider les développeurs juniors à résoudre les problèmes techniques.
En bref, pour moi: une piste aide. Une personne âgée enseigne.
la source
Les développeurs Web seniors peuvent être considérés comme la personne capable de résoudre un problème, de trouver diverses solutions et de mettre en œuvre les meilleures par elles-mêmes. L'armée d'une personne dans un sens. Encadrer les développeurs juniors pour aider à améliorer les performances globales de l'équipe. Pourrait également être amené à exploiter l'expertise dans divers packages logiciels, car le senior peut s'attendre à vraiment savoir quelque chose de mieux que d'autres développeurs dans certains cas. Généralement, les compétences acquises par le développeur sont optimales, ce qui peut être une combinaison de mentorat, de conseil, de codage, de conception et de création de processus.
Les principaux développeurs Web peuvent me venir sous différentes formes. Le responsable d'une équipe est le responsable administratif et est celui qui ferait une revue de performance globale, serait au courant des projets auxquels un développeur est affecté et gérerait la paperasse tout en étant développeur une fois cela fait. Il y a aussi le chef de file d'un projet où la personne se concentre beaucoup plus étroitement, car c'est uniquement pour ce projet que cette personne a la responsabilité d'appliquer les normes et les pratiques au sein de l'équipe. Il y a donc la question de savoir quelle direction mène vraiment? Un projet ou un groupe de développeurs d'un point de vue administratif?
la source