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

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

mardi, décembre 3 2013

Est-ce que la MOA va changer de moto ? Ou quand utiliser les techniques d'élicitation.

Parfois, vos parties prenantes vont vous prendre pour le Père Noël et vont vous soumettre un besoin, qui n'en est finalement pas un.

J'ai besoin d'une nouvelle moto pour aller bosser.

Alors, vous allez vous lancer dans une analyse détaillée de ce besoin. Votre demandeur va détailler un peu plus son besoin. souvent en parlant déjà d'une solution.

Je voudrais une Ducati Hypermotard SP

Puis, vous allez interviewer les différentes parties prenantes :

En tant que marketeux, je pense que vous devriez rouler en BMW R 1200 RT.

En tant qu'assureur je pense que le plus raisonnable serait une Honda CB 500 X.

En tant que banquier je pense que vous n'avez pas le budget.

En tant que Sécurité Routière, je pense que c'est trop risqué de rouler en 2 roues.

En tant qu'expert, je pense que ça tombe bien, c'est le salon de la moto, allons essayer une présélection de modèles puis on fera une analyse comparative.

...

Alors là, je dis STOP. On est allé trop vite. Avant de détailler, modéliser, valider ces exigences, il faut avoir vérifier que le besoin était bien compris. Dans le Business Analysis Body of Knowledge, on parle de "elicitation". Ce terme a été traduit dans la version en français par "élicitation" et est défini comme suit :

L’élicitation peut se définir de la manière suivante : se renseigner pour connaitre divers éléments (latents ou potentiels), poser des questions,  s’informer pour obtenir de l’information ou des réponses.

Les techniques à utiliser pour cette phase critique de la gestion des exigences sont : brainstorming, étude de la documentation existante, groupes de discussion, interviews, storyboards, sondage/questionnaire... Des techniques assez ouvertes qui facilitent la découverte.

Dans mon exemple, le vrai besoin de cette partie prenante est de se rendre au boulot en moins d'une heure. Et comme la batterie de sa moto actuelle est faible, elle ne démarre pas. Finalement il suffira juste de recharger la batterie de sa Honda Hornet, et ça roule.

Le Système d'Information, c'est pareil.

dimanche, juin 12 2011

La MOA doit-elle tout automatiser ?

Faut-il automatiser tous les processus manuels ? Informatiser un processus manuel répond souvent à des exigences de traçabilité, de reporting, de pilotage. Mais faut-il éliminer toute action manuelle ? Quels sont les risques lorsque l'on remplace l'homme par la machine ? On sait faire danser les robots, mais sont-il capables d'improviser ?

CEBIT 2011: A Nao robot performs at Intel's Cebit news conference

Les règles métiers doivent rester la propriété du métier

Il existent des systèmes dédiés à la gestion de règles métiers, et quoi qu'il en soit, tous les systèmes d'information implémentent des règles métier. Mais parfois certaines parties prenantes refusent la mise en place de règles métiers exécutées automatiquement. Pourquoi ? Parce qu'elles ne veulent pas perdre la connaissance et la gouvernance de leurs processus. Il faut faire très attention à ce que la mise en place d'outils de gestion des règles métiers et des processus métiers se fasse sans déposséder les "métiers".

Calculer le retour sur investissement selon l'axe financier et celui de la flexibilité

Calculer le retour sur investissement selon l'axe financier est une chose primordiale, mais il ne faut pas oublier celui de la flexibilité. Développement durable, agilité sont des termes souvent entendus associés à de lourds projets d'automatisation de processus métiers. N'oublions pas que l'être humain est très adaptable, bien plus que le meilleur SI aussi agile soit-il.

Inutile donc de vouloir tout automatiser à tout prix. N'oublions pas que le SI supporte les règles métiers et les processus métiers, mais qu'il n'est pas le métier.

jeudi, mars 17 2011

MOA et Scrum : Quels retours d'expériences ?

