Estimation des charges des projets informatique (3/3)

Pour terminer cet article en trois parties (Voir la partie 1, voir la partie 2) sur l’estimation de charges des projets informatiques, repartons de ce que j’avais appelé l’UP (Unité de processus).

Il s’agit dans la méthode que je propose d’estimer la taille des unités de processus pour obtenir une charge de réalisation (à partir de la productivité) qui nous permettra de déduire à l’aide de coefficient s de proportionnalité et de valeurs d’ajustements la charge globale nette du projet.

Je vais vous proposer une méthode possible d’estimation de taille que je vais appeler « Points d’exigences ». La méthode que je propose part d’une représentation possible de ce qu’est une UP « Unité de processus ».

Dans cette représentation, l’unité de processus est une interaction de composants de différents types (Interfaces, saisies, données, traitements algorithmique) visant à réponde à des exigences définis par l’utilisateur.

-L’interface d’entrée est un lien entrant d’une autre UP , utilisée par exemple dans le cas de traitement batch ou la réception de message asynchrone.

Les Saisies utilisateur sont des informations nécessaires aux traitements .

- Les données de l’UP sont les informations persistantes nécessaires aux traitements.Elles peuvent être utilisées en entrée et/ou sortie des traitements.

- Les règles de gestion vont définir les règles de calcul (traitements) entre les entrées et les sorties.

- Les restitutions utilisateurs peuvent être un état pour impression, une visualisation particulière.

-Les interfaces de sortie pourront être le déclenchement d’une autre UP, d’un Batch ou l’envoie d’un message asynchrone.

1-Dénombrement :

Le principe de la méthode est alors de dénombrer pour chaque type de composants (Interface d’entrée, Saisies, Règles,…) le nombre d’éléments nécessaires.

Prenons un exemple :

Je souhaite réaliser une fonction « Saisie Client » comportant :

    - Un écran de saisie avec 15 données.
    - Réalisant les vérifications : Ne pas créer un client déjà
    existant, vérifier la correspondance Code Postal /Ville,
    vérifier la validité de l’adresse mail.
    - Stockage des données dans la base client.
    - Envoie d’un message écran pour confirmation création
    avec l’identifiant affecté.
    - Déclenchement UP « Envoi d’un mail de bienvenue » avec
    5 données de la fiche client pour mise en forme du mail.

Cela donne le tableau suivant

2-Nbre de « Points d’exigence Bruts » :

Pour le calculer on appliquera la formule :

(IE+SU+(RG*DO)+RU+IS)/10

IE : Nombre d'élémnets en Interface Entrée, SU : Nombre d'éléments en Saisie Utilisateur, RG ........).

Ce qui donne dans l’exemple : 7 Points d’exigence Bruts.

3-Nbre de « Points d’exigence Nets » :

Avant de passer à la charge en jours homme, le nombre de points d’exigence net est obtenu en pondérons la valeur brute avec un coefficient dépendant du type de technologie qui est employé pour le développement/configuration de l’unité de processus.

Plus la technologie employée fait appel à des librairies, Templates, Frameworks, voir composants à paramétrer (Progiciel) meilleure sera la productivité.

Nous obtenons dans notre exemple : 9 Pts d’exigence nets, en prenant l’hypothèse d’un développement en technologie « 3rd Generation Language ».

4-Charge en Jours homme brute :

La charge en jours homme brute est obtenue en multipliant le nombre de points d’exigence net par le coefficient de productivité (Nbre de jours pour 1 Point d’exigence).

On distinguera deux valeurs de coefficient de productivité. Une valeur dans le cas de développement nouveau et une valeur dans le cas de paramétrage ou modification d’un développement existant.

Le principe de ma méthode est que la valeur de ces coefficients sera donnée par la base de capitalisation, en effet dans celle-ci, au fil des unités de processus réalisées on stockera les valeurs de taille (Nbre de Points d’exigence) et les charges réelles.

Cependant au démarrage, alors que la base de capitalisation est vide il y a trois solutions possibles :

    - Faire une estimation à posteriori en taille en connaissant
    les charges réelles d’un développement déjà réalisé.

    - Utilisez votre expertise pour fixer des valeurs qui vous
    semble les plus réalistes.

    - Partir avec un coefficient de 0,3 (développement) et 0,15
    (Paramétrage/configuration) qui sont à mon avis des valeurs
    correctes pour commencer (Issue de mon expérience sur de
    nombreux projets).

Attention : L’important au début de la mise en place de la méthode ce n’est pas la justesse des coefficients, c’est surtout d’avoir maintenant une valeur objective et indépendante : la taille.

Dans notre exemple en prenant une productivité de 0,3 J/homme par points d’exigence on obtient 2,6 J/homme pour cette unité de processus.

5-Chiffrage Brut total d’un projet

On effectue l’estimation par la taille pour l’ensemble des unités de processus identifiées, en sommant ces charges on obtient la charge totale brute de développement/paramétrage de notre projet.

En appliquant ensuite un coefficient de proportionnalité (issue de la capitalisation) pour les autres phases du cycle de vie on obtiendra la charge totale brute en jours homme du projet.

Exemple :

Si la charge brute de développement est de 24 J/h, que le développement à un coefficient de 43% et la gestion de projet de 12%, alors :

