Comment estimez-vous un retour sur investissement pour la compensation dette technique?

StackOverflow https://stackoverflow.com/questions/1790431

  •  22-09-2019
  •  | 
  •  

Question

Je travaille actuellement avec un produit assez ancien qui a été aux prises avec beaucoup de dette technique de pauvres programmeurs et les pratiques de développement pauvres dans le passé. Nous commençons à mieux et à la création de la dette technique a considérablement ralenti.

J'ai identifié les domaines de l'application qui sont en mauvais état et je peux estimer le coût de la fixation de ces zones, mais je vais avoir du mal à estimer le retour sur investissement (ROI).

Le code sera plus facile de maintenir et sera plus facile d'étendre à l'avenir, mais comment puis-je aller à mettre un chiffre sur ces?

Un bon endroit pour commencer ressemble à retourner dans notre système de suivi des bogues et l'estimation des coûts en fonction des bugs et des caractéristiques relatives à ces zones « mauvais ». Mais cela semble chronophage et peut ne pas être le meilleur prédicteur de la valeur.

Quelqu'un at-il effectué une telle analyse dans le passé et des conseils pour moi?

Était-ce utile?

La solution

Les gestionnaires se soucient de faire $ grâce à la croissance (en premier lieu par exemple de nouvelles fonctionnalités qui attirent de nouveaux clients) et (deuxième) grâce à l'optimisation du cycle de vie des processus.

En regardant votre problème, votre proposition tombe dans la deuxième catégorie: ce sera sans aucun doute retard objectif # 1 (et donc obtenir la priorité vers le bas même si cela pourrait économiser de l'argent ... parce que économiser de l'argent < strong> implique dépenser de l'argent (la plupart du temps au moins, -).)

maintenant , mettre un chiffre de $ sur la « mauvaise dette technique » pourrait être tourné en vrille plus positive (en supposant que les recommandations suivantes en votre cas): «si nous investissons dans le composant retravaillant X, nous pourrions introduire plus vite fonction Y et Z ainsi obtenir plus de clients ».

En d'autres termes, évaluer le coût de la dette technique par rapport au coût des occasions d'affaires perdues .

Autres conseils

Sonar a un grand plug-in (

Je pense que vous êtes sur la bonne voie.

Je l'ai pas eu à calculer cela, mais je l'ai eu quelques discussions avec un ami qui gère une grande organisation de développement logiciel avec beaucoup de code existant.

L'une des choses dont nous avons parlé génère des mesures d'effort bruts de l'analyse VCS engage et les utiliser pour diviser une estimation approximative des heures de programmeur. Cela a été inspiré par La planification basée sur des données probantes.

Faire de telles l'exploration de données vous permettra aussi d'identifier le regroupement quand le code est maintenu et les comparer à la fin de bogue dans le système de suivi (sauf si vous êtes déjà bénis avec une intégration étroite entre les deux et registres précis).

ROI approprié doit calculer le retour complet, de sorte que certaines choses à considérer sont les suivants: - réduction du coût de l'entretien (évidemment) - coût d'opportunité à l'entreprise de temps d'arrêt ou de nouvelles fonctionnalités manquées qui ne pouvait pas être ajouté dans le temps pour une sortie - capacité à générer de nouvelles gammes de produits en raison de refactoring

Rappelez-vous, une fois que vous avez une règle pour les données provenant, vous pouvez avoir des arguments sur exactement comment pour calculer les choses, mais au moins vous avez certains chiffres aux semences de discussion!

+1 pour la mise au point de jldupont sur les occasions d'affaires perdues.

Je suggère de penser à ces occasions telles qu'elles sont perçues par la direction. Que pensent-ils influe sur la croissance du chiffre d'affaires - nouvelles fonctions, le temps sur le marché, la qualité des produits? Relative à remboursement de la dette ces pilotes aidera la direction à comprendre les gains.

Mettre l'accent sur les perceptions de gestion vous aidera à éviter numeration faux. ROI est une estimation, et il n'y a pas mieux que les hypothèses formulées dans son estimation. La direction soupçonnez arguments quantitatifs uniquement parce qu'ils savent qu'il ya d'autres qualitatives là-dedans quelque part. Par exemple, à court terme, le coût réel de votre remboursement de la dette est l'autre travail que les programmeurs ne font pas, plutôt que le coût de l'argent de ces programmeurs, parce que je doute que vous allez embaucher et former de nouveaux employés juste pour ce . Les améliorations dans le temps de développement futur ou de la qualité plus importante que les caractéristiques de ces programmeurs seraient autrement ajouterons?

Aussi, assurez-vous que vous comprenez l'horizon pour lequel le produit est géré. Si la direction ne pense pas à deux ans à partir de maintenant, ils ne se soucient pas des avantages qui n'apparaîtront pendant 18 mois.

Enfin, une réflexion sur le fait que les perceptions de gestion ont permis ce produit pour se rendre à cet état en premier lieu. Ce qui a changé qui rendrait plus attentifs à l'entreprise de la dette technique? Si la différence est - vous êtes un meilleur gestionnaire que vos prédécesseurs - garder à l'esprit que votre équipe de gestion ne sert pas à penser à ce genre de choses. Vous devez trouver leur appétit pour elle, et se concentrer sur les éléments qui donneront des résultats qu'ils se soucient. Si vous le faites, vous gagnerez la crédibilité, que vous pouvez utiliser pour les faire réfléchir à d'autres changements. Mais l'appréciation des gains pourrait être un certain temps dans la croissance.

Je ne peux parler que de la façon de procéder de manière empirique dans un processus itératif et incrémental.

Vous devez recueillir des mesures pour estimer votre meilleur coût démontré / histoire point. Vraisemblablement, cela représente votre système juste après le désabonnement architectural initial, alors que la plupart des essais et erreurs de conception a été fait, mais l'entropie a eu le moins de temps pour causer la carie. Trouver le point dans l'historique du projet lorsque la vitesse / équipe de taille est la plus élevée. Utilisez-le comme votre base de coûts / points (zéro dette).

Au fil du temps, la dette technique accumule, la taille de l'équipe de vitesse / commence à diminuer. La diminution en pourcentage de ce nombre par rapport à votre base peut être traduit en « intérêt » payé sur chaque nouveau point d'histoire. (Ceci est vraiment intérêt payé sur les techniques et dette de connaissances)

Disciplined refactoing et recuit provoque l'intérêt sur la dette technique à une valeur stablize supérieure à votre base. Pensez à ce que l'intérêt à l'équilibre le propriétaire du produit paie sur la dette technique dans le système. (Le même concept s'applique à la dette des connaissances).

