La MOA pragmatique du SI (Business Analysis, Analyse d'Entreprise, Maitrise d'Ouvrage)

Aller au contenu | Aller au menu | Aller à la recherche

jeudi, mars 25 2010

Comment découvrir les besoins ?

Recueillir les exigences des différentes parties prenantes d'un projet, c'est comme construire les fondations de votre projet. C'est sur ces exigences que l'ensemble du projet va reposer. Dans le billet "Comment améliorer l'alignement IT/métier en utilisant un outil de gestion des exigences ?", j'ai essayé d'expliquer l'intérêt d'un outil pour gérer ces exigences. Mais avant de les formaliser un minimum, il faut déjà les découvrir.

Organisez des entretiens Top-Down

Je conseillerai plutôt de commencer par rencontrer les personnes ayant une vision plus globale du processus concerné pour finir par les utilisateurs clés des systèmes supportant le processus (par exemple dans une salle des marchés commencer par s'entretenir avec un directeur de l'exploitation ou un directeur d'une ligne métier, ensuite voir un responsable de table pour finir par un opérateur de marché et enfin un assistant). Cela permet de commencer par découvrir les exigences stratégiques pour finir par les exigences fonctionnelles et non fonctionnelles. Je pense également que le temps à passer doit être moins important avec le top management qu'avec les opérateurs au cœur du processus.

Préparez vos entretiens

Une réunion demande toujours d'être préparée, d'être conduite, puis il faut en rédiger un compte-rendu. Le compte-rendu d'un entretien de recueil de besoins est la matière première qui va permettre de construire le référentiel des exigences. Le point clé de la préparation de la réunion, afin d'avoir un compte-rendu copieux, c'est de prévoir les questions qui vont cadencer l'entretien. Ces questions doivent être adaptées à votre interlocuteur et suivre une évolution du plus global au plus précis. Vous trouverez des idées de questions génériques dans cet article de Mr. Monteleone lu sur modernalyst.com : Generic Questions for Interviewing Stakeholders.

Pensez processus métier et architecture orientée service (et non pas système)

On ne cherche pas encore à spécifier un système ou une solution même si les utilisateurs auront tendance à se rattacher à du concret. Posez vos questions afin qu'elles soient le plus possible absolue vis à vis des solutions (pour caricaturer, demandez quelles sont les informations nécessaires pour remplir un dossier plutôt que de demander quel écran de saisie est nécessaire). Gardez également toujours en tête comment cette partie s'inclut dans un processus métier complet. Voir par exemple cet article sur business analyst times qui décrit cette approche avec une jolie métaphore du temple grec : Breaking Down the Silos for Better Requirements Elicitation. Et comme je le disais déjà dans mon billet précédent La MOA doit elle comprendre SOA ?, penser "services" vous permettra de poser les bonnes questions pour identifier les réutilisations possibles. Certaines MOA vont jusqu'à prôner une approche où l'on va tenter de conformer les besoins aux services existants comme dans cet article de John Moe lu sur modernalyst.com : Service Oriented Analysis. J'ai un peu de mal avec cette approche car tordre ainsi le besoin c'est risquer d'aboutir sur une solution qui ne saura satisfaire votre sponsor.  Mais dans certains cas ça pourrait marcher, si le SI est déjà organisé en SOA d'un bon niveau, comme le dit l'auteur de cet article.

Une exigence n'est donc pas simplement une information qui est venue à nous sans aucun travail. Le recueil des besoins est une phase clé du projet. Se contenter d'un mail succinct (le fameux Post-it) envoyé par le sponsor pour se lancer dans une phase de spécification fonctionnelle n'est pas suffisant. Il est vrai que cette phase de projet n'est pas "technique" mais exploite plutôt les compétences d'analyse et le relationnel de la MOA, et on peut donc parfois la sous-estimer sur un planning. Mais attention alors au risque de retard, car entre la préparation, la planification des entretiens, et l'analyse des résultats, cette phase peut être très consommatrice de temps.

jeudi, mars 11 2010

La MOA doit elle comprendre SOA ?

L'architecture orientée services (SOA en anglais) est un ensemble de concepts aujourd'hui matures. Cette démarche est souvent poussée par les acteurs "techniques" du SI. Pourtant un des points clés de la mise en œuvre devrait être selon moi à la main de la MOA : la décomposition en services.

Les services définis doivent être réutilisables, c'est tout l'intérêt de l'architecture SOA. Mais ce ne sont pas de simples composants réutilisables. Un service doit être autonome, remplir une fonction dans sa globalité et être utilisable (ou mieux, utilisé) par plusieurs consommateurs. Différents niveaux de service peuvent être définis : données (services "simples" permettant par exemple de récupérer des clients, d'en créer, d'en rechercher...), métiers (un service complexe qui remplira des fonctions métiers comme calculer le chiffre d'affaire par comptes clients), applicatifs (par exemple un service qui permettra notamment de récupérer tous les chiffres d'affaires agrégés par comptes clients qu'un collaborateur gère afin de l'afficher dans la CRM). On parle de service composite lorsqu'il utilise plusieurs autres services de niveaux inférieurs.

Certaines méthodologies combinent une approche SOA & MDA, par exemple Praxeme. Dans ce cas la définition et la découverte des services va se faire par des itérations de modélisation. Que ce soit dans l'aspect sémantique, pragmatique ou logique, la MOA a un très grand rôle à jouer.

Pour le métier la SOA peut n'être qu'une tactique permettant d'atteindre un objectif d'agilité dans les processus métiers. La mise en place du BPM sera un objectif atteignable et intéressant uniquement si les services sont réutilisables d'un point de vue métier. Et pour cela la MOA a une forte valeur ajoutée afin de déterminer les frontières des différents services et pour anticiper sur les réutilisations métiers possibles.

En tant que MOA nous avons souvent tendance à penser directement à la solution. Il est vrai qu'il est plus naturel de parler des écrans d'une application, d'un batch qui va effectuer des traitements car on se raccroche alors à du concret, de l'existant. Mais c'est aussi rester un peu terre-à-terre. Quitte à prendre de la hauteur, autant essayer de penser services. Par exemple si vous être déjà habitués à travailler sur des exigences et des cas d'utilisation, vous pouvez très bien proposer dans une spécification détaillée un découpage du système en services métiers. Et dans un projet qui porte sur un processus métier, il est encore plus naturel d'identifier les services métiers qui correspondent souvent à une activité de ce processus (en tout cas dans une vision purement métier). Connaître ces services permet à la MOA de dynamiser la réutilisation au sein du SI et de comprendre les problématiques engendrées par la maintenance d'un service qui est utilisé par plusieurs consommateurs et donc de faire les bons choix dans l'utilisation des budgets.