Cela fait quelques mois que je travaille sur un projet utilisant la méthodologie Scrum. Cette méthodologie dite "agile" bouleverse le travail de la MOA dans les organisations classiques où les rôles MOA et MOE sont gérés par des personnes distinctes, voire des équipes distinctes. Après vous avoir expliqué quelques bases sur l'agilité et la MOA dans un précédent billet (Le rôle de MOA est-il compatible avec les méthodes agiles ?), je me propose ici simplement de vous livrer mon retour d'expérience sur l'impact d'une telle méthodologie pour la MOA.

Ce qu'on a dit sur le rôle de la MOA dans les méthodes agiles...

On a beaucoup parlé des méthodes agiles depuis quelques années. Et on peut avoir l'impression par exemple que Scrum a été conçu par des développeurs, pour des développeurs. Je dis cela car la communauté agile s'est très vite rendue compte du problème que posait la MOA pour mettre en œuvre Scrum :

Scrum, Agilité et Rock'n roll : Se passer de la MOA ou se passer de l'agilité ?

J'ai dit à N. qu'une meilleure solution serait de supprimer la MOA. MOA et MOE c'est fait pour les travaux publics, pas pour le développement de logiciel. C'est le bon moment en période de crise pour éliminer les gaspillages...

Bon, c'était une boutade, on ne peut pas supprimer la MOA du jour au lendemain.

OCTO Talks! : Installer Scrum sur une organisation existante

L’autre population qui est mise en porte-à-faux lors du déploiement de SCRUM : la MOA. Là aussi, le rôle de MOA tel que nous le connaissons est en grande partie absorbé par l’équipe : clarification du besoin, qualification des demandes, tests, … Quelle position la MOA peut-elle alors adopter pour continuer à apporter de la valeur à un projet ?

La solution en laquelle nous croyons aujourd’hui est que la MOA soit partie intégrante de l’équipe.

Et ce n'est pas seulement un problème franco-français ou un problème de la métaphore MOA/MOE issue du BTP. C'est simplement que les méthodes agiles veulent mettre le client au cœur du process de développement d'un système informatique, en limitant les gaspillages : documentation inutile, intermédiaires superflus entre le développeur et le client. Ces sujets touchent principalement les activités de la MOA.

... et ce que j'ai expérimenté : User stories et storyboards,

Sur mon projet actuel, nous avons donc mis en place Scrum. En tant que MOA, on m'a dit : "Maintenant, tu rédiges des user stories.". Ok. J'ai en fait pris le rôle de Product owner, délégué. Avant cela, j'ai quand même fait une étude préalable qui a abouti sur la rédaction d'un cahier des charges chargé d'une étude de l'existant et d'une liste d'exigences. J'ai ensuite décliné ces exigences en user stories. Ces user stories sont un outil très pratique pour planifier les sprints. Au départ j'ai simplement accompagné ces user stories d'un storyboard et de maquettes réalisées via Axure.

quelques spécifications fonctionnelles "old school"

Pas suffisant. J'ai rapidement bifurqué vers une spécification fonctionnelle détaillée ! Aïe, de la documentation ? Mais pourquoi ? C'était impossible d'avoir une vision globale du système sans cela. Et la traçabilité n'était pas suffisante, j'avais toujours l'impression d'aller à l'encontre d'un choix de conception fonctionnel fait plus tôt dans le projet, faute de me rappeler des motifs de ce choix. De plus il était très difficile de discuter avec les projets non Scrum sans un document de spécifications fonctionnelles. J'ai donc décidé de maintenir ce document, enrichi au fil des sprints en essayant d'avoir toujours un ou deux sprints d'avance. De plus certaines réglementations demandent que le système d'information soit documenté, donc impossible de passer outre une documentation fonctionnelle.

et les critères d'acceptation !

Oops, malgré cela, je me suis rendu compte que j'avais oublié un élément capital dans les user stories : les critères d'acceptation ! Pour faciliter la recette au fil de l'eau, il est important d'avoir ces critères d'acceptation au niveau des users stories, même si ceux-ci font souvent référence aux spécifications fonctionnelles. Je pense aussi qu'une automatisation des tests fonctionnels est capitale pour tirer tous les bénéfices d'un mode de développement avec des itérations courtes.

Au final, un bilan positif ?

