# Point de fonction

Le point de fonction (PF) mesure la taille d'un logiciel en quantifiant les fonctionnalités offertes aux utilisateurs, en se basant seulement sur la modélisation logique et les spécifications fonctionnelles. Dans ce cadre, les principaux objectifs de la mesure PF sont les suivants :
* mesurer les fonctionnalités demandées et obtenues par les utilisateurs ;
* mesurer la taille des logiciels produits et du parc applicatif, indépendamment des technologies mises en œuvre pour leur implémentation ;
* mesurer la productivité des activités de développement et de maintenance logicielle ;
* fournir une mesure normalisée, valable pour tous projets et organisations.
Cette métrique informatique est standardisée par l'organisme international IFPUG, et normalisée par l'ISO. Elle est très utile pour le pilotage des coûts d'une direction informatique, notamment lorsque le recours à la sous-traitance est significatif.

## Historique

* En 1979, Allan Albrecht (IBM) propose une première version de sa méthode. une mesure de la production logicielle basée sur les fonctions utilisateurs. Elle doit aider à prévoir la taille d'un projet, son effort de développement et la productivité du développement informatique. Albrecht a développé une métrique indépendante de la technique de développement qui n'a pas les inconvénients du comptage du nombre de lignes de code.
* En 1986, a été fondé l'IFPUG (International Function Point User's Group) pour assurer la plus grande diffusion de cette méthode.
* En 1992, a été créée la FFPUG (French Function Point User's Group) avec la même vocation que l'IFPUG.
* En 1995, l'AFNOR (Association Française de NORmalisation) normalise la méthode sous la référence normative expérimentale XP Z 67-160.
* En 1998, l'ASSEMI (ASSociation pour l'Étude des Métriques Informatiques) a pris la relève de la FFPUG.
* En 2003, l'ISO (International Organization for Standardization) normalise la méthode sous la référence 20926:2003.
* En 2014, l'OMG définit une spécification de comptage automatisé des points de fonction - Automated Function Points (AFP) - Version 1.0.

## Quelques idées pour situer le cadre

Dans une entreprise, tout système de production, quel que soit le domaine (ingénierie, personnel, comptabilité…), repose sur un processus fonctionnel codifié. Au sens de la systémique, on distingue les fonctions de transformations, en rapport direct avec la finalité du système global, et les fonctions de pilotage (contrôle) de ces transformations.
Toute fonction (ou action) physique ou intellectuelle de ces systèmes peut être traduite en données informationnelles : résultat produit, paramètres de production, codification d’actions élémentaires. Ces données peuvent être mémorisées sur des supports technologiques non volatils : cahier, fiches, fichier informatique… On parle alors de données gérées. Certaines de ces fonctions peuvent être outillées par des moyens informatiques : écrans, états. On parle alors de « fonctions informatisées ». Pour tout système de production global, l’ensemble des fonctions manipulant de l'information et les données informationnelles associées est appelé le système d’information. L’ensemble des fonctions informatisées et des données gérées par informatique s’appelle le système informatique.
Toute direction informatique d’une entreprise a pour vocation principale d’aider les systèmes de production en leur fournissant des systèmes informatisés devant faciliter la maîtrise et la performance des processus de ces systèmes. Fournir un système informatique signifie : analyser l’activité métier du système global, définir le périmètre des fonctions et des données à informatiser, structurer l’organisation et le fonctionnement des moyens informatiques, réaliser (ou acheter) tous les composants techniques nécessaires, les installer et les rendre opérants pour les acteurs du métier, former ces acteurs et suivre l’efficacité de cette fourniture en régime de croisière. Pour ce faire, une direction informatique met en place une structure projet : une équipe et des moyens propres. C’est un acte économique, qui a un coût, des contraintes, des enjeux et des objectifs. Pour dimensionner, chiffrer et contrôler la performance de ces projets, la direction informatique peut utiliser la méthode des « points de fonction ».

## Définition de la méthode des points de fonction
### Définition