Certains systèmes atteignent le point où le coût + intérêts sur chaque nouveau point d'histoire dépasse la valeur du point caractéristique en cours d'élaboration. Ceci est lorsque le système est en faillite, et il est temps de réécrire le système à partir de zéro.

Je pense qu'il est possible d'utiliser l'analyse de régression à part la dette technique titiller et de la dette des connaissances (mais je ne l'ai pas essayé). Par exemple, si l'on suppose que la dette technique est en corrélation étroite avec des métriques de code, par exemple la duplication de code, vous pouvez déterminer le degré d'intérêt payé est de plus en plus en raison de la dette technique par rapport à la dette des connaissances.

Être la plupart du temps seul ou développeur de petite équipe cela est hors de mon domaine, mais pour moi une excellente solution pour savoir où le temps est gaspillé est très, très Chronométrage détaillée, par exemple avec un outil barre des tâches à portée de main comme < a href = « http://www.allnetic.com/ » rel = « nofollow noreferrer »> celui-ci qui peut même filtrer quand vous allez aux toilettes, et peut exporter tout en XML.

Il peut être lourd au début, et un défi à présenter une équipe, mais si votre équipe peut se connecter toutes les quinze minutes, ils passent à cause d'un bug, erreur ou méprise dans le logiciel, vous accumuler une base de impressionnant, réel données -Life sur ce que la dette technique est en fait coûte des salaires tous les mois.

L'outil I lié à est mon préféré parce qu'il est mort simple (ne nécessite même pas une base de données) et donne accès à tous les projets / item par une icône de la barre des tâches. En outre la saisie d'informations complémentaires sur les travaux effectués peut être fait là-bas, et est littéralement Chronométrage activé en quelques secondes. (Je ne suis pas affilié avec le vendeur.)

Il est peut-être plus facile d'estimer le montant qu'il vous a coûté dans le passé . Une fois que vous avez fait cela, vous devriez être en mesure de trouver une estimation pour l'avenir avec des gammes et logiques même vos patrons peuvent comprendre.

Cela étant dit, je n'ai pas beaucoup d'expérience avec ce genre de chose, simplement parce que je ne l'ai jamais vu encore un manager prêt à aller loin dans le code de fixation. Il a toujours été juste quelque chose que nous corriger lorsque nous devons modifier le code mauvais, donc refactoring est effectivement un coût caché sur toutes les modifications et corrections de bugs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top