Comment estimer la contribution d'un individu à un projet de logiciel? [fermé]

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

  •  19-09-2019
  •  | 
  •  

Question

Je travaille sur un projet de logiciel et que vous souhaitez estimer le pourcentage de la contribution totale que j'ai mis dans le développement du logiciel. Est-il un outil faisant cela? Un tel outil peut être utile pour des évaluations ou des négociations, par exemple. Après tout, nous travaillons pour l'argent (oui, non seulement l'argent, a mis le point reste). Je pense qu'il ya assez de main-agitant des choses les plus importantes.

L'estimation est très subjective (au moins pour moi maintenant) mais je ne sais pas d'un outil qui fournit même une estimation subjective. Je sais que des SLOCCount qui précise l'effort total en utilisant les lignes de code, mais pas sur une base par développeur.

Mon idée d'un outil idéal pour cette fin serait:

  • mesurer la complexité du code (plus complexe est plus d'efforts, mais plus d'efforts ne sont pas nécessairement plus contribution)
  • mesurer la decomposibility / flexibilité du logiciel (plus décomposable est mieux)
  • combien de code de bibliothèque est utilisé - en utilisant le code bibliothèque accélère le processus de développement, augmente le risque associé et nécessite le développeur de savoir d'avant ou en apprendre davantage sur la bibliothèque.
  • être assez intelligent pour différencier les « qui a écrit le code », « qui a copié le code » et « qui indenté le code ».

Il est difficile de faire la différence entre la complexité de la mise en œuvre et la complexité intrinsèque du problème. Peut-être peut être effectué une comparaison avec un homologue open source équivalente s'il y a, ou pour chaque sous-module séparément.

S'il n'y a pas d'outil, est-il pas le mérite d'avoir un tel outil? Ou croyez-vous à « je travaille, je ne mesure pas »? Il faut du temps après tout. Peut-être le chef de projet devrait faire cette estimation de façon continue, par exemple, toutes les semaines. Y a-t-il des normes? Oui, la normalisation est difficile parce que chaque projet a des objectifs différents, mais peut-être cela devrait signifier qu'il devrait y avoir plusieurs normes, non pas de normes du tout. Cela ressemble à la façon dont une entreprise est évaluée sur le marché.

Mise à jour : après avoir vu quelques réponses initiales: Il n'a pas de sens d'imaginer un outil qui vient en sortie les pourcentages. Y at-il des outils qui peuvent aider les humains (en particulier les gestionnaires) à prendre de meilleures décisions? Ou quelle est la statistique suffisante pour prendre de meilleures décisions? Ces statistiques disponibles?

Pas de solution correcte

Autres conseils

Je doute vraiment il y a une façon digne de confiance fiable de mesurer la contribution de l'individu à la solution. réécriture parfois un code d'héritage complexe qui se traduit par moins de lignes de code, solution moins compliquée (plus petite complexité cyclomatique, etc.) peut être considérée comme une contribution très importante, alors que dans d'autres cas, la suppression du code de valeur couvrant les cas de pointe qui se traduit par les mêmes statistiques ( moins de lignes de code, plus petit CC etc.) est certainement quelque chose de mal. Tout cela se résume à des gens, la confiance et la coopération, l'individualisme dans l'équipe est presque toujours tort et je préfère l'éviter et surtout pas l'utiliser comme un facteur de motivation.

Ceci est un sujet de recherche lui-même. Il existe plusieurs outils qui ont essayé de définir des paramètres comme propriété de code . Il existe d'autres approches qui abordent d'autres aspects du développement collaboratif, par exemple href="http://scg.unibe.ch/archive/papers/Gysi10a.pdf" rel="nofollow noreferrer"> TruStability nous pouvons avoir dans le code.

Il y a eu aussi plusieurs études qui ont tenté d'utiliser les informations de trackers bug . Par exemple, pour identifier le développeur qui est plus susceptible d'introduire des bugs. Mais il est difficile d'être objectif (Un développeur brillant qui est attribué la partie la plus critique du système, sera encore plus susceptible d'introduire des bogues critiques).

Il est en fait difficile à monétiser les tâches de développement. Quel est le coût d'un bug? Quel est le gain de refactoring? Ce serait cependant une façon d'estimer la contribution d'un développeur.

Le dernier outil cool j'ai vu de ce genre a été le

Je ne pense pas que vous pouvez obtenir un outil pour évaluer votre part du projet. Lignes de mesure de la source est très bien, mais ce de la qualité de cette source? Vous ne voudriez pas que quelqu'un de prendre le crédit pour 200 lignes de source si le travail aurait pu être fait easiy dans 20 ...

En outre, en pensant à mon employeur pour un moment, beaucoup de gens contribuent au projet d'une autre façon que le code. Des exemples immédiats je peux penser seraient les gestionnaires de projet et vérificateurs -. qui sont tous deux essentiels, qui ont tous deux méritent à juste titre un certain crédit

Martin

La seule chose que je pouvais imaginer serait un système de vote. Je ne sais absolument pas si cela pourrait fonctionner dans votre équipe ou partout - mais je suis sûr que vous aurez besoin des humains pour une estimation réaliste de la qualité du code

.

Dans le livre de Stroustrup sur C ++ J'ai lu une fois « Ne pas essayer de résoudre les problèmes sociaux avec des moyens techniques ».

Pensée progmatically, l'attitude et la capacité d'un programmeur pourrait être très rapidement estimé en faisant un examen de code ensemble et avoir une conversation sur des sujets pertinents.

Penser comme IT-amateur et comme maniaque du contrôle, cela ne devrait pas être très difficile à mettre en œuvre un logiciel d'apprentissage automatique enseignable, qui utilise la version-cotrol, base de données de bogues, etc et greates en temps réel effectué soit données pour chaque contributeur. Par exemple. R, KNIME ou WEKA pourraient être utilisés pour cela.

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