31 mai 2010

Fonction vs Fonctionnalité

Bonjour,

Aujourd’hui, je vous propose un article un peu technique

Un internaute m’a demandé il y a quelque temps la différence entre ‘fonction’ (dans le contexte du plan d'occupation des sols) et ‘fonctionnalité’ (dans le contexte de fonctionnalités applicatives, telles qu’on les trouve dans les cahiers de charge).

C’est une excellente question, qui me donne l’occasion de parcourir plusieurs notions proches qui posent des soucis de compréhension et produit en particulier une grande confusion entre les vues métier et fonctionnelle.

Fonction et domaine métier

Alors tout d’abord, on parle souvent au niveau de l’entreprise de ‘fonction’ au sens ‘domaine métier’. Exemples : la Fonction RH, la Fonction achat, la Fonction après-vente… Éliminons tout de suite cette signification particulière.

Fonctionnalité et Analyse fonctionnelle

Dans un cahier des charges, en général on décrit traditionnellement des « fonctionnalités », c'est-à-dire des blocs de textes qui sont de deux natures

  • Les besoins « fonctionnels », c'est-à-dire qui apportent directement un rendu de service au(x) futur(s) utilisateur(s) du futur système
  • Les besoins « non fonctionnels », ou encore de qualité de service : temps d’indisponibilité, besoin de sécurité de fonctionnement…

Dans le premier cas, on décrit des ‘fonctions’. Qu’est-ce qu’une ‘fonction’ ?

Curieusement, dans la totalité des livres d'urbanisme ou d'architecture de ma bibliothèque, je n'ai à ce jour jamais trouvé une définition satisfaisante de ‘fonction’. Tous les auteurs font comment si cela était évident et passent sous silence cette question qui est pourtant une question clé. Ainsi, le livre de C Longépé « Le projet d’urbanisation du S.I. » (3ème édition) ne donne pas de définition. Le métamodèle qui s’y trouve ne place pas le concept de ‘fonction’.

Alors je vous propose ma définition de ‘fonction’ : C’est très simple à comprendre.

Prenez un marteau dans votre main. Vous visualisez ? Bon.
Avec un marteau vous pouvez… par exemple planter un clou, frapper sur autre chose (mais pas sur la tête du voisin !) L’outil vous apporte donc une capacité nouvelle, une capacité de frappe. Fonction = ‘frappe’.

La fonction est une capacité apportée par un système ou un outil. Elle est en général exprimée par un nom suivi d’un complément. Et cette capacité facilite la vie de la personne qui réalise un certain travail : elle l’aide à faire son travail. (Dans certains cas, la fonction fait totalement le travail, mais c’est à prendre comme un cas particulier)

Les professionnels de l’analyse fonctionnelle ou de l’analyse de la valeur connaissent très bien le sujet. Ils établissent la liste des fonctions du futur système. Ils classent les fonctions en différentes catégories d’importance et décident des fonctions qu’ils conservent ou non (les fonctions accessoires qui coutent trop cher sont impitoyablement éliminées).

La « fonction » n’a de réalité que dans notre esprit, ce n’est qu’un concept, une idée, que l’on forme parce que, il faut bien le dire… quand on maîtrise bien l’exercice, c’est une manière de pensée extrêmement pratique.

Elle permet de penser beaucoup plus sereinement aux diverses solutions possibles. En effet, une même fonction peut être implémentée par divers outils et systèmes. Exemple : on peut frapper avec autre chose qu’un marteau, une fonction de ‘transport’, peut être implémentée par un tapis roulant, un chariot élévateur, une voiturette de golf…



Dans nos entreprises, nous avons tous pu observer des phénomènes de « guerres de solutions », où chacun défend sa solution à lui. Souvent, ce type de querelle n’a intrinsèquement pas d’issue si les solutions proposées conviennent et proposent les mêmes fonctions… La vraie réponse ne consiste-t-elle pas en un arbitrage et une orientation de la stratégie technique ?

Fonction et Processus métier.

Une fonction exprime le rendu de service à un acteur dans le cadre d'un processus métier.
Une fonction n’est donc pas une activité. Elle ne doit pas être confondue avec ‘activité elle-même (travail réalisé par un acteur).

Fonction et Plan d’Occupation des Sols

Ce sont bien les mêmes fonctions qui sone classées dans le cadre d’un « Plan d’Occupation des Sols », sous forme d’Îlots, de Quartiers, de Zones, etc.

Seulement il arrive que le plus souvent les fonctions ne sont pas affichées (parce que ca ne tient pas sur lune page PowerPoint)

Souvent même elles ne sont pas explicitées. Le découpage en Îlots, de Quartiers, de Zones est alors fait directement sans listage des fonctions, ce que je ne recommande pas (mais c’est un autre article), et ce qui rend difficile à appréhender les diagrammes des urbanistes.

Les définitions des autres

J’ai pu trouver les deux « définitions » suivantes.

1/ Le CEISAR a malheureusement adopté la définition suivante


  • Function
    Action inside an End to End Process. A Function may reuse other Functions.
    A Function is a Business Function or an Organization Function.
    A Function software is also called a Software Service.

  • Business Function
    Function of an End to End Process.
    Example: check data entry, compute price, send message to Customer.
    Not to be confused with Organization Functions.

  • Organization Function
    Function which only exists for Organization purpose like: "Authorize Function", or "send to To Do List of an Actor", or "find next Actor" (used by workflow engine). Do not confuse with Business Function.
    (CEISAR glossary - April 2008)
Cette définition a un inconvénient : dire qu’une fonction est une « action » c’est certainement entretenir la confusion entre les vues Métier / Fonctionnelles.

2/ Dans un document issu d’une grande entreprise française (que je ne peux nommer), on trouve la définition suivante :

  • ‘Fonction’ = Plus petit élément significatif dans la décomposition d’une phase.


  • ‘Phase’ = Subdivision d’un processus, déclenchée par un événement et produisant une valeur ajoutée intermédiaire ou finale.

Pour moi, dire qu’une Fonction est la « subdivision » ou la « prolongation » du processus… je trouve cela assez peu explicite, et accroit le risque de confusion entre les vues Métier / Fonctionnelles.

C’est pourquoi, personnellement, je préfère m’en tenir à ma définition, que je trouve bien, parce que c’est la mienne, que je la pratique depuis un moment, et qu'elle me semble bien fonctionner !

À vous de juger ! Qu'en pensez-vous ?

À bientôt
Christophe Thiry

5 Comments:

At 21 juin, 2010, Blogger CCHAI said...

D'accord pour dissocier la fonction d’un point de vue 'couche métier' et la 'fonction' d'un point de vue 'couche fonctionnelle/couche applicative'.

Pour moi la 'fonction' est la cheville d'articulation entre les deux couches – couche processus métier et couche fonctionnelle / couche applicative..
La ‘fonction’ peut être
- soit une fonctionnalité d’un processus métier du point de vue de la couche métier
- soit une fonctionnalité du point de vue de la couche fonctionnelle ou couche applicative.
Cependant la granularité d’une fonction peut être différente entre la fonction (identifié à travers les processus métier ) et la fonction (identifié à travers la couche fonctionnelle ou les applications), d’où l’intérêt de ne pas confondre les deux ou alors se mettre d’accord sur la même granularité.

La fonction du point de vue de la couche métier (exprimé dans une description de processus métier ou activité )
= un ensemble d’actions répondant à un besoin métier
= un niveau de décomposition d’un processus métier après les activités
= est défini en termes de finalité, de la manière la plus invariante possible, indépendamment des solutions organisationnelles ou techniques mises en œuvre pour la remplir.

La fonction du point de vue de la couche fonctionnelle (analyse besoin fonctionnelle du système informatique)
= un rendu de service au(x) futur(s) utilisateur(s) du futur système
= une capacité apportée par un système ou un outil
(La traduction de 'fonction' en anglais est d'ailleurs 'business capability')
= une fonctionnalité du système.

La fonction du point de vue de la couche applicative (analyse besoin fonctionnelle du système informatique) - est la même que celle du point de vue de la couche fonctionnelle. (surprise)
= un rendu de service au(x) futur(s) utilisateur(s) du futur système
= une capacité apportée par un système ou un outil
(La traduction de 'fonction' en anglais est d'ailleurs 'business capability')
= une fonctionnalité du système.

 
At 21 juin, 2010, Blogger Christophe Thiry said...

Bonjour,

Merci pour votre commentaire.
Je suis presque d'accord avec vous mais pas encore tout à fait.

Quand vous écrivez "La fonction du point de vue de la couche métier = un ensemble d’actions répondant à un besoin métier"

Qu'entendez-vous par action ?
Qui agit ? la personne qui travaille ou l'application informatique ?

@+
Christophe

 
At 21 juin, 2010, Blogger CCHAI said...

Dans la couche métier, on ne tient pas compte de l'informatique. Les processus métier sont décrit sans les outils... c'est l'objectif au moins. Donc une action est forcément fait par un acteur humain. =>On peut remplacer le mot action par 'opération' ou 'tache' pour éviter la confusion avec le terme 'action' dans le sens UML.;)

 
At 24 juin, 2010, Blogger Christophe Thiry said...

Je comprends.

Donc je reprends : pour vous, la fonction est du point de vue de la couche métier "un ensemble d'actions", ie un ensemble d'opérations" ou "un ensemble de tâches"
Est-ce j'ai bien compris ?

Si c'est le cas, cela signifie que vous vivez avec 2 définitions et que vous parlez alternativement (et peut être confondez, mais je ne vous en veux pas, tout le monde fait pareil) l'acte d'écriture avec la capacité à écrire apportée par le stylo.

@+
Christophe

 
At 20 août, 2010, Blogger i.gibert said...

Bonjour,

je suis responsable du contenu du site BPMS.info. Je souhaiterais vous contacter par rapport à votre article "Fonction vs Fonctionnalité". Si possible, pourriez-vous s'il vous plaît m'envoyer votre adresse email à i.gibert@bpms.info ? En attente et vous remerciant par avance !

 

Enregistrer un commentaire

Links to this post:

Créer un lien

<< Home