Finalement, nous avons mis en place Scrum, mais j'ai quand même gardé certains outils propres aux cycles en V. Pourquoi ? Surement parce qu'on ne peut pas changer ses habitudes aussi facilement, mais aussi parce que Scrum ne se suffit pas à lui-même. Comme toute méthodologie, il faut l'adapter au contexte. Tous les développeurs ne sont pas capables de gérer les aspects fonctionnels, les clients ne sont pas forcément prêts à rédiger des users stories, et les équipes avec lesquelles vous devez interagir ne sont pas forcément "agiles". Les itérations courtes, les démos, la collaboration, la recherche du consensus, le pilotage par la valeur ajoutée sont par contre autant d'éléments très positifs de la méthodologie.

Je pense donc que le rôle de MOA ou AMOA s'inscrit parfaitement dans cette méthodologie du moment que l'on accepte que le product owner puisse être en fait une équipe composée d'un sponsor métier, d'utilisateurs clés et d'un ou plusieurs MOA. Dans ce cas,  la ou les MOA doivent clairement avoir la délégation et la capacité pour arbitrer les points en temps réel, quitte à remonter ensuite les points les plus problématiques lors des comités de pilotage du projet. La MOA peut alors apporter toute son expertise en terme d'analyse, de modélisation et de construction de lien fort entre le SI et le métier.

vendredi, septembre 17 2010

La MOA doit-elle définir ses écrans en mode fil de fer ?

Le processus qui amène à la spécification détaillée des écrans d'une application de gestion, n'est pas principalement un travail sur le graphisme. C'est essentiellement un travail de conception fonctionnelle centrée sur l'utilisateur. Et avant de définir le design final de l'application, il peut être intéressant de concevoir ses écrans en mode fil de fer (wireframe). Voilà un petit schéma revu sur le blog de usercentric.fr - Suivez le chemin de l’User Experience :

Valider la sémantique

En mode fil de fer, les écrans seront représentés avec tous les contrôles nécessaires, avec la vraie sémantique. Mais par contre on évitera de mettre trop d'éléments graphiques. Ainsi cela permet de se concentrer sur le fonctionnel. Le premier avantage est de faire valider par les utilisateurs la sémantique utilisée, avec son contexte.

Vérifier la compréhension des exigences

Les besoins exprimés par les utilisateurs pendant les entretiens de recueil des besoins ne sont pas toujours bien analysés et compris par la MOA. Discuter d'une exigence sur un écran dépouillé du superflu permet de vérifier qu'on a bien compris le fond du problème.

Le storyboard pour valider le processus métier

Un tout petit peu plus loin qu'un simple écran en mode fil de fer, le storyboard permet de valider que la solution prévue permettra bien de supporter le processus métier concerné. En effet, montrer les enchainements qui seront possibles entre les écrans de l'application permet de concrétiser l'informatisation d'un processus métier. Ainsi on peut dérouler le processus avec les utilisateurs et valider que cela fonctionne comme imaginé.

Améliorer l'utilisabilité

Une fois qu'on a validé l'efficacité de la réponse au besoin, on peut commencer à penser à l'utilisabilité. Les ergonomes et les graphistes auront bien évidemment un grand rôle à jouer dans ce travail, car là on rentre dans leur domaine. Mais la MOA doit avoir des notions sur cette utilisabilité pour éviter de proposer des solutions trop nuisibles. Voilà quelques pistes de lecture sur le sujet de de l'utilisabilité :

Définir ses écrans en mode fil de fer, avant de passer à la spécification détaillée des écrans, offre donc de grands bénéfices. On peut en revanche se demander si c'est à la MOA de définir de manière très détaillée les écrans. Si dans l'organisation il n'y a ni ergonome, ni designer, ni développeur sensibilisés à l'utilisabilité, alors il faut bien que quelqu'un le fasse. Mais si il existe ces spécialistes dans votre organisation, restez concentrés sur votre expertise : le métier et le fonctionnel. Laissez alors le graphisme et l'ergonomie aux vrais experts.

mercredi, juillet 21 2010

Dans quels cas utiliser les cas d'utilisation ?

