29 votes

Projet logiciel - Estimation du temps

Je suis nouveau dans l'estimation du temps d'un projet logiciel

J'ai appris que les gens utilisent des techniques telles que «l'analyse des points de fonction», le «modèle Cocomo», etc.

Pouvez-vous me dire quelques-unes des dernières et meilleures techniques? Pourriez-vous également me faire part de bons liens de tutoriel pour ces modèles afin que je puisse les parcourir et les comprendre?

Merci beaucoup,

Cordialement.

Anusha.

48voto

Jay Points 14781

J'ai essayé beaucoup de techniques formelles, mais ce que je reviens toujours à l'est: diviser le projet en une liste de modules que vous aurez en fait de l'écrire ou de le modifier. Regardez le nombre de différents écrans, le nombre de rapports, et tout particulièrement une logique complexe qui devra être développée. Puis deviner combien de temps il va prendre pour écrire chacune de ces pièces et de les additionner.

Oui, à bas niveau, il vous suffit de faire un certain nombre, mais si vous avez de l'expérience, vous devriez être en mesure de venir avec une assez bonne estimation pour "écrire un écran de saisie de nom et adresse du client type d'information et l'écrire dans la base de données". C'est quelque chose de gérable. Essayez d'estimer "écrire un système de paie" avec pas de rupture est beaucoup plus difficile.

C'est essentiellement l'idée de la fonction de point d'analyse. Si à l'aide des formules de la fonction d'analyse d'un point de vous aide à, aller de l'avant. Je le trouve plus facile à improviser quand j'arrive au niveau le plus bas.

Ne pas estimation basée sur l'hypothèse que le premier projet de code sera toujours parfaitement la première fois. Vous savez qui n'arrive jamais, sauf pour le plus trivial des programmes, mais les gens semblent toujours estimation basée sur cette hypothèse. Construire dans le temps pour la recherche et la correction de bugs. Prendre pour acquis qu'il y aura un certain nombre de particulier à de méchants bugs prendre un certain temps à comprendre.

Inclure le temps pour les tests. Et -- c'est ici où j'ai utilisé de tomber tout le temps -- inclure du temps pour corriger les bugs qui sont trouvés pendant le test, et puis pour une autre série de tests après les corrections. J'ai utilisé pour faire des estimations où j'ai dit que "2 semaines pour le test" ou que ce soit, en estimant combien de temps il faudrait que le groupe de test pour passer à travers le système, et puis à gauche au que les. Qui était muet. Bien sûr le groupe de test permettra de trouver des problèmes, et vous aurez à les corriger.

(Note: j'ai utilisé un chef testeur qui permettrait de fixer un objectif pour chaque nouvelle version de notre produit, qu'il serait de 100 bugs. Il voyait cela comme un défi personnel. Il devait parfois s'étirer à la définition d'un bug pour le faire, comme la prise en compte d'un mal orthographié étiquette sur un écran comme un "bug", mais il a presque toujours fait. C'est le meilleur type de testeur, vous pouvez avoir. J'ai souvent eu à expliquer à des testeurs que l'objectif de l'essai n'est pas à prouver qu'il n'y a pas de bugs, mais pour trouver les bugs qui sont sûrement là.)

En fonction de quelle partie du projet, vous êtes censé être de l'estimation et de la façon dont votre organisation, vous pouvez également besoin d'un plan pour la "clarification" pour les exigences et les plus de changements lorsque les utilisateurs considèrent que le programme est en cours de fonctionnement. Oui oui, on dit toujours que les exigences doivent être cloué vers le bas avant de commencer le codage et une fois que l'utilisateur se déconnecte aucun changement ne sera permis. Je n'ai jamais travaillé dans une entreprise où il s'est réellement passé de cette façon. Peu importe quelle est la politique qui est écrit sur un morceau de papier, dans la vraie vie, les utilisateurs de toujours trouver que même si vous avez mis en œuvre exactement ce qu'ils avaient demandé, quand ils le voient, dans la pratique, ça ne fonctionne pas vraiment, et donc il n'y aura plus de changements et de reprise.

17voto

Bob Cross Points 13552

