70 votes

Comment définir la qualité du code dans un contrat?

Sur mon lieu de travail, nous voulons externalisation de certaines parties de notre projet de développement de logiciel à un prestataire extérieur (une autre société avec plusieurs développeurs). Notre plus grande crainte est que, bien que toutes les conditions seront remplies, le code peut être très mauvais, comme c'est souvent le cas avec externalisé projets de logiciels.

Nous ne pouvons pas utiliser les méthodes conventionnelles pour assurer le code qualitity, comme d'examen par des pairs ou d'une paire de programmation, notre première idée était la suivante: "Hé, faire de la qualité du code partie des besoins."

Mais comment pouvons-nous en faire?

Même si nous passons en revue le code, nous devons être capables de dire: Ce n'est pas ce que nous avons convenu. Nous avons donc besoin de quelque chose qui peut être quantifiée, quelque chose qui n'est pas ouvert au débat.

D'autre part nous ne voulons pas nous effrayer de chaque sous-traitant, car les définitions sont impractically stricte. Nous ne voulons pas de code parfait, mais au moins un minimum de code qualitity doit être assurée.

36voto

Julien Hoarau Points 23987

Le contrôle de la sous-traitance de la qualité du projet

Si vous voulez un particulier de la qualité du projet, vous devrez :

  • Intégrer claire des objectifs de qualité dans votre contrat
  • Avoir une vision claire de la qualité du projet au cours de l'élaboration
  • L'utilisation d'un système indépendant qui agit comme un tiers de confiance pour valider le niveau de qualité

Claire des objectifs de qualité

Pour aider à votre entrepreneur de se conformer à votre objectif, de traduire vos exigences en béton exigences techniques adaptés à vos questions.

  • Sélectionne les meilleures pratiques à suivre basés sur les technologies utilisées (Fxcop, StyleCop des règles .NET / Findbugs, PMD, Checkstyle pour Java)
  • Définissent des seuils de tolérance pour atteindre le niveau optimal de qualité :
    • La Complexité cyclomatique doit être inférieure à 20
    • Méthode de taille doit être inférieure à 50 lignes
    • Pas dupliqué bloc avec une taille supérieure à 10 lignes
    • La couverture de Test doit être supérieure à 80%

(Seuil indicatif, vous devez adapter la valeur fondée sur la qualité attendue. La sur-qualité n'est pas bonne, que ce soit pour votre projet $$$)

Vision claire de la qualité du projet

Dans votre contrat, demandez à la livraison régulière. Évaluer la remise de vos entrepreneurs pour s'assurer qu'ils sont suivant vos exigences et qu'ils vont produire le niveau de qualité nécessaire pour la réussite du projet. Si pas tirer en arrière sur la piste.

Comment ?

Manuellement à l'aide d'un tas d'outils

Vous pouvez utiliser un tas d'outils (Pour Java : Findbugs, JavaNCSS, Simian...) et analyser manuellement le projet avec le droit de la configuration (ce qui est indiqué). Votre entrepreneur en faire de même afin d'assurer la qualité du projet avant la livraison.

À l'aide d'une plate-forme de gestion de la qualité

La façon la plus simple de faire tout cela, c'est d'utiliser un existant de la qualité de la gestion des logiciels. Ce logiciel doit être disponible, à vous et à votre entrepreneur. Il sera utilisé comme un système indépendant qui agit comme un tiers de confiance pour valider le niveau de qualité.

Exemples :

14voto

0xA3 Points 73439

L'utilisation d'un ballon d'essai: Laissez-les commencer avec un petit paquet premières ne contenant qu'un petit ensemble de fonctions (l'équivalent d'une première étape). Indiquer clairement dans le contrat, que vous vous attendez à une haute qualité du code.

Ils peuvent éventuellement obtenir que le succès d'une prestation donnera lieu à un nouveau contrat et de fournir de haute qualité. Si vous n'êtes pas satisfait, vous pouvez décider de faire le travail vous-même ou de trouver quelqu'un d'autre sans avoir perdu trop d'argent.

En outre, il pourrait être utile si vous avez quelqu'un de passer régulièrement en revue le code. Il est préférable de définir des petits paquets de travail qui peut être facilement examiné que d'avoir une étape importante où il serait trop tard pour demander des modifications.

13voto

David Christiansen Points 3207

Avez-vous vérifié FxCop ou StyleCop?

Ils sont bons à flairer les "mauvaises odeurs" et peut être intégré dans votre build.

8voto

Lazarus Points 17526

Si vous voulez que certains de la qualité du code, alors vous aurez à fournir votre donneur d'ordre avec vos directives de codage et de vérifier que votre contrat comporte une clause stipulant que ceux-ci doivent être suivies ou code peut ne pas être accepté.

6voto

Saul Points 10449

Ce n'est pas un problème technique. C'est une question de confiance.

Je suggère de concentrer vos efforts sur de trouver le bon partenaire. Essayant de gérer les risques en mettant l'accent sur les effets plutôt que les causes n'est pas une très bonne approche.

Parler de vos préoccupations et de parler franchement avec votre potentiel sous-traitant de l'aide aussi.

Prendre quelques jours de remue-méninges avec votre équipe et venir avec, disons, 10 lignes directrices utiles pour la qualité du code que vous voir et de présenter ceux de l'autre côté. Prenez note de leurs réactions.

Trouver les bonnes personnes. Lorsque vous n'êtes pas sûr, d'accepter les risques ou à pied. Communiquer. Il n'y a pas de balle en argent sur le côté technique pour assurer la qualité du code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X