Thursday, April 4, 2013

Recettes de chiffrages de projet informatique

 Le chiffrage d'un projet en informatique se révèle souvent être une tâche ardue que ce soit dans la définition des besoins ou dans l'évaluation du temps de réalisation. Ceci a pour conséquence que le chiffrage se base souvent sur des paramètres assez subjectifs.

Dans cette idée, je me suis amusé à imaginer quelques techniques permettant de faire du chiffrage. Toutes ressemblances a des faits réels n'est que pure coïncidence ;).

Le compteligne

Cette technique prend en compte le nombre de ligne et la structure du document fournis par le client.

Etapes:
  1. Découper le projet à chiffrer en tâches très macros. Le découpage revient souvent à reprendre les paragraphes de l'expression de besoin du client c.a.d 1 tâche égale 1 paragraphe ou 1 chapitre.
  2. Prendre le nombre de ligne de chaque tâche et le multiplier par un autre coeff en fonction de ce que vous avez compris de la tâche à réaliser. Plus la tâche vous parait incompréhensible, plus le coeff doit augmenter.  
  3. Ainsi vous obtenez un certain nombre de jours/homme. 
  4. Adapter le chiffrage en fonction des remords suscités par ce dernier.


Exemple: Une expression de besoin faisant 3 chapitres

1er chapitre: 3 lignes
 Compréhension du chapitre: je n'ai rien compris => 3
2e chapitre: 5 lignes
Compréhension du chapitre: ca me paraît clair => 2
3e chapitre: 10 lignes
Compréhension du chapitre: J'ai tout compris =>1

Nombre de jour/homme = 3 x 3 + 5 x 2 + 10 x 1 = 29 jrs/homme
Nombre de jour/homme après remords = 24 jrs/homme

 Le comptemot (compteligne police proof)


Cette technique est une variante du compteligne mais a l'avantage de ne pas être sensible à la police. En effet le nombre de mot est pris en compte à la place du nombre de ligne.

Le mathétique


Cette technique est réservée aux psychopathes des mathématiques et aux fanas de préjugés.

Etapes:
  1. Découper méticuleusement chaque besoin afin d'en faire des tâches très micros de l'ordre d'1j/h.
  2. Avoir au préalable calculé la productivité de chacun de ses devs après une longue observation, en déduire des données en fonction de préjugés: Temps effectif devant le poste, temps passé à surfer sur le net, âge des développeurs, nombre de dev en couple, nombre de femmes etc. 
  3. Prendre le résultat de ces calculs et le corréler aux tâches à réaliser.
  4. Savourer le chiffrage obtenu avec un rire sadique.
Exemple:
Découpage du projet en 1101 micro-tâches d'1j/h. Dans l'équipe, il y a trois devs, deux hommes et 1 femme.
Un homme est marié, ce qui fait de lui un dev avec des obligations => 75 % de dev,
L'autre est célibataire à tendance nolife et à l'avantage d'être barbu => 120 % de dev,
La femme a un beau physique => 50% de dev car pour ce type de chifffreur, elle n'est qu'un demi développeur.

Résultat: 1101 * 125 / 100 * 80/100 * 150/100 = 1651.5 j/h
Résultat en prenant en compte les jours de maladies potentiels: 1651.5 * 110 % = 1816.65 j/h

Le coffreur


Cette technique est réservé aux chiffreurs codeurs et très simple à réaliser. A adapter selon le langage préféré du geek.

Etapes:
  1. Découpage des tâches aléatoire.
  2. En fonction de la compléxité ressentie, choisir un nombre de jour max.
  3. Coder un algo du genre  Math.random() * nombre de j/h max.
  4. Obtenez votre résultat.

Le lancé de dés


Cette technique est équivalente au coffreur mais à l'avantage d'être utilisable par n'importe qui sachant lancer des dés.

Etapes:
  1. Découpage des tâches aléatoire.
  2. En fonction de la compléxité ressentie, changer le nombre de dés.
  3. Lancer les dés.
  4. Obtenez votre résultat.

Le souk ou marchandage de tapis


Cette technique consiste à ne pas prendre en considération le besoin, mais uniquement à marchander avec le client.

Etapes:
  1. Tenter de connaître la fourchette attendue par le client
  2. Si la fourchette est connue, alors rendre un chiffre aléatoire contenu dans la fourchette.
  3. Si la fourchette n'est pas connue, alors présenter plusieurs chiffrages successivement au client en prenant soin de temporiser avant chaque présentation. Si le client dit "c'est trop cher" alors rendre un chiffrage inférieur . Si le client dit "vous avez surement oublié quelque chose" alors gonfler le chiffrage. Réitérer jusqu'à ce que le client dise "Ok".
  4. Le chiffrage est prêt.

Si vous avez d'autres idées, n'hésitez pas à m'en faire part.