"Les cas d'utilisation, c'est bien, mais leur description détaillée est un peu lourde. Finalement, nous ce qui nous intéresse c'est la spécification des écrans.", voilà ce qu'un développeur m'a récemment dit concernant des spécifications fonctionnelles que j'avais rédigées. L'approche par cas d'utilisations (use case) pour expliciter les exigences fonctionnelles d'un système est un grand classique de la MOA. Mais alors si les développeurs les jugent indigestes, à qui et à quoi servent-ils ? C'est en lisant ce billet Use cases: a personal history (and a bit of a love affair) de Laura Brandenburg, que je me suis rendu compte que je n'étais pas le seul à me poser ces questions.

Rappels sur les cas d'utilisation

Un diagramme de cas d'utilisation en UML permet de figurer le comportement d'un système face aux stimulations d'acteurs externes, le tout avec un formalisme extrêmement simple.Voilà un exemple décrivant le fonctionnement d'un restaurant :

Diagramme de cas d'utilisation

Un cas d'utilisation est représenté par une "patate". Chaque cas d'utilisation peut ensuite être décrit de manière détaillée avec par exemple le formalisme suivant :

Description détaillée d'un cas d'utilisation

Les cas d'utilisation pour discuter avec le métier

L'avantage d'un diagramme de cas d'utilisation est qu'il est très simple à comprendre. Hormis les associations de type "extends" ou "includes", le formalisme se comprend de lui même. Donc pour appréhender un système existant ou pour expliciter le périmètre d'un projet, ce genre de diagramme me parait indispensable. Et même si on travaille avec des "user stories" dans le cadre d'une méthode agile, réaliser un diagramme de cas d'utilisation permet d'avoir une vision d'ensemble, nécessaire pour les discussions au niveau d'un processus.

Les cas d'utilisation comme outil d'analyse

A moins d'être sur une évolution très simple ou d'être un expert du sujet, il me parait impossible de passer directement du besoin exprimé par l'utilisateur à une maquette détaillée de l'interface prête à être réalisée par l'équipe de développement. Alors comment mener l'analyse qui permettra de rédiger une spécification fonctionnelle détaillée ? Et bien par exemple en utilisant le modèle présenté précédemment pour expliciter les cas d'utilisations car il permet de :

  • Formaliser l'exécution normale du cas d'utilisation ;
  • Découvrir les cas alternatifs, qui sont souvent oubliés par les différentes parties-prenantes ;
  • Découvrir les règles métiers, même celles qui ne se traduiront pas par une règle dans l'interface graphique.

Même si finalement les développeurs auront tendance à se focaliser sur la description des IHM, les cas d'utilisation facilitent la conception de ces IHM et permettent d'avoir rapidement une vision globale du système ou processus étudié. Alors oui, ils peuvent paraitre trop simplistes sous forme de diagramme et trop complexes lorsqu'ils sont explicités de manière détaillée, mais il me semble que c'est un outil indispensable à toute analyse fine du métier.

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.

dimanche, février 7 2010

Comment améliorer l'alignement IT/métier en utilisant un outil de gestion des exigences ?

L'informatique ne doit plus simplement suivre le métier. On attend aujourd'hui d'un SI qu'il soit capable de s'adapter à toutes les évolutions du business même ceux qui n'ont pas été anticipés par les opérationnels. Dans une étude concernant l'état de l'art de l'aligement IT / Métier en France publiée en 2008 par le cabinet PAC - Pierre Audoin Consultants, on apprend que La collaboration entre maîtrises [maîtrises d'ouvrage et maîtrises d'œuvres] est un point crucial, qui pourrait être le fil rouge de cette étude. Elle est jugée critique à 94%. On note également dans cette étude que l'intégration MOA/MOE est le deuxième levier juste derrière le projet stratégique au niveau de l'entreprise pour améliorer l'alignement IT / Métier.

