web-dev-qa-db-fra.com

Temps d'estimation d'une enquête de bogue complexe (pas simple)

(Ce n'est pas un duplicata: l'enquête de bogues est beaucoup plus non déterministe qu'une tâche de développement définie où les activités à effectuer sont spécifiées. L'enquête consiste à réduit un énorme espace de recherche, qui est différent du logiciel de la construction. . Nous ne pouvons pas comparer Bugs de corruption mémoire, C/C++ comportements non définis et Courses de données multi-threads aux tâches de développement limitées).

Ce n'est pas la première fois que mes supérieurs demandent une estimation lorsqu'ils traitent de l'enquête de bogues. Tout comme c'était une tâche de développement délimitée.

J'ai tendance à préférer une échelle de complexité. Quelque chose comme: facile , pas si facile , Hazy , difficile , et vraiment difficile . Et donner une estimation de temps uniquement pour des enquêtes faciles.

Pour des enquêtes simples, je suis d'accord pour dire que c'est réalisable. Mais je n'ai aucun succès à les expliquer qu'une enquête complexe est un processus de cyclisme:

  1. Raison sur les faits, le code, le problème
  2. Faire une hypothèse
  3. Trouvez des moyens de mesurer l'hypothèse par des faits (traces, journaux, débogage ...)
  4. Si des faits sont clairs et que l'hypothèse est fausse, redémarrez à 1.

C'est un processus plutôt scientifique/rationaliste.

Quels autres arguments pourrais-je dire, afin d'expliquer l'incertitude dans le processus même d'enquête de bogue?

14
Stephane Rolland

Ce n'est pas pratiquement utile pour vous, mais je ne serais pas couler au niveau d'explication des collègues non techniques pourquoi Certaines tâches techniques sont plus difficiles que d'autres. Le point de recruter des spécialistes pour des tâches de programmation meilleur à des choses techniques et pire dans des affaires commerciales ou de gestion que leur employeur est-ce Thy sont meilleurs à eux. Dans une grande partie, comprendre pourquoi un défaut se pose équivaut à pouvoir le réparer et à moindre degré de pouvoir éviter des erreurs similaires à l'avenir.

Peu de temps et brutalement, si vos supérieurs pouvaient comprendre pourquoi certaines tâches de débogage sont si difficiles, elles seraient en mesure d'exécuter ces tâches elles-mêmes - ce qu'elles ne sont pas, car ils vous embauchèrent. Il est difficile pour quiconque d'accepter qu'il y a des distinctions qu'ils ne peuvent pas apprécier, il y a donc peu de points expliquant à un gestionnaire que vous rencontrez des difficultés que vous ne pouvez pas lui expliquer. La meilleure chose à faire est de relever son niveau de vue et de lui dire: "Regardez, je sais que cela sonne boiteux, mais je ne peux pas vous dire très bien combien de temps cela prendra peu importe ce que l'incitation". Une fois que vous avez dit cela dans les cas où c'est vrai, et ils ont vu cela est en fait vrai (parce que vos efforts DID varient de manière imprévisible), peut-être Ils vont commencer à vous croire quand vous dites que vous ne savez pas quelque chose. Mais je ne tiendrais pas mon souffle. Dire "je ne sais pas" à quelque chose dans un environnement compétitif est très difficile à faire et de nombreux professionnels évitent de le faire à tout prix; Et ils ont donc tendance à croire que ce n'est pas vrai quand quelqu'un d'autre le dit non plus. Étrange, mais (dans mon expérience précédente) trop vrai.

8
Kilian Foth

En fonction de la gravité de la question et de l'urgence de la fixer, voir s'ils acceptent un effort "en boîte temps". Dites, deux jours d'enquête/essayant de recréer le problème. Si vous ne l'avez pas à ce moment-là, vous rapportez sur ce que vous avez éliminé comme problème et voyez s'ils veulent que vous continuiez à creuser.

