Un manager a récemment annoncé qu'il passait beaucoup trop de temps à corriger des bugs. Je pense qu'il pense que nous devrions écrire du code parfait tout le temps (tout en respectant ces délais impossibles bien sûr!) Et cela m'a fait me demander quelle était la moyenne du temps passé par l'industrie à corriger les bogues v à écrire du nouveau code.
Quelqu'un a-t-il des mesures sur le temps passé à corriger les bogues contre le développement de nouveau code? Ou existe-t-il une analyse empirique du temps de correction des bogues pour l'industrie dans son ensemble? Est-ce que 50% des bogues dépensés sont trop réparés, ou à peu près? Que diriez-vous de 20% ou 33%?
Je suis heureux d'accepter des preuves anecdotiques issues d'une expérience personnelle, car cela ferait partie de certaines statistiques ici auxquelles je pourrais comparer nos performances.
Réponses:
Ci-dessus semble très ignorant. Lecture suggérée pour des cas comme celui-ci: Faits et erreurs du génie logiciel par Robert L. Glass, en particulier "Fait 43. La maintenance est une solution, pas un problème."
Un article de Wikipédia mentionne 80% des efforts consacrés à la maintenance des logiciels.
Hm donné ci-dessus, je prendrais également des efforts pour analyser si toutes les demandes que vous faites sont des bogues .
D'après mon expérience, il était beaucoup trop fréquent que des demandes d'améliorations ou de nouvelles fonctionnalités soient soumises en tant que bogues. Les bons gestionnaires font participer leurs programmeurs à la découverte de cela - les mauvais gestionnaires, enfin, continuent de se plaindre de trop de temps à corriger les bogues .
la source
La première question à se poser est de savoir si votre "correction de bogue" corrige réellement des bogues de codage ou autre chose. La correction des bogues de code réels devrait être relativement faible dans la plupart des cas tant que vous avez une bonne base de code. Si vous travaillez avec une mauvaise base de code, une correction étendue des bogues est inévitable.
Cependant, au cours de la mise en production d'un programme, vous trouverez des exigences non documentées, une activité utilisateur inattendue, des anomalies de données, des incompatibilités matérielles, des problèmes d'installation et d'autres problèmes qui ne sont pas strictement des bogues de code. Souvent, les gestionnaires et les utilisateurs considéreront ces problèmes de support / maintenance de production comme des bogues car ils nécessitent généralement des modifications de code.
J'ai également rencontré des gestionnaires qui regroupaient ce qui aurait dû être qualifié de demandes d'amélioration mineures en tant que bogues. Souvent, ceux-ci sont entrés dans un système de suivi des bogues ou de rapport de problèmes et cela peut rendre vos statistiques de "bogues" plus élevées qu'elles ne le sont réellement.
la source
Cela dépend de la quantité de code dont vous disposez, de sa durée, etc.
Le temps consacré à la correction des bogues dans les logiciels devrait être chargé en amont sur les 6 à 12 premiers mois de publication, mais à mesure que le temps approche de l'infini, le temps consacré à la maintenance par rapport au temps consacré au développement initial dépassera 100% - c'est exactement ainsi que les choses travail.
Bien que je n'ai pas de statistiques précises (Code Complete le fait, mais je ne peux pas vous dire exactement quelle page / section), d'après mon expérience, environ 40% du développement (parfois jusqu'à 60%) est consacré à la maintenance. Il est évident que plus vous libérez de code, plus vous aurez de temps de maintenance. Les bogues ne sont pas toujours fonctionnels et résultent autant de l'incertitude que de défauts de programmation.
la source
si vous utilisez un bon traqueur de billets (tel que Jira d'Atlasian) et que vous avez passé du temps à entrer toutes les différentes catégories, les histoires d'utilisateurs, les niveaux d'urgence correctement et avec l'accord de vos coéquipiers, puis à calculer ces métriques (et plus) sont incroyablement faciles.
Lors d'un projet précédent, nous avons utilisé Jira pour gérer nos listes de bogues / tâches / tâches, et à la fin, cela nous a montré que la principale cause de retards et de problèmes s'est avérée être des pratiques de gestion inefficaces.
Curieusement, lorsque ces informations ont été publiées, nous avons soudainement dit que nous n'utiliserions plus Jira et qu'un nouveau produit serait introduit pour le remplacer.
Entre-temps, toutes les demandes de transfert de données via Jira devaient être envoyées à l'équipe de gestion, et notre accès direct a été supprimé.
Ce qui n'a pas été remarqué, c'est que dans le cadre du calcul des statistiques, l'équipe de développement a demandé à Jira de piquer des données vers un crochet Web, et ce crochet Web a été utilisé pour transmettre des données à un point final sur certains serveurs internes, où nous avions du code qui a créé ces rapports automatiquement.
Nous avons commencé à surveiller le hook Web, et nous avons constaté que même si nous avons dit que Jira n'était plus utilisé, il est resté très longtemps en vie plus longtemps (plus de 6 mois pour être exact) et les abus massifs de la haute direction étaient tout simplement rampant avec une mauvaise utilisation.
Bien sûr, cela ne doit pas être quelque chose d'aussi complexe que Jira.
Si vous voulez une solution à faible rendement, vous pouvez utiliser une feuille de calcul google-docs et l'API de notification GDocs pour suivre les tâches / tickets / bugs / demandes de fonctionnalités, etc.
GDocs lui-même peut désormais publier des crochets Web et toutes sortes de choses.
Ajoutez à cela Git et / ou Github et certains hooks qui se déclenchent lorsque le code est validé dans votre référentiel, et vous avez un système de brassage domestique raisonnablement efficace, qui peut enregistrer une quantité surprenante de données.
En général, cependant, sur 100% de la durée de vie naturelle d'un produit, la répartition entre le développement et la maintenance est généralement de 20/80, la majeure partie du coût du cycle ALM (Application Lifetime Management) est absorbée par les coûts de maintenance et d'assistance.
Il n'y a rien de tel que de passer trop de temps à corriger les bogues, car il n'est tout simplement pas possible d'écrire du code sans bogue.
De bonnes politiques de test et d'intégration continue réduiront le défaut, mais vous ne l'éradiquerez jamais complètement.
Quiconque croit autrement (à mon humble avis) n'a pas suffisamment de connaissances pour porter un jugement précis ou est aveugle (le cas le plus courant) à quel point il est difficile d'écrire un logiciel.
Si votre manager est prêt pour cela, et certains le sont, alors vous voudrez peut-être lui suggérer de vous accompagner pendant une journée, afin qu'il puisse voir exactement ce que vous faites et comment vous le faites.
Iv'e a travaillé dans quelques entreprises où ce type de travail était activement encouragé, avec du personnel de niveau supérieur qui suivait du personnel de niveau inférieur, et vice versa, cela peut être une très bonne expérience d'apprentissage pour les deux parties impliquées.
la source