Il existe des outils qui peuvent aider à plusieurs niveaux sur ce sujet. Ce sont les outils de gestion des exigences (requirements management). Une exigence fait référence à un besoin d'une des parties prenantes du projet. Une exigence peut être fonctionnelle ou non fonctionnelle. Concernant les outils, on peut par exemple citer Entreprise Architect. Dans leur document Requirements Management with Enterprise Architect, ils expliquent comment UML est utilisé pour modéliser les exigences. Dans un autre style, moins graphique, IBM propose DOORS. Dans leur livre blanc Ten steps to better requirements management, IBM nous explique ce qu'une exigence doit être :

  • Correcte (techniquement et juridiquement possible) ;
  • Complète (exprime une idée ou un fait dans sa totalité) ;
  • Claire (sans ambiguïté) ;
  • Non contradictoire (pas en conflit avec une autre exigence ) ;
  • Vérifiable (il est possible de définir si le système répond à cette exigence) ;
  • Traçable (identifié de manière unique et tracé) ;
  • Faisable (peut être accompli dans les coûts et délais prévus) ;
  • Modulaire (peut être changé sans impact excessif) ;
  • Indépendant de la conception (ne parle pas de solution concernant la conception).

(la traduction est un métier)

Une fois que les exigences sont exprimées, tout l'intérêt d'un outil de gestion des exigences est de permettre la traçabilité afin de pouvoir répondre aux questions suivantes :

  • Est-ce que tous mes besoins ont été couverts par le système ?
  • Quels besoins étaient mal exprimés et donc volatiles ?
  • Quel est l'impact si je modifie une exigence ?

C'est en étant capable d'analyser ces points qu'on pourra ensuite améliorer l'alignement IT / Métier. Par exemple si un des besoins était trop volatile, l'IT ne pourrait pas s'aligner. Il peut donc être nécessaire par exemple de chercher une autre organisation qui permette d'avoir une expression des besoins plus pérenne. Un besoin peut-être exprimé sur un Post-It  (heu pardon je voulais dire papillon adhésif amovible) par une des parties prenantes du projet, mais la MOA se doit ensuite de formaliser ces besoins sous forme d'exigences. Un bon outil permettra de tirer profit d'une telle démarche.

Modernanalyst.com - There's an app for that!

mardi, janvier 5 2010

Comment modéliser un processus métier ?

Pour modéliser un processus métier, l'OMG propose sa Business Process Modeling Notation (http://www.bpmn.org/). La dernière version des specs nous éclaire sur l'objectif de cette notation :

http://www.omg.org/spec/BPMN/2.0/

The Object Management Group (OMG) has developed a standard Business Process Modeling Notation (BPMN). The primary goal of BPMN is to provide a notation that is readily understandable by all business users, from the business analysts that create the initial drafts of the processes, to the technical developers responsible for implementing the technology that will perform those processes, and finally, to the business people who will manage and monitor those processes. Thus, BPMN creates a standardized bridge for the gap between the business process design and process implementation.

Les enjeux du BPM vont bien au delà de la simple représentation d'un processus métier. Mais avant d'investir dans des usines à gaz qui vont implémenter, exécuter et monitorer vos processus métiers à partir de beaux diagrammes, il faut déjà modéliser ces processus métiers. Que ce soit le processus existant ou le cible, il est toujours utile de réunir les différents acteurs sur un diagramme que tout le monde peut comprendre. Cela permet de comprendre rapidement les problèmes les plus importants et de trouver donc les meilleures optimisations.

Pour modéliser vos processus métiers, un outil comme BizAgi Process Modeler peut vous aider. Cet outil vous permet d'exporter vos diagrammes sous formes d'images, de document Word... Dans cette version gratuite vous serez limités à la réalisation des diagrammes, sans aller jusqu'à l'exécution de vos processus. Voilà un exemple de réalisation :

Pour aller plus loin, voilà un tutoriel sur BPMN réalisé par IBM.

Tout comme UML, BPMN n'est pas une méthodologie. C'est une notation très efficace pour modéliser les processus métiers, mais ce n'est qu'un outil. D'ailleurs on peut aussi utiliser Merise et ses MCT (Modèle conceptuel des traitements) et MOT (Modèle organisationnel des traitements) qui même s'ils sont moins tendances, permettent également de représenter des processus métiers. Par contre au delà de la modélisation, BPMN est plus intéressant puisqu'il est une base pour tous les outils qui permettent ensuite de gérer complètement les processus métiers (voir par exemple ce que propose la suite BPM d'IBM), mais là on sort de la thématique de ce blog qui se veut "pragmatique".