Aller une autre direction, je vous recommande de lire un court article de Joel sur Indolore Logiciel de Planification. Je recommande cet article pour les raisons suivantes:

  1. Il est clairement indiqué que la planification n'est pas vraiment difficile à faire de façon acceptable.
  2. Il n'a pas à être effrayant.
  3. Il vous expose à une partie de la terminologie.

Voici un exemple d'un utile extrait:

En règle générale, chaque tâche être de 2 à 16 heures. Si vous avez un 40 heures (une semaine) tâche sur votre calendrier, vous n'êtes pas en le décomposant assez.

De pair avec l'exigence de l'ingénieur estimations, vous avez les racines fondamentales d'un bon processus de planification.

Seul le programmeur qui va faire le travail peut comprendre ce qui suit ils devront prendre pour mettre en œuvre cette fonctionnalité. Et seul le programmeur peut estimer la durée de chaque prendre.

Certes, il a cette citation tout en haut de l'article. Même en prenant sa mise en garde en compte, je pense vraiment que vous devriez lire l'ancien calendrier premier. J'utilise planification fondée sur des preuves tout le temps (en FogBugz) mais je ne pense pas que le deuxième article est aussi accessible que l'ancienne.

Cet article est obsolète.

Au fil des années, j'ai appris beaucoup de choses plus sur les horaires et les estimations. Un plus récent, bien meilleure méthode pour la production d' exacte logiciel horaires sans douleur est - Planification Fondée sur des Preuves. Lire à la place.

Cet article reste ici pour les archives fins, mais merci de ne pas le lire!

N'écoutez pas Joel! C'est encore la peine de lire!

EDIT: le suivi de Jay commentaires ci-dessous

Pourquoi les 2-16 heures? Ces chiffres existent parce que l'OP est la clientèle cible pour ce genre d'information: ils demandent utile des directives spécifiques. À deux heures de l'estimation minimum est utile, car il vous oblige à penser à votre journée de travail en termes de début, un milieu et une fin (et un épilogue si vous réussi à s'intégrer dans un autre deux heures de tâche). Moins que cela, c'est probablement trop fine-grain: si vous essayez de décider si une tâche prendra 15 minutes contre 20 minutes, vous êtes juste de devenir frustré et agacé. 16 heures, c'est un joli nombre aussi parce qu'il vous oblige à dire que, s'il y a une tâche qui va me prendre plus de deux jours, c'est vraiment plus d'une tâche que j'ai besoin de percer des pièces."

N'est-ce pas la distribution de probabilité utilisée dans EBS inutile? J'utilise Fogbugz et l'utilisation de l'EBS rapports dans au moins deux façons distinctes sur une base régulière:

  1. Déterminer si nous sommes dans les délais et, si ce n'est, qui a besoin d'un peu d'aide (en raison de conflits d'horaire, de la grippe porcine, et de toutes les autres réalités de la vie au travail)?

  2. Rapports de gestion du projet à un niveau élevé qui nous sont / ne sont pas à l'heure, à l'aide de la distribution de probabilité de répondre à la question de "comment le savez-vous?" L'outil calcule automatiquement de 5%, 50% et 95% de probabilité de dates d'achèvement basé sur individuelle de chacun d'estimation des histoires.

Presque personne n'a jamais réelle veut voir les données au-delà de la date maintenant mais, ayant battu cet argument à la mort à plusieurs reprises, la direction croit moi quand j'rapport estime à compléter.

11voto

Jay Points 14781

Et rappelez-vous la règle des 80/20: les 20% les plus difficiles du projet prendront 80% du temps prévu, et les 80% restants du projet prendront les 80% restants du temps prévu.

6voto

Kevin Points 57797

Vous devriez consulter le livre Software Estimation de Steve McConnell. Si vous fouinez sur le site Construx (son entreprise), vous pouvez trouver un endroit où il donne des conférences gratuites sur le sujet.

Le livre que Thomas suggère également est vraiment bon ( développement rapide ).

5voto

mouviciel Points 36624

Les processus agiles utilisent le concept de vitesse .

D'autres processus utilisent la loi de Hofstadter .

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