Quelles choses ont tendance à ralentir un développeur?
Veuillez vous abstenir de publier des réponses qui:
- sont lents maintenant mais utiles dans la fonctionnalité. (TDD, Refactoring, ...)
- indiquez une distraction .
Quelles choses ont tendance à ralentir un développeur?
Veuillez vous abstenir de publier des réponses qui:
Réponses:
Oh celui-ci facile:
StackOverflow, programmers.stackexchange.com, etc. :)
Toute tentative de suivre un processus qui n'est pas adapté à la tâche à accomplir.
Cela peut être toutes sortes de choses, mais les plus courantes que je vois incluent:
Toutes ces choses peuvent être extrêmement utiles sur certains projets ou dans certaines situations, mais certaines organisations essaient de tout faire dans un sens et cela conduit à une mauvaise intégration sur d'autres projets, ce qui est souvent une perte de productivité.
Politique
Par exemple: lorsque plusieurs personnes possèdent les exigences (ou pire, deux intérêts différents) et qu'elles apportent des modifications concurrentes et conflictuelles aux exigences pendant le développement.
De nombreuses réponses parlent de changement de contexte et de sortie de la zone, et le bruit, en particulier la conversation, est l'une de ces choses qui m'amène à cela.
Dans mon monde cubique, je suis entouré de bruit et de conversations de tous côtés. Une ligne plus loin, l'équipe mainframe tient constamment des réunions de planification dans la ligne du cube. Parfois, ils rencontrent des consultants dans un bureau le long du mur, ce qui a tendance à faire des sifflements, des cris et des rires bruyants et je dois aller les voir et leur demander de fermer leurs portes.
De l'autre côté, la table de conférence de l'équipe Web est de l'autre côté de mon mur de cube ouest, donc je fais partie de chaque réunion, que cela vous plaise ou non. Il y a aussi une imprimante de l'autre côté du mur du cube sud, et c'est toujours bon pour bavarder avec des gens qui traînent en attendant leurs impressions.
La réponse immédiate et évidente de " Vous ne pouvez pas simplement obtenir des écouteurs antibruit" n'aide pas quand vous voulez du silence.
Parfois, pour les revues de code, j'emmène ma pile de papiers dans la salle à manger (en dehors des heures de déjeuner, bien sûr), mais il y a une télévision qui est généralement criante. Je l'éteindrai si personne ne regarde. Sinon, je vais chercher un cube vide dans un autre département dans une autre partie du bâtiment.
Si vous voulez que vos programmeurs fassent le travail dont ils ont besoin, ce qui est principalement de réfléchir, de réfléchir et de réfléchir, ils ont besoin d'un environnement où ils peuvent le faire.
Écriture de trop de lignes de code sans tests adéquats.
Manque de café de haute qualité.
avoir à faire des estimations parfaites qui ne doivent pas être écartées une fois le développement commencé, c'est un scénario œuf de poule à mon avis
Réparer la version cassée de quelqu'un d'autre
Réunions sans ordre du jour.
Une machine lente.
Absence d'un deuxième moniteur.
Une vieille souris qui a une balle au lieu des belles nouvelles.
Le manque d'accès à Internet sur la machine, ce qui rend la requête MSDN / stackoverflow / etc un peu pénible.
Évitez tout ce qui vous fait sortir de «la zone». Cela signifie que votre boîte de réception e-mail, votre application popup Twitter, votre chat d'entreprise, etc.
Avoir une condition de travail silencieuse signifie également éviter ce bruit de bureau .
Toute demande de modification qui aurait été plus facile à mettre en œuvre si vous l'aviez connue au préalable.
The Much That Slows You Down est un bon article de blog pour cela.
...
De nombreux projets répètent encore et encore les principales fonctionnalités au niveau de l'infrastructure, ce qui ralentit l'activité de l'entreprise en proposant des fonctionnalités qui la différencient de ses concurrents.
...
Il est inévitable que les produits et les innovations contribuent à réduire le temps que les développeurs passent sur des tâches non différenciantes. La question est de savoir quelle forme ces services et outils prendront.
...
Eh bien, dernièrement, le ralentissement le plus important est dû au fait que nous développons simultanément plusieurs choses qui auraient dû être faites dans un ordre spécifique. J'attends donc que (les noms changent pour protéger l'innocent) John termine son composant dont j'ai besoin pour mon package SSIS et Harry est ralenti en attendant que j'importe des enregistrements car il a besoin de données à voir pour tester son exportation (essayez jamais pour écrire un rapport d'exportation complexe quand il n'y a pas de données dans l'une des tables?) et tout le monde est ralenti parce que la conception n'est pas terminée et les tables de base de données dont nous avons besoin pour faire nos tâches n'ont pas encore été créées et peuvent même ne pas se terminer être ce qu'ils ont dit qu'ils allaient être, etc.
Même si vous avez demandé de ne pas répertorier les distractions, elles peuvent être un facteur important. Examinez leur environnement de travail, vérifiez s'ils sont souvent interrompus ou invités à faire d'autres choses qui ne sont pas liées au projet.
Parfois, un développeur peut être bloqué parce qu'il fait quelque chose qu'il n'a jamais fait auparavant et qu'il ne sait pas où chercher de l'aide. S'il s'agit d'une petite équipe ou d'un individu, cela peut être encore plus difficile. Nous avons tendance à être quelque peu fiers et n'aimons pas admettre quand nous ne savons pas comment faire les choses. De plus, nous n'aimons pas demander de l'aide aux autres. Il n'y a pas de moyen facile d'amener un développeur à l'admettre, sauf peut-être pour lui demander s'il peut respecter le délai, ou ce dont il a besoin pour respecter le délai, puis espérer qu'il sera honnête. Vous devrez peut-être proposer d'apporter d'autres aides ou trouver quelqu'un qui puisse les aider.
Manque d'exigences clairement définies, ce qui les oblige à comprendre ou à prendre des décisions.
Je pourrais continuer, mais c'est vendredi et je veux oublier le travail.
Trop de personnes sur le projet.
Vu à plusieurs reprises, la direction décide en fonction de l'absence de données réelles dont elle a besoin pour ajouter plus de personnes au projet. Cela finit par le ppl qui sait ce qui se passe besoin de tout arrêter pour tenir la main de gens qui savent peu de choses sur ce qui se passe. J'ai vu plus d'un projet de champignon de taille, puis je suis allé rapidement dans les toilettes à partir de là, alors qu'avant ça allait bien, bien que peut-être un peu lent.
Donc, vous passez d'un mois de retard à cause de la vitesse insuffisante / trop à faire pour ne pas livrer du tout parce que vous avez totalement fait exploser le budget de toutes ces personnes supplémentaires.
Outre les choses mentionnées par d'autres, le long chemin entre la décision de compiler et d'exécuter votre code et d'obtenir un résultat positif / négatif . Idéalement, ce RTT ne serait qu'une seconde, mais j'ai vu un exemple d'heures. BTW, les tests unitaires tentent de résoudre ce problème.
Un autre problème lié à cela est une latence générale de votre environnement de travail. Imaginez que vous deviez travailler sur une connexion de bureau à distance à l'ordinateur de l'autre côté du monde, sur une connexion effrayante. J'ai été là. J'ai détesté ça.
Formalités administratives excessives
Être dépendant de quelqu'un qui n'est jamais là (comme votre patron - si vous avez besoin de poser une question mais qu'il est toujours en réunion)
Outils et équipements inadéquats.
Les gens poussent leur rame sans raison (tout changement visible dans l'interface utilisateur est soumis à cela) ou se disputent simplement à propos de choses triviales.
Machine à café cassée
Être assigné aux mauvaises tâches
C'est une opinion très personnelle et peut-être controversée, mais trop de planification et de réflexion à l'avance sur la conception ou l'écriture de code de «qualité». Il y a un dicton selon lequel «des semaines de codage peuvent vous faire économiser des heures de planification», ce qui pourrait être vrai dans certains cas.
Cependant, je vois souvent des programmeurs essayer d'esquisser un bon design avant de commencer à coder. Je me rends compte qu'il est plus facile de simplement "commencer", car en programmant, vous en apprendrez plus sur votre problème et votre solution, ce qui vous permettra de refaçonner rapidement votre solution en une bonne conception. La plupart des problèmes qui se posent sont à peu près inconnus au début du codage (du moins à mon faible esprit), donc perdre beaucoup de temps à concevoir à l'avance n'est qu'une perte de temps.
C'est aussi pourquoi je n'aime pas TDD, vous perdez trop de temps à écrire des tests, ce qui vous rend moins susceptible de refactoriser ou prend beaucoup de temps pour réécrire les tests. Les tests unitaires sont parfaits pour certains cas et certaines étapes d'un projet, mais le début de l'un n'est pas l'un d'eux à mon humble avis :)
Faites travailler quelque chose rapidement et améliorez-le.