Comment estimer les projets lorsque j'ai besoin d'inclure une courbe d'apprentissage pour les nouvelles technologies?


11

Parfois, il y a des projets de recherche et développement où rien n'est connu à l'avance sur la technologie, les concepts et le client. Cependant, le gestionnaire a encore besoin d'estimations de temps. Que puis-je faire pour produire des estimations utiles?


5
Prenez ce que votre estimation serait dans une technologie connue et déplacez la décimale d'une place: P
Rig

5
Lisez le livre d'estimation de logiciels de Steve McConnoll et comprenez ce qui fait une bonne estimation. Une estimation est incertaine - si ce n'était pas le cas, ce ne serait pas une estimation. Dire "Cela peut prendre de trois à six mois, après y avoir passé un mois, je pourrai le réduire" devrait être acceptable.

1
@MichaelT - excellent commentaire. La seule chose garantie pour rendre les estimations imprécises plus acceptables est de les affiner au fil du temps afin que la direction obtienne une estimation de plus en plus précise du travail restant. La seule chose qui va les énerver est un projet qui est définitivement à deux semaines de l'achèvement.
Carson63000

C'est à cela que servent les prototypes.

@ Carson63000 J'avais une version simplifiée du cône d'incertitude dans ce phrasé. L'essentiel à retenir de cette illustration est qu'une estimation de 2-12 mois ne signifie pas qu'elle se termine à 7 mois à la fin, mais plutôt que l'estimation peut converger de 2-12 à 4-12 à 8-12 à 10-12 à 12. Notez également que le cône d'origine a une plage de 16x lorsque le concept initial est terminé.

Réponses:


13

Honnêtement, comme l'écrit Nassim Nicholas Taleb dans son livre The Black Swan: «nous ne pouvons tout simplement pas prédire». Principalement à cause des inconnues-inconnues. Il est généralement préférable de communiquer ce fait même, le fait que vous ne pouvez pas prédire, au lieu de communiquer une estimation.

Comme l'écrit Taleb: il vaut mieux avoir globalement raison que précisément tort. Assurez-vous donc de communiquer le fait que vous avez du mal à estimer et utilisez des choses comme «l'apprentissage des courbes dans les nouvelles technologies» comme argument. Cela signifie que la fourchette de votre estimation sera grande: "ce projet coûtera entre 100k et 500k."

En disant une telle chose, celui qui vous demande d'estimer quelque chose se rend compte que les choses ne sont pas si simples.


3
+1: C'est la seule bonne réponse. Apprenez à votre manager à embrasser les inconnues - c'est beaucoup plus facile que de les estimer. - Consultez également le travail de Steve McConnoll sur construx.com.
mattnz