La méthode des « points de fonctions IFPUG » (International Function Point User Group) est une métrique qui a pour but d’évaluer (prévoir) ou de mesurer les systèmes d’information en termes de richesse fonctionnelle livrée à l’utilisateur, de son point de vue, donc du métier. Par richesse fonctionnelle on entend : toutes les actions de gestion de données significatives pour le métier, les données étant produites par les fonctions opérationnelles du métier.

### Résultat

Pour tout système mesuré (on dit aussi « coté »), elle fournit sa dimension fonctionnelle objective, appelée taille fonctionnelle, exprimée en « nombre de points de fonction ». En effet, à toute action de gestion de données et à toute donnée métier gérée est associé un poids (un nombre) qui dépend de la nature et de la complexité de ce qu’on souhaite valoriser. C’est un barème normé, standard et international.
Il ne dépend pas du métier mais de la sémantique générique. On valorise par exemple une action de consultation d’une liste d’informations indépendamment de ce que contient la liste : liste d’individus d’une structure, liste de pièces d’une nomenclature, liste des comptes d’un plan…

### Avantage

C’est une métrique objective car elle ne prend pas en compte les internes informatiques dont l’utilisateur final n’a ni connaissance ni utilité. C'est un « grand standard » international, sans équivalent à ce jour.

### Utilisation

Actuellement, elle est mondialement reconnue et utilisée par des centaines d’entreprises de toute taille et de toute branche. Quelques exemples en France : Renault, PSA, France Télécom, Michelin, les grandes banques, etc. En particulier, pour les benchmarks « développement » et « maintenance » de l'informatique, elle est l'un des outils majeurs de comparaison. Elle est largement utilisée par des sociétés comme Gartner Group, Compas Analysis, cabinet Hackett.
Dans plusieurs pays, des associations d’utilisateurs de la méthode regroupent des entreprises pour partager l’expérience et faciliter les échanges. En France, cette association s’appelle ASSEMI, siège au CNAM et Renault en est le président.

### Origine

La méthode a été développée chez IBM aux États-Unis, dans les années 1970. Conçue au départ comme un outil d’analyse de la performance des laboratoires d’IBM, elle a été étendue à l’ensemble des systèmes d’informations de tout type d’entreprise.

### Périmètre

La méthode s’applique aux systèmes fonctionnels, qu’ils soient développés spécifiquement ou achetés en tant que progiciels : SAP, Teamcenter, Microsoft Office, Acrobat…
Nativement, la méthode a été élaborée pour des systèmes d’information de gestion pure, donc hors CAO et calcul, et elle est toujours définie ainsi. Toutefois, Renault en France est allé plus loin et a ouvert une voie nouvelle en élaborant et en appliquant une extension pour mesurer ces aspects particuliers : processus algorithmiques, contrôle des automates (aspect état-transition)...

### Précision

La fiabilité de la mesure peut être très élevée. Entre deux experts (« cotateurs seniors »), l'écart de mesure est inférieur à 5 %, généralement 2 ou 3 %.

## Concepts et démarche

Le schéma ci-dessous illustre l’approche de la méthode. Les pointillés représentent une frontière logique : il y a bien l’utilisateur du système informatisé (personnage de gauche) et le système informatique en tant que « boîte noire » technologique (cadre grisé). La méthode permet de dénombrer, qualifier, classer et valoriser tous les échanges entre ces deux « partenaires ».

### Concepts de base de la méthode d'origine

* ENT (entrée) : fonctions d’entrée de données métier de l’utilisateur dans le périmètre du système. Créations, modifications, duplications, validations, suppressions ;
* INT (interrogation) : fonctions de consultation des données métiers. Listes, détails, annotations ;
* SOR (sortie) : fonctions de restitution des données transformées. Calculs, graphiques, déductions.

### Concepts d'extension (proposés par Renault)