Charge gestion de projet =

( (24*100)/43)*(12/100)=(24*12)/43=6,7 J/homme.

De la même manière que le coefficient de productivité, le principe étant la capitalisation il faudra être rigoureux au fil des développements pour être en mesure de calculer les charges réalisées par phase, et donc de d’ajuster les coefficients de proportionnalités.

Pour l’initialisation vous pouvez partir des coefficients standards que je propose et les adapter avec votre connaissance de votre contexte.

Attention : Plus on remonte dans le cycle de vie, moins la charge est subie. Il est clair qu’on passe le temps que l’on souhaite en analyse de faisabilité et que l’on peut plus ou moins détaillée son architecture. Mais on prend aussi le risque de faire des mauvais choix et donc d’avoir des surcharges importantes par la suite.

6-Chiffrage Net total d’un projet

Les charges calculées seront alors à ajuster pour tenir compte des spécificités de chaque projet. Cet ajustement est comparable aux facteurs d’ajustements de la méthode des points de fonctions.

Pour réaliser ces ajustements, la méthode que je propose et de réaliser la cohérence avec un autre domaine de processus : « La Gestion des risques ».

En effet en ayant ciblé au début du projet les risques potentiels nous ciblons en fait les dérives potentiels.

Prenons deux exemples :

1)Nous identifions en début de projet un risque lié au fait que nous développons pour la première dois dans une nouvelle technologie. Il faudra ajuster sans aucun doute la charge de développement car la productivité sera moins bonne.

2)Nous identifions qu’il y a manque de disponibilité de l’utilisateur pour ce projet, les phases d’architecture fonctionnelle, spécification, acceptance devront être ajustées.

Dans ma méthode nous allons donc utiliser le questionnaire des risques que j’ai présenté dans un précédent article pour calculer des pourcentages d’ajustements de la charge brute par phase en fonction des risques identifiés.

Ci-dessous un extrait du tableau de calcul de ces valeurs d’ajustements (la version complète est incluse dans le Template d’estimation en fin d’article).


Dans cet extrait , la réponse « non » à la première question a donc comme effet de majorer de 10% la charge des phases 04/05A/05B/06.

Une fois le questionnaire remplie, on appliquera sur chaque phase les valeurs d’ajustements et nous obtenons enfin une charge totale Nette du projet en jours/homme.

7-Estimation en phase amont de projet

J’avais abordé ce point capital dans la première partie de l’article, une méthode d’estimation doit pouvoir être utilisée dans les phases amont du projet. Pour rendre cela possible dans ma méthode on utilisera la notion de modèles.

Ces modèles seront en fait une liste d’unité de processus standard représentative ce qui est le plus communément développé dans un contexte donné.

On associé à ces unités standard une estimation par la taille standard (qui sera revue périodiquement à l’aide de la base de capitalisation). Le travail d’estimation alors reviendra simplement à lister les unités de processus de votre projet et à leur associé une unité de processus modèle.

Vous trouverez dans le Template Excel une première liste de modèles que vous pouvez utiliser rapidement.

En conclusion de cette méthode je tiens à faire quelques remarques :

Rem 1 : Je n’ai pas la prétention d’avoir défini une méthode aussi « partagée, éprouvée, détaillée » que celle des points de fonctions, méthode que je présenterais d’ailleurs dans un article à venir.

Rem 2 : Je pense par contre qu’elle met en lumière certains points essentiels dans la pratique de l’estimation :

     * Le passage par une mesure de taille
     * La capitalisation
     * La cohérence avec une analyse de risque sur le projet
     * L’applicabilité en phase amont du projet.
     * La prise en compte des spécificités de chaque phase
      du projet.
     * Une simplicité relative permettant un déploiement
      rapide.

Rem3 : On peut tout à fait combiner les principes de la méthode avec une des variantes de l’estimation de taille des unités de processus. Citons deux exemples ou cela sera intéressant.

1) Imaginons une société réalisant des développements tous très similaire sur leur architecture à l’aide d’un progiciel très cadré (Générateur de site Web, Progiciel ERP, …).

Dans ce cas je conseillerais d’établir un modèle d’estimation plus proche de la technologie du type :
     - Nombre de composants par type
     - Nombre de tables par taille
     - Nombre de report par type,….

2) Prenons ensuite le cas d’une société avec des équipes multi site multi technologie. Dans ce cas on pourrait essayer d’implanter la méthode des points de fonctions comme méthode d’estimation par la taille des unités de processus, tout en gardant le reste de la méthode.

Pour ceux qui ont eu la ténacité de lire ces articles jusqu’au bout, bravo et merci !

Pour bien comprendre dans la pratique cette méthode, vous pouvez télécharger le template excel ci-dessous.


Template Estimation

Pour l’utiliser :

- Renseignez les zones de saisie (Vertes) de l’onglet (Chiffrage des unités de processus), avec modèle ou non.

- Répondez au questionnaire des risques sur l’onglet (Synthèse Chiffrage projet).

- Visualisez alors les charges nettes de votre projet Cellules F34 à F44 et le total jour homme en F45.

Enfin je mets un lien vers un article très intéressant à lire sur la pratique des estimations en général.

http://www.rad.fr/evalcpr.pdf