Quelqu'un utilise-t-il des méthodes d'estimation logicielle dans sa recherche en science informatique?

11

Au travail, je travaille essentiellement comme consultant indépendant. Pour la direction et les clients, j'ai besoin d'estimer le temps qu'il faudra pour développer un logiciel dans le cadre de ma recherche en science informatique. Cependant, mes estimations de temps sont généralement désactivées. Je sais qu'il existe des méthodes pour estimer le temps qu'il faut pour développer un logiciel. Ces méthodes me donneront-elles des estimations précises pour les tâches de recherche? Sont-ils même utiles dans un cadre de recherche? S'ils ne le sont pas, existe-t-il une meilleure méthode que de «conserver des registres et de réviser les estimations en conséquence»?

Geoff Oxberry
la source
1
Étant donné qu'il existe un ordre de grandeur entre les programmeurs les plus brillants et les moins brillants, la réutilisation des ensembles de données existants ne rendra pas vos estimations magiquement adaptées à la réalité. Ce que vous pouvez faire, cependant, consiste à parcourir vos projets antérieurs et à collecter des données de complexité, et à ajuster quelques régressions simples. La recherche est différente des autres types d'activités en ce sens qu'il existe un risque important de frapper un mur de briques plusieurs fois ... Construisez des marges liées à la nouveauté relative de votre projet et utilisez la loi de Murphy pour corriger votre propre optimisme.
Deer Hunter
4
Dans une carrière précédente en tant que développeur de logiciels, j'ai régulièrement fait ce genre d'estimations pour des projets bien spécifiés. Si la conception était suffisamment complète et qu'il n'y avait pas de risques techniques importants, cela a fonctionné assez bien. Cependant, le type de développement logiciel que je fais maintenant est vraiment plus de recherche que de développement logiciel - il y a des questions importantes de savoir si l'idée fonctionnera même, et des problèmes inattendus surgissent tout le temps.
Brian Borchers

Réponses:

1

Dans la plupart des contextes de recherche, vous n'avez pas accès à des programmeurs professionnels avec un niveau de compétence relativement uniforme dont vous pouvez dicter le temps. Au contraire, vous avez un mélange de programmeurs expérimentés (peut-être des post-doctorants, peut-être des professeurs) et des étudiants diplômés avec peu d'expérience en programmation et aucune expérience en matière de projets à grande échelle. En outre, tous ces acteurs ont de nombreuses autres fonctions (enseignement, AT, révision des articles, participation aux comités) qui varient considérablement au fil du temps. Par conséquent, je pense qu'il sera très difficile d'avoir des estimations précises. Certes, mon expérience est que "ça va prendre plus de temps que je ne le pensais".

Wolfgang Bangerth
la source
Vous avez raison sur toutes ces questions dans le cas général. J'étais curieux car dans mon cas, je suis souvent le seul à travailler sur le codage (au plus, une ou deux autres personnes font également du codage sur le même projet, mais généralement sur des tâches indépendantes ou indépendantes). De plus, en raison de la nature de consultant de mon travail, je sais avec une grande confiance combien de temps je peux consacrer à un projet donné chaque semaine, ce qui réduit considérablement l'incertitude.
Geoff Oxberry