* ALG (algorithme) : fonctions de transformation à haut niveau de complexité. Recherche opérationnelle, calcul matriciel, fonctions polynomiales ;
* EVT (événement) : états et transitions. Dialogues avec automates, process de pilotage de chaîne.
Par exemple : une fonction de type ENT modifie (M) un ou plusieurs groupes internes, peut lire (L) donc consulter d’autres groupes internes et peut également lire des groupes externes non gérés.
La somme des points attribués à tous les composants (ENT, SOR, INT…) donne un nombre qu’on appelle la taille fonctionnelle du système informatisé.
Quelques exemples de tailles fonctionnelles :
* Portail complet de vente de pièces détachées sur internet : env. 6 000 points ;
* Logiciel de navigation, type Carminat, Garmin… : 1 000 points ;
* Logiciel de comptabilité, type Ciel Compta : 2 000 points ;
* Logiciel de gestion des nomenclatures industrielles : 4 000 points ;
* Logiciel d'analyse de temps et de la paie dans une grande entreprise : 5 000 points.

### Point de fonction automatisé - OMG (AFP - automated fonction points)

L'OMG, une association américaine à but non lucratif créée en 1989 dont l'objectif est de standardiser et promouvoir le modèle objet, a adopté la spécification de comptage automatisé des points de fonction (AFP) définie par le Consortium for IT Software Quality. Elle fournit un standard pour automatiser le comptage des points de fonction suivant les recommandations de l'International Function Point User Group (IFPUG).

## Mesurer pour progresser
### Mesure

Pour progresser, il faut mesurer, analyser et agir en conséquence.
Comme il est possible de calculer le nombre de points de fonction des processus métier complets et de leur partie informatisée, on peut connaître ainsi la taille précise d'informatisation des domaines métier, ce qui facilite des analyses multiples :
* taille en points de fonction versus contribution aux objectifs de l’entreprise ;
* budget informatique annuel par taille fonctionnelle couverte.
Cette approche évite les considérations techniques et donne une vision « service rendu au métier via l’informatique ». Dans cette acception, les points de fonction sont très proches des utilisateurs, c’est la vision du « quoi » et non du « comment ».

### Analyse

Des statistiques multicritères sur les facteurs influents sur la performance sont réalisées régulièrement afin de suivre les contextes de productivité.
Quatre ratios sont calculés et analysés sur chaque projet :

#### Productivité

    performance intrinsèque du projet, nombre de points de fonction livrés au métier / nombre de jours hommes dépensés.

#### Coût

    coût d’un point de fonction, jours hommes dépensés valorisés en k€ (ou k€ forfaitaires achetés) / nombre de points de fonctions livrés.

#### Réactivité

    vitesse moyenne de livraison au métier, nombre de points de fonctions livrés au métier / durée calendaire du projet.

#### Qualité

    qualité par point de fonction livré au métier, nombre d’anomalies en production / nombre de points de fonctions livrés au métier.

### Pilotage

L’utilisation de la méthode et des ratios précités permet de prévoir et de piloter la performance des projets, donc des études informatiques. À grande échelle, c’est la maîtrise des coûts de l’informatique qui est en jeu.
L’utilisation conjointe des points de fonctions et de l’analyse de la valeur, compléments naturels particulièrement biens assortis, permet de cibler les projets et leur contenu sur le strict nécessaire et suffisant pour la performance globale du système métier général. C’est l’un des grands apports d’un expert en points de fonction.
La méthode étant totalement fonctionnelle, elle est appliquée sur des projets dans des phases très en amont : dès les schémas directeurs et études d'opportunité. On peut même l’appliquer directement avec le métier, avant même de démarrer un projet, afin de fixer les grandes idées sur le spectre fonctionnel et les coûts probables.

## Ouvertures et enjeux

Il est évident que dans une entreprise importante, des redondances applicatives sont inévitables. Mais elles sont coûteuses et lourdes. La mesure en points de fonction permet de quantifier les réductions tant fonctionnelles que technologiques. Le pilotage des sous traitances (locales ou délocalisées) via la contractualisation en points de fonctions à livrer et en productivité à garantir est l’un des aspects majeurs de la maîtrise des coûts de l’informatique. Mais c’est aussi une culture de la performance pour la réussite des finalités d’entreprise dont l’informatique est un outil majeur.