2
C'est l'une des réponses les plus erronées ici. Vous pouvez toujours estimer n'importe quoi. Il existe des outils et des techniques pour le soutenir. La seule différence est l'incertitude. Vous pourriez très bien avoir une variance 4x ou 5x entre votre estimation et la valeur réelle (en particulier au début d'un projet), mais cela ne signifie pas que vous ne devriez pas essayer d'estimer pour servir de point de départ pour de futures estimations.
Thomas Owens

2
@ThomasOwens Vous avez raison, vous ne devriez pas simplement vous en aller. Mais ma déclaration audacieuse devait être interprétée: ne vous trompez pas ou ne trompez pas votre patron, mais soyez ouvert dans le fait que l'estimation va être difficile! Parce que honnêtement, tous les gestionnaires qui demandent des estimations ne réalisent pas combien il est difficile / impossible d'en faire un.
Marten Sytema du

Dans mon expérience de travail personnelle, lorsque je fais du travail indépendant à prix fixe, mon taux horaire moyen est beaucoup plus élevé sur de petits projets (comme de petits ajouts à des projets existants), que sur des projets plus importants (souvent à partir de zéro). Ce n'est même pas linéaire. Avec le recul, je n'aurais pas dû prendre les plus gros à un prix fixe, ou au moins discuter d'avance que l'estimation est très difficile à faire, et essayer de convaincre le client de travailler sur une base différente pour répartir un peu les risques .
Marten Sytema

3

La première chose absolue dont vous avez besoin est une idée de la portée. Le plus concret est le mieux, mais toute forme d'exigences peut être utilisée pour produire des estimations initiales. Les exigences du client, la vision et la portée, et les documents de concept peuvent être utilisés très tôt. À mesure que les exigences et l'environnement d'exploitation commenceront à devenir plus clairs, les estimations s'amélioreront. Une meilleure compréhension du client (en particulier les interfaces entre le client et l'organisation en développement), l'équipe effectuant le travail, les technologies à utiliser, l'architecture du système et une conception détaillée contribueront tous à une estimation plus précise. Cela est visible dans le cône d'incertitude.

Si vous utilisez un outil de modélisation paramétrique, tel que SLIM ou COCOMO (Intermédiaire ou Avancé uniquement, car Basic ne tient pas compte des inducteurs de coûts), il devrait y avoir des facteurs d'ajustement pour la méconnaissance de la technologie. À titre d'exemple, COCOMO dispose d' un grand nombre d'inducteurs de coûts , dont certains sont spécifiquement axés sur la familiarité avec la plate-forme cible ainsi que le langage et les outils utilisés pour développer le système. SLIM tient également compte de l'expérience globale de l'équipe de développement, qui doit inclure des considérations sur les outils et technologies utilisés.

Avec cette technique, les résultats des outils de modélisation sont généralement validés car ils ont été utilisés avec succès pour estimer les projets logiciels précédents sur plusieurs années dans de nombreuses organisations. Cependant, la sortie est seulement aussi bonne que l'entrée de l'outil.

Si vous n'utilisez pas de modèles paramétriques pour l'estimation, vous devrez simplement considérer ces facteurs lors de la production de vos estimations. Cela devient plus un appel au jugement, mais vous pouvez envisager des activités telles que la lecture de la documentation, la configuration du nouvel environnement de développement et le développement d'exemples d'applications sur la plate-forme cible ou avec les langues cibles.

Dans ces cas, vous devrez ventiler vos estimations par tâche et pouvoir utiliser votre jugement professionnel pour la sauvegarder. J'espère que vous disposez de données historiques et d'autres preuves concrètes sur lesquelles baser vos estimations. Sinon, c'est plus une bataille difficile.


3

Séparez le temps de formation et de recherche majeur du temps de développement. Divisez le projet en plusieurs sous-projets qui ont une fin heureuse. Assurez-vous de créer une preuve de concept après la formation.

Si vous êtes nouveau dans la technologie, vous ne serez jamais proche du temps de développement réel. Soulevez cela comme un risque au début du projet et soyez généreux dans votre estimation. Cela s'applique aux technologies de base que vous et votre équipe ne connaissez pas.


1

Cela dépend, j'ai utilisé FPA ( Function Point Analysis ) la plupart du temps, mais nous étions dans ce "développement web enterprizey", je veux dire, vous savez, les sociétés Web Forbes 500.

Là, la tâche peut être toujours divisée en deux parties: la première, qui convient très bien à FPA: vous avez des interfaces d'entrée, des interfaces de sortie, des fichiers logiques internes (aka. Tables / types de bases de données à exporter), et vous avez ces systèmes complexes et inconnus .

Dans la version simple, la tâche complexe est un composant déjà écrit, son interface est difficile et inconnue.

La version matérielle, c'est quand il faut l'écrire, puis des estimations basées sur des pilotes, COCOMO, peu importe.

Cependant, deux choses sont importantes:

  1. Chaque type de système d'estimation doit avoir un temps d'étalonnage pour votre organisation. Vous ne vous développez jamais seul, au moins il y a un client qui attend votre code (ou vous ne seriez pas si désespéré à ce sujet, écrire du code pour vous-même). La question n'est pas "à quelle vitesse peut-il être développé?", Mais "à quelle vitesse peut-il être développé avec vous tous?"

  2. Une fois, j'ai eu un manager qui a lu ce roman de Black Swan et qui était maniaque à ce sujet. Il nous disait qu'il est impossible d'estimer, et je faisais mes estimations habituelles précises à + -10% sans relâche ...


-2

Je réalise régulièrement des projets qui correspondent à cette description et je ne l'ai pas encore compris! Heureusement, là où je travaille, j'ai la latitude de faire ce dont j'ai besoin et je n'ai pas de limites de temps futiles. Les projets ne sont pas toujours couronnés de succès et ce n'est qu'une partie du travail avec tant d'inconnues. Cependant, l'entreprise acquiert des connaissances à chaque fois.

Désolé, cela n'aide pas du tout.


-4

Estimez le temps qu'il faudra pour réaliser un projet similaire en utilisant une technologie familière. Multipliez par 4. Ajoutez du temps d'apprentissage.

Si l'estimation est trop courte, vous aurez l'air naïf et arrogant. si l'estimation est trop grande, vous aurez l'air ignorant et incompétent. Choisis sagement.


4
Pourquoi 4? Pourquoi pas 5? dix? 33,3? ... Y a-t-il de la science derrière votre réponse ou choisissez-vous simplement un nombre aléatoire? Inclure cela dans votre réponse pourrait le rendre plus utile.
Bryan Oakley

sur une note connexe, ne soyez pas timide de grands nombres. Mon collègue a estimé une fois que certains modules avaient été retravaillés en 935 (neuf-trois-cinq) jours. Le patron a dit que nous n'avions pas grand-chose et a ordonné 60 jours. Un collègue a fait ce qui était possible en 60. Le résultat a été assez gênant mais il n'a jamais été blâmé pour cela. Je dois admettre que la version de 60 jours, bien que gênante, nous a permis d'obtenir un client assez important - c'est-à-dire que la pression du patron était plutôt logique. BTW à la fin, nous avons réussi à mettre ce module en forme, mais cela s'est produit plusieurs années plus tard et les efforts qu'il a fallu ont été plus dans le stade avec une estimation de 935
mulat
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.