28 votes

Façons de gérer un programmeur qui n'est pas complet

Je travaille dans une entreprise de démarrage, où l'équipe de développement est une petite équipe de trois programmeurs, un chef de projet, moi et un autre gars.

Le problème est que l'autre gars régulièrement s'engage code dans le SVN qui ne fonctionne pas! La base compile généralement bon, mais que les références à des points de vue et lesprocédures stockées dans SQL, soit ne fonctionnent pas ou il oublie de commettre ces fichiers, en faisant un cauchemar à essayer d'obtenir la dernière version de travail.

Aujourd'hui par exemple, j'ai dû aller à un client pour effectuer une mise à niveau. Tout s'est bien passé (scripts de base de données et mise à jour du client), mais il a vite découvert que l'un de ces rapports n'a pas de travail, un rapport qui a été d'une demande spécifique que le client et l'un des jalons de la mise à niveau. Il a été utilisé lors de la mise à jour était prévue, mais, évidemment, à un certain moment, il a commis un bout de code qui l'a cassé, sans le tester lui-même.

En raison de contraintes de temps et d'autres facteurs, il n'y a évidemment pas assez de tests avant la mise en œuvre, mais il n'était tout simplement pas possible dans ce cas. C'est frustrant pour la nième degré, parce que je ressemble à un flippin' idiot devant le client pour quelque chose qui n'était pas de ma faute.

Comment voulez-vous gérer ce genre de situation? Quelles mesures prendriez-vous pour aider à améliorer la situation dans le long terme, court de cuisson de la personne en question?

Choses à prendre en considération:

  • L'argent est très serré
  • Il contribue à d'autres facettes de l'entreprise, pas seulement le développement

33voto

Jay Bazuzi Points 20462

Je pense que je suis bien qualifié pour répondre à cette question parce que je ne suis pas approfondie. Je suis bon à la réflexion et à l'écriture de code, mais je ne suis pas bon à être prudent et "qui parsèment les lettres qui ont besoin de points".

Voici les choses qui m'aident à:

Supprimer la pression du temps aussi longtemps Que je pense que je suis pressé, je vais prendre des raccourcis. Les délais, la fin de la journée, les menaces de couper les fonctionnalités qui ne sont pas fait dans le temps, les gens frapper à ma porte et me harceler. Ce genre de pression ressortir le pire en moi. Ironiquement, la meilleure solution est d'avoir PLUS de délais! Faites les étapes plus petites, de sorte que je ne pense qu'à un peu de travail au lieu d'un lot. J'ai besoin de mes collègues pour me rappeler que c'est OK pour arrêter et revenir demain; que c'est OK pour laisser les choses aller, parce que nous sommes hors du temps.

Fonctionnalité de suppression de pression. Aussi longtemps que je me sens comme il y a trop de travail, je vais de nouveau se la couler douce. Encore une fois, l'astuce consiste à briser les choses en morceaux plus petits.

Dans mon dernier emploi, nous avons fait 1 mois rejets (qui a été une grande amélioration par rapport multi-année d'avant!) mais j'aurais fait mieux avec 2 semaines de presse, et de 1 semaine itérations.

Les tests automatisés Rapide, complète, tests automatisés dire que je peux vérifier mon travail avant de s'engager, sans beaucoup d'efforts. Lorsque la voie normale est rapide et facile, des raccourcis deviennent de moins en moins attrayant.

Automatisé de commettre de validation aka intégration Continue. Dans le même emploi, chaque ensemble de modifications en attente est allé par le biais d'un système automatisé qui serait de construire, déployer, tester et valider les modifications, marque de bugs dans la base de données comme "fixe", et email de l'équipe. Il est vraiment difficile de prendre des raccourcis lorsqu'un ordinateur est en train de faire le travail pour moi! Faire ce vraiment fiable est essentiel; rapide est important, aussi.

Petits pas à Faire mes changements petite ne m'empêche de se dépassés par la complexité, ou d'oublier des choses que je dois faire avant de s'engager.

De branchement à l'Aide d'une branche d'étudier les changements de petites étapes peuvent être utiles, bien qu'il ajoute un nouveau type de complexité (vous devez penser à des branches) et vous devez être prudent de ne pas attendre longtemps avant de pousser vos modifications à la mère de la branche.

Le couplage d'Avoir un autre programmeur assis à côté de moi m'aide à rester concentré sur la grande image; m'aide à me souvenir à garder tout le dessus de travail pour moi; il contribue à rendre la programmation plus de plaisir.

24voto

Scott Muc Points 2212

Configurez un serveur d'intégration continue de certaines sortes. La lumière rouge clignotante qui apparaît lorsqu'il brise la construction lui montrera au moins qu'il a fait quelque chose de mal. L'avez-vous approché à ce sujet? Peut-être qu'il ne sait même pas qu'il rompt le projet. Peut-être qu'un coup de pouce dans la bonne direction est une bien meilleure action que d'être méchant.

12voto

Tanj Points 901

Lorsque vous avez du code qui a été testé et jugé libérable, créez une balise. Ensuite, si vous devez déployer, consultez la révision balisée.

Faites des builds quotidiens et faites qui brise la build babysit et corrigez le code jusqu'à ce que quelqu'un d'autre casse la build.

12voto

Breton Points 9625

Regardez, si j'ai passé une journée de travail sur certains nouvelle fonctionnalité, mais il arrive à briser la construction, je suis de l'enregistrement. Je ne vais pas prendre le risque de perdre une journée de travail, juste parce que nous n'avons pas prévu pour certaines fonctionnalités étant plus grand que d'une heure de travail.

Ce que je vais faire, c'est le plan de l'état actuel de SVN à être rompu de temps en temps. Comme quelqu'un l'a souligné, l'utilisation des balises, et le tronc correctement. Vous pouvez même mettre en place d'autres branches, comme "stable", "instable", "broken", etc... de Sorte que je peux enregistrer mon travail, et vous ne pouvez pas ressembler à un idiot. Tout le monde y gagne.

Configurer SVN d'archivage des procédures, de sorte que tout le monde sait, de la direction de la vérification dans le code cassé. Assurez-vous que tout le monde suit les procédures. Si vous n'avez pas l'autorité pour faire respecter cela, prendre une proposition de quelqu'un qui ne.

Quel est le point de l'utilisation de SVN si la seule chose que vous avez à faire est de s'engager, et découvrez de la TÊTE? Si c'est la façon dont vous travaillez, vous pourriez tout aussi bien être l'aide d'un lecteur réseau standard. Si l'enregistrement est une fracture de construire est un désastre, qui ressemble à un processus de problème pour moi, pas un programmeur problème.

Laissez tomber juste ce punitive de la merde, d'accord? Nous sommes tous humains, et nous sommes tous d'apprentissage. Je suis intéressé par des solutions, pas des problèmes nouveaux.

9voto

Mark Harrison Points 77152

En plus des autres bonnes idées impliquant une intégration continue, etc ...

Donnez-lui sa propre branche du code pour travailler, afin qu'il puisse s'enregistrer librement. Vous pouvez apporter ses modifications dans la branche livrable selon votre horaire, afin que le livrable n'ait pas accidentellement son mauvais code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X