2010-11-09 4 views
10

Un ami me disait l'autre jour qu'il y avait une pyramide pour les coûts de résolution d'un problème dans le cycle de développement du logiciel. Où pourrais-je trouver ceci? Il faisait référence au coût de la résolution d'un problème.Coût de développement de logiciel Pyramide

Par exemple,

Pour résoudre un problème aux coûts de la phase des exigences 1.

Pour résoudre un problème aux coûts de la phase de développement 10.

Pour résoudre un problème à l'essai étape coûte 100

Pour résoudre un problème aux coûts de la phase de production 1000.

(Ces chiffres ne sont que des exemples)

Je serais intéressé à voir plus à ce sujet si quelqu'un a des références.

+2

Je vote pour clore cette question hors-sujet car son coût de déploiement est – bummi

+1

Je vote pour clore cette question hors-sujet parce qu'elle concerne la gestion d'un projet, pas la programmation. – gunr2171

Répondre

0

Jamais entendu parler d'être appelé une pyramide avant, et cela semble un peu à l'envers pour moi! Pourtant, la thèse centrale est largement considérée comme correcte. juste épais à ce sujet, les coûts de la correction d'un bug en phase alpha sont souvent triviaux. Par étape bêta, cela peut prendre un peu plus de débogage et de rapports utilisateur. Après l'expédition, cela pourrait être très coûteux. une toute nouvelle version doit être créée, vous devez vous soucier de casser le code de production et les données, il peut aussi y avoir des ventes perdues à cause du bug?

12

Ceci est un résultat bien connu en génie logiciel empirique qui a été reproduit et vérifié encore et encore dans d'innombrables études. Ce qui est très rare en génie logiciel, malheureusement: la plupart des «résultats» de l'ingénierie logicielle sont essentiellement des ouï-dire, des anecdotes, des suppositions, des opinions, des vœux pieux ou tout simplement des mensonges. En fait, la plupart des logiciels ne méritent probablement pas la marque «engineering». Malheureusement, bien qu'il soit l'un des résultats les plus solides, les plus scientifiquement et statistiquement solides, les plus recherchés, les plus largement vérifiés, le plus souvent reproduits du génie logiciel, il est également erroné.

Le problème est que toutes ces études ne contrôlent pas correctement leurs variables. Si vous voulez mesurer l'effet d'une variable, vous devez être très soin de changer ne que une variable et que les autres variables ne changent pas du tout . Pas "changer quelques variables", pas "minimiser les changements à d'autres variables". "Un seul" et les autres "pas du tout". Ou, dans les mots brillants de Zed Shaw: si vous voulez mesurer la merde, ne mesurez pas d'autre merde.

Dans ce cas particulier, ils ne pas juste mesure dans laquelle phase (besoins, analyse, architecture, conception, implémentation, tests, maintenance) le bug a été trouvé, ils également mesuré la longue il est resté dans le système. Et il se trouve que la phase est à peu près hors de propos, tout ce qui compte est le temps. Il est important que les bogues soient trouvés rapide, pas dans quelle phase.

Cela a des ramifications intéressantes: s'il est important de trouver des bogues rapide, alors pourquoi attendre si longtemps avec la phase la plus susceptible de trouver des bugs: test? Pourquoi ne pas mettre le test au commençant?

Le problème avec l'interprétation «traditionnelle» est qu'elle conduit à des décisions inefficaces. Parce que vous supposez que vous avez besoin de trouver tous les bugs pendant la phase des exigences, vous faites glisser la phase des exigences inutilement longtemps: vous ne pouvez pas exécuter exigences (ou architectures, ou conceptions), donc trouver un bug dans quelque chose que vous ne pouvez pas même exécuter est flippant dur! Fondamentalement, tandis que la fixation des bogues dans la phase des exigences est bon marché, trouver est coûteux.

Si, cependant, vous vous rendez compte que ce n'est pas de trouver les bugs dans la première phase possible, mais plutôt de trouver les bugs le plus tôt possible, alors vous pouvez faire des ajustements à votre processus, de sorte que vous déplacez la phase dans laquelle trouver bugs est moins cher (test) au moment où fixation eux est moins cher (le tout début).


Note: Je suis bien conscient de l'ironie de mettre fin à une diatribe de ne pas appliquer correctement les statistiques d'une réclamation complètement non fondées. Malheureusement, j'ai perdu le lien où j'ai lu ceci. Glenn Vanderburg a également mentionné cela dans son discours "Real Software Engineering" lors de la conférence Lone Star Ruby 2010, mais AFAICR, il n'a cité aucune source non plus.

Si quelqu'un connaît des sources, s'il vous plaît faites le moi savoir ou modifier ma réponse, ou même simplement voleras ma réponse. (Si vous pouvez trouver une source, vous méritez tous les rep!) ​​

+0

Je travaille dans une entreprise qui ne passe pratiquement pas de temps dans la phase des exigences (et l'approximation la plus proche de notre processus de développement est la cascade ...). Ignorer cela conduit à tellement de changements que le logiciel que nous avons commencé à écrire n'a aucune similitude avec le produit final ... et cela coûte beaucoup plus cher. En plus de cela, puisque nous ne passons pas du temps dans les exigences nous finissons par faire beaucoup de changements à la production après le fait qui ne sont pas faciles à implémenter en raison de la structure du logiciel autour des exigences ... –

1

Voir pages 42 et 43 de this presentation (pdf). Malheureusement, la situation est telle que le décrit Jörg, en fait un peu moins bien: la plupart des références citées dans ce document me semblent être fausses, dans le sens où le document cité n'est pas une recherche originale ou ne contient pas de mots soutenant le réclamation faite, ou - dans le cas du 1998 paper about Hughes (p54) - contient des mesures que en fait contredire ce qui est impliqué par la courbe en p42 de la présentation: la forme différente de la courbe, et un modeste facteur x5 à x10 de Coût-à-Fixer entre la phase des exigences et la phase de test fonctionnel (et effectivement diminuer dans le test et la maintenance du système).

+0

pdf n'est plus disponible. Avez-vous un nouveau lien pour cela? –

+0

Essayez ceci http://seaspin.org/files/folders/205/download.aspx ou ce http://seaspin.org/files/folders/22/download.aspx – Morendil

+0

Aussi, je recommande mon livre: http: // leanpub.com/leprechauns avec beaucoup plus sur le sujet – Morendil

-1

Essayez ceci article. Il utilise l'argument "pyramide des coûts" (sans le nommer), entre autres.

+1

S'il vous plaît inclure une réponse réelle, au lieu d'afficher le lien unique. Merci. –

Questions connexes