web-dev-qa-db-fra.com

Comment ajouter un nouveau développeur à l'équipe

Je gère une petite entreprise composée de seulement 2 développeurs. Nous construisons une très grande application pour l'un de nos clients. Le développement de ce projet a continué depuis 1,5 ans.

Maintenant, ce client a obtenu un sponsoring important et organise des événements liés à ce projet. Alors maintenant, nous avons une date limite dans 2 mois et nous ne pouvons pas nous manquer.

Nous pensons à ajouter un nouveau développeur à l'équipe et je me demande ce que nous pouvons faire pour aider son intégration.

C'est la situation:

  • Nous approchons du seuil de loi de Brooks - Le point lors de l'ajout de nouveaux développeurs sera contre-productif.
  • L'application est relativement bien conçue, mais la mise en œuvre est chaotique dans certains points (notamment le code plus ancien).
  • Il existe des tests unitaires pour un code plus récent. Lorsque ce projet a commencé, nous n'avons pas effectué régulièrement de tests.
  • La documentation et les commentaires sont incomplets.
  • L'application est à la fois grande et complexe.
  • Le client a écrit presque tous les détails de son projet, d'une manière très claire et "programmeuse".

Est-ce une bonne idée d'ajouter une personne maintenant? Si oui, que pouvons-nous faire pour aider le nouveau développeur à intégrer à l'équipe?

ÉDITER:

Le sponsor organise un événement sportif basé sur Internet pour le printemps prochain. Il doit commencer un jour spécifique de l'année. Nous ne pouvons pas le changer.

Ce que nous développons (je suis l'un des deux) besoin de faire est:

  • Terminer la demande existante (environ 25% des travaux à faire).

  • Créer un nouveau module, essentiel pour l'organisation de cet événement (environ 75% des travaux à faire). Ce nouveau module ne peut pas être développé sans comprendre l'API du programme principal.

Je ne peux pas faire une estimation exacte du temps, mais nous sommes dans une situation risquée.

24
lortabac

La meilleure chose à faire n'est pas de jeter le nouveau développeur dans le feu, mais de tailler une fonctionnalité et/ou des corrections de bugs que le développeur ne devrait pas avoir de difficulté à sauter. Trouvez une zone qui nécessite un travail qui ne nécessite pas une personne de connaître l'ensemble de l'architecture, des exigences et de la base de code tout à la fois. Peut-être que lui avoir travaillé sur la documentation pour apprendre le système plus rapidement.

24
Nik

Plutôt que d'ajouter un nouveau développeur à l'équipe, envisagez d'ajouter un consultant expérimenté pour la période de deux à trois mois pour gérer l'augmentation temporaire de la charge de travail de votre entreprise. L'idée est d'obtenir quelqu'un qui peut gérer du temps de démarrage quasi zéro, mais peut ne pas être nécessairement le meilleur ajout à votre équipe.

Même si vous pensez que l'augmentation de la charge de travail n'est pas temporaire, n'est probablement pas le meilleur moment pour développer votre équipe de manière biologique: l'ajout d'un troisième développeur est une chose stressante pour une équipe, même sans pression de la date limite de projet; Date limite serrée ne fait que la transition pire.

Le compromis est que, en échange d'une aide temporaire, vous obtiendrez du code écrit par un étranger. Pour atténuer ce risque, assurez-vous que vous faites tous les deux tous les commentaires avec lui. Assurez-vous également de passer en revue et de comprendre tous ses tests unitaires.

18
dasblinkenlight

Est-ce une bonne idée d'ajouter une personne maintenant?

Non, si possible, essayez de faire l'accord du client sur la réduction de la portée.

Ajout d'une personne aussi tard ajoutera un risque important et la date limite ne peut être poussée (aussi loin que j'ai comprise).

14
Buhb

Ne le fais pas.

Encore.

vue traditionnelle

Dans votre question, vous vous référez à la loi de Brooks de mythique mens mois .

L'ajout de la main-d'œuvre à un projet de logiciel tardif le rend plus tard.

Ignorer que la loi de Brook porte un prix. Ne pas masquer. Concentrez-vous sur la livraison de votre produit viable minimum (MVP). Concentrez-vous ensuite votre énergie sur le recrutement, le ressourcement, la formation et la gestion d'un nouveau membre de l'équipe.