Pour des problèmes mineurs, ils accepteront probablement une courte période de temps tant que le travail se poursuit sur d'autres problèmes ou caractéristiques. Pour les majeurs, en particulier ceux avec une visibilité majeure, la boîte de temps les permettra de recevoir des rapports réguliers sur vos efforts.

10
user11393

Combinez deux approches: l'approche "Estimation du temps fixe" et "Je ne sais pas" l'approche sans littéralement dire que je ne sais pas. Faisons face dessus, si vous saviez exactement ce qui cause le bug que vous n'auriez pas écrit de cette façon (oui, je sais que nous ne corrigeons pas toujours notre propre code, mais ne nettoie pas le désordre de quelqu'un d'autre encore pire?).

Prenez l'habitude de répondre aux demandes de citation de l'heure de bug avec, "Je vais y jeter un coup d'œil et vous permettra de savoir combien de temps cela prendra." Les gens veulent savoir que vous vous souciez suffisamment en démontrant que vous preniez des mesures pour résoudre le problème et que vous préférez leur tâche de manière appropriée. Faire des promesses (et ils sont des promesses dans leur esprit) que vous ne pouvez pas continuer à réduire leur niveau de confiance en vous.

N'oubliez pas de réorganiser vos autres engagements. En termes simples, je ne peux pas corriger votre nouveau bogue trouvé et livrer une nouvelle fonctionnalité en même temps. Lequel voulez-vous que je fasse en premier? Espérons que, ils obtiendront le bug du chemin, mais vous ne savez jamais.

Ils ne veulent pas d'une explication technique. Quand un utilisateur non technique demande: "Pourquoi cela va-t-il prendre si longtemps?" Ils ne veulent pas nécessairement une réponse technique et ils ne veulent vraiment pas de détails. En prenant le temps d'enquêter sur l'erreur, puis de donner une estimation de temps après, vous pouvez également résumer la solution. Il peut y avoir plusieurs domaines de l'application à modifier (la dette technique est dûment dû.), Corrigé d'autres technologies, etc.

6
JeffO

Je suggère de donner une gamme comme une estimation.

Par exemple, pour des problèmes faciles, il pourrait être "entre 15 minutes et trois heures", pour des problèmes difficiles, il pourrait être "entre deux heures et une semaine".

Cela devrait faire passer votre point. S'ils demandent Pourquoi Votre estimation de cas Meilleur et Wost Différent si sauvagement, vous pouvez commencer à expliquer les choses que vous avez mentionnées dans votre question (processus cyclique, etc.) et même donner des exemples pour le meilleur et le pire des cas .

2
Heinzi

Vous recherchez une solution à un problème peut être beaucoup comme à la recherche de tout ce qui manque. Prenez des clés de voiture par exemple. Si le mien n'est pas sur l'étagère où ils appartiennent, je vérifie l'autre côté de l'étagère et quelques poches de manteau et les trouvent généralement en quelques minutes.

Lorsque ma femme a perdu ses clés un peu de temps, nous avons dû attendre que la dérive de la neige fondait en premier. Cela a pris quelques mois.

Je pense que vous l'avez cloué avec "facile", "Hazy" et "Hard". Un bogue est facile à trouver lorsque vous pouvez réduire rapidement votre espace de recherche jusqu'à quelque chose de raisonnable. C'est dur quand tu ne peux pas.

Tous vos supérieurs ont-ils vraiment besoin de savoir est qu'il s'agit d'une priorité, vous travaillez méthodiquement/vous avez un plan de recherche et vous n'êtes pas encore sorti des idées.

1
Dan Pichelman

L'estimation temporelle d'achèvement des tâches dans le développement de logiciels est un art sombre. Je pense que vos arguments sont bons, mais vous avez oublié une critique:

Cependant, je pense que cela va prendre, multiplier cela par deux.

J'ai trouvé cela pour travailler assez bien. Les choses vont toujours plus de temps que vous ne le pensez, en particulier dans le développement de logiciels.

0
Lawrence Aiello