Deux mois sont si courts. Planifiez le recrutement avec une liste de brûlures et vous verrez à quel point cela prendra du temps, cela peut être.

Larry Page et Sergei Brin ont passé deux ans à choisir l'équipe initiale de Google. Votre choix pour l'employé numéro trois devrait également être soigné.

Agile, nouvelle vue Millenium

La concurrence entraîne une équipe dynamique plus maintenant qu'à l'ère lorsque le mois de mythique est écrit (milieu des années 1960). Long Carrières d'une entreprise est parti. Maintenant, nous migrent fréquemment entre projets et entreprises. Le bâtiment rapide de l'équipe crée un succès. La rampe lente est un facteur limitant grave. Les excellents exemples proviennent de projets open source, de startups et d'une utilisation accrue des projets d'équipe dans des cours d'informatique.

Potentiellement, les équipes agiles sont des contraintes sur leurs horaires. Ils ne sont pas en retard car ils sont optimisés pour les ressources disponibles. L'intégration de nouveaux membres du personnel est une contrainte supplémentaire et considérée comme un compromis entre objectifs à court terme et à long terme. L'équipe agile intègre continuellement le code, alors pourquoi pas les gens aussi?

L'intégration technique et sociale de l'équipe agile pour le nouveau personnel peut utiliser:

  • scrums quotidiens
  • programmation en binôme
  • refactoring
  • ajout de tests d'unités manquantes
  • engraissement de la documentation maigre
  • code Reviews

l'agneau sacrificiel

Dans " schémas organisationnels du développement logiciel agile" James Coplien traite de la dynamique de groupe et des coûts d'ajout de nouveaux membres de l'équipe. Son modèle "Agneau sacrificiel" attribue tout le mentorat et la formation à une personne, gardant le reste de l'équipe de l'interruption.

C'est une stratégie que vous voudrez peut-être envisager de mettre en œuvre.

Une autre stratégie consiste à attribuer de nouveaux mentor (s) de location qui couvre des questions de nouvelles embauches pour des heures particulières chaque jour. Si vous ne pouvez épargner qu'un seul gars, il travaille peut-être sans interruption le matin ou l'après-midi et répond aux questions des après-midi ou des matinées respectivement. Le groupe dont j'ai eu dix stagiaires l'été dernier, de sorte que beaucoup de gens ont été interrompus beaucoup.

Le mentorat est actuellement effectué par une personne, principalement pendant et immédiatement après notre Scrum du matin (8h30 jusqu'à environ 21h15, combiné), et l'après-midi entre 12 et 15h30 (il travaille de 7 h 3:30 PM).

10
DeveloperDon

Si vous suivez strictement la loi de Brook, vous ne développerez probablement jamais votre équipe.

L'astuce consiste à apporter la nouvelle personne sans avoir frappé trop de ralentissement de votre équipe actuelle. Finalement, la nouvelle personne sera à la vitesse et vous pouvez surmonter la bosse.

Dans ton cas? Je recommanderais que la nouvelle personne écrive tous ces tests d'unités manquantes.

  1. Ceux-ci sont cruellement nécessaires comme une sauvegarde contre les erreurs de régression, qui vous brûleront plus rapidement que tout ralentissement de Brooks.
  2. La nouvelle personne apprendra les tripes de votre système. C'est un peu d'essai par le feu - mais leur production ne va pas dans le code de production, si peu de risques.
  3. Placez une limite difficile sur la quantité des autres membres de l'équipe à prendre. Par exemple, demandez-leur de faire la queue des questions et n'autorise que 30 minutes par jour en interaction avec d'autres membres de l'équipe jusqu'à ce que la date limite soit remplie.

Aussi, faites face à cela: vous devrez gérer la portée et les attentes des clients, que vous apportiez une nouvelle personne ou non. Le gain vient le prochain cycle.

Ed Yourdon avait un grand commentaire sur la loi de Brook. Il a dit: Bien sûr, l'ajout de gens vous fera aller plus lentement - mais lorsqu'un projet est à risque, la seule gestion temporelle apportera de nouvelles personnes. Ainsi: prenez-les, minimisez-les de l'impact sur la libération actuelle et éliminez les performants pauvres dès que vous le pouvez. De cette façon, au fil du temps, vous pouvez créer une équipe forte.

5
Ralff

Vous dites que vous devez compléter 25% du travail original, ainsi que de nouveaux travaux. Et vous devez le faire dans deux mois - quand il vous fallait 18 mois pour faire 75% des travaux. Pour être très émoussé, cela m'indique que vos capacités d'estimation sont à peu près moyennes pour un programmeur axé sur le code - c'est-à-dire que vous pensez que les choses vous mèneront à environ une moitié à la troisième fois qu'ils le font vraiment.

Les héroïques pourraient vous permettre de livrer le produit que vous avez contracté, mais cela ne vous fera pas ou votre client. Ce sera pavé et bug-dans ces conditions et vous allez courir sur des fumées.

N'oubliez pas que le temps que vous dépensez de l'embauche aura également un impact majeur sur votre disponibilité - ce n'est pas quelque chose que vous pouvez simplement faire un week-end, cela prend du temps pour trouver des employés talentueux qui conviennent bien. Attendez-vous à dépenser au moins quelques semaines de recherches, d'interviewer, etc. Attendez-vous à vous et à votre employé existant perdez environ 10 heures par semaine de temps productif pendant votre recherche.

Ma recommandation:

Asseyez-vous avec votre client, expliquez que vous êtes au-dessus de votre tête et travaillez avec lui pour réduire la portée au minimum.

Edit vient de voir la date ici. Alors, comment ça s'est fini? (Merci ARS Technica pour avoir posté une question de trois mois;)

3
Marc Paradise

Si vous avez travaillé sur d'autres projets que vous pouvez lui donner qui libérera le temps des 2 développeurs actuels de se concentrer sur les produits livrables de gros morts pouvant aider.

3
HLGEM

Il y a quelques façons différentes que j'étais envisagée d'enquêter:

  1. Holtez sur l'embauche du nouveau développeur jusqu'à ce que la date limite passe de manière à ce qu'il soit plus facile de se concentrer sur la connaissance du domaine du nouveau gars. Ce serait ma préférence car elle pourrait être légèrement difficile de quelques égards.

  2. Introduire le nouveau développeur pour travailler sur la documentation, les tests unitaires et d'autres éléments qui ne modifient aucun du code existant. Ce serait ce que je suggérerais si vous apportez sur le nouveau gars pour essayer de minimiser l'impact sur la charge de travail actuelle.

2
JB King

La date a déjà disparu, mais pour que quiconque lisait cela plus tard.

La principale chose à considérer est que le client dans cette situation a beaucoup plus à perdre que vous. Ils ont déjà dépensé beaucoup d'argent et ils ont un événement clé qui pourrait faire ou briser leur entreprise. Vous avez déjà leur argent et perdre un seul client ne doit pas casser votre entreprise. Si tel est le cas, vous avez d'autres problèmes commerciaux graves au-delà de la gestion terrible de projet.

Votre meilleur pari est de négocier un sous-ensemble essentiel de fonctionnalité, puis de travailler des heures supplémentaires pour le faire faire. Si vous ne pouvez pas faire un sous-ensemble plus petit se produire ou ne sont pas disposés à travailler des heures supplémentaires dans cette situation, vous ne devriez probablement pas être en affaires. Cela peut signifier mettre en place d'autres clients en attente, cependant, je suppose que vos autres clients n'ont pas payé pour 3 années d'années de temps, alors mettez vos ressources dans lesquelles l'argent est.

S'ils ne sont pas disposés à négocier la portée, vous êtes prêt à échouer.

Il n'y a aucune chance de livrer ce projet complètement dans le délai. Si vous pensez que vous avez laissé 25% sur un projet qui a pris 18 mois pour livrer jusqu'à présent, vous disposez d'au moins 6 mois (de ~ 2 développeurs). L'ajout d'une autre personne ne changera pas cela de manière significative.

Comme il a été souligné, le recrutement prend du temps. Mon expérience est que cela prend un mois au minimum. Ajoutez ensuite une formation et votre temps est épuisé.

J'espère que cela a travaillé pour vous.

2
David Barton