lundi 9 mai 2016

La qualité de la conception est un avantage compétitif

Dans un article prémonitoire paru en 2011dans le Wall Street Journal : « Why Software is eating the World » Marc Andreessen ([1]) a démontré que les start-ups qui réussissent sont des « software compagnies ». Pour lire le texte de Marc Andreessen cliquez ici. C’est un changement de perspectives considérables car jusqu’alors on considérait que le développement d’applications informatiques était un mal nécessaire qu’il fallait supporter. C’était long, laborieux et souvent assez frustrant, un véritable travail de mercenaire. D’ailleurs il était pour cette raison fréquemment sous-traité à des sociétés de service. Aujourd’hui on découvre que c’est le cœur de métier d’un nombre croissant d’entreprises, y compris des compagnies anciennes, exerçant jusqu’alors leurs activités dans des mondes très différents du développement de software.
Cette mutation est pour l’essentiel constituée par des évolutions notables des systèmes d’information des entreprises et des administrations. Jadis ils s’occupaient de fonctions de service comme la paie, la facturation, la comptabilité, …. Aujourd’hui ils sont au cœur des business et représentent des enjeux importants. Ils permettent d’élargir le champ des offres faits aux clients, d’apporter de nouveaux services aux clients, de faire face à des volumes de données sans cesse croissants, de fournir des analyses plus fines, de permettre une réduction du niveau des stocks ou des comptes clients, …
Cependant, on note de grandes différences entre deux systèmes d’information voisins installés dans deux entreprises différentes. Dans un cas on constate que l’un est efficace et que l’autre ne l’est pas. Les fonctions sont voisines mais la manière dont elles sont mises en œuvre n’est pas la même. La différence entre ces deux systèmes est la plupart du temps due à la qualité de la conception de ces logiciels.


L’importance de la conception des logiciels

La conception des logiciels est un art un peu mystérieux permettant à partir d’éléments éparts, de contraintes techniques et d’exigences fonctionnelles d’arriver à une solution élégante et efficace. C’est une démarche très particulière, d’ailleurs les concepteurs ont souvent du mal à expliquer leur cheminement. Certains disent que c’est l’inspiration et d’autres que c’est le métier ([2]). En fait c’est une combinaison des deux. L’observation montre qu’il existe de bons concepteurs et d’autres qui le sont moins.
La qualité de la conception se mesure de manière assez simple à l’aide de ratios empiriques comme le nombre de transactions par minute supportées par le système, le nombre de bons de livraisons ou de factures émises par jour et par personne, le coût du traitement d’une pièce comptable ou d’un bulletin de paie, … L’observation montre qu’il y a des écarts considérables entre des applications semblables. Certaines sont rapides et efficaces et d’autres se traînent lamentablement. Dans ce dernier cas la moindre opération devient très vite complexe. Les utilisateurs se plaignent de la médiocrité de l’outil. Il suffit de les écouter pour sentir les faiblesses de la conception. Deux exemples permettent d’illustrer le type de difficultés rencontrées :
·       Le site de commerce électronique d’une entreprise de vente par correspondance de produits électroniques et informatiques est visuellement une réussite mais à partir du moment où le client commence par consulter le catalogue des produits le serveur « rame » et la passation des commandes deviennent une opération délicate. Il est parfois nécessaire de s’y prendre à plusieurs fois. Résultat : les clients se plaignent de recevoir deux fois la même commande ou de ne pas la recevoir. Ceci explique que le trafic réalisé sur le site Web est faible malgré la qualité des produits et les prix très attractifs proposés. Manifestement on a passé du temps à concevoir l’écran et bâclé la conception de la base de données et de la gestion des commandes.
·     Une application commerciale classique dans une entreprise vendant des fournitures pour le bâtiment gère la prise de commandes, les livraisons, la facturation et la tenue des comptes clients. Cette application est lourde et complexe à mettre en œuvre. Le coût informatique d’une facture est anormalement élevé et le coût global, y compris ceux liés par le personnel de l’administration des ventes, est trop important. Le personnel se plaint de passer plus de temps à attendre devant le clavier-écran que de temps à saisir les données. L’analyse cette application montre qu’elle est construite de bric et de broc et que les écrans ont été « revampés » pour leur donner bonne apparence mais derrière, les traitements sont mal conçus et peu fiables.
Très souvent cette situation est due à la complexité et à la longueur des développements qui ont été nécessaires. Ces errements de réalisation sont elles-mêmes la conséquence d’erreurs de conception. L’expérience montre que de nombreuses itérations ont été nécessaires et elles ont pour effet d’alourdir le système. Or ces erreurs sont ensuite très difficiles à corriger.


Critères permettant d’évaluer la qualité de la conception

Il est dans ces conditions important d’évaluer la qualité de la conception de l’application. Une fois l’application opérationnelle elle peut se faire de différentes manières :
·   L’efficacité en exploitation de l’application. On peut l’évaluer de différentes manières notamment en se basant sur les temps de réponse des transactions courantes. Il est aussi possible de l’apprécier par la capacité de l’application de résister à la charge transactionnelle durant les heures de pointe. On peut aussi l’évaluer par l’importance des traitements de batch dont les sauvegardes, les réorganisations des bases de données, les traitements périodiques, … Une application qui se traîne a de fortes chances d’avoir des problèmes de qualité de la conception.
·       L’effort de maintenance nécessaire. Normalement la charge annuelle de maintenance d’une application informatique est de l’ordre de 15 % à 20 % de la charge de développement initial. Ainsi un développement représentant une charge de développement de 1.000 jours se traduit normalement par une charge annuelle de 150 à 200 jours de travail. Quand on s’approche des 30 % à 40 % il est probable que des erreurs de conception ont été commises. Au-delà de 50 %, c’est une certitude.
·     La qualité de l’interface utilisateur. C’est un critère simple. Il suffit d’observer un utilisateur effectuant des opérations courantes pour apprécier la qualité de la conception. Dans certains cas l’emploi de cet interface est simple et facile, dans d’autres cas c’est un véritable casse-tête. Cette évaluation se fait simplement en interrogeant les utilisateurs à l’aide de questionnaires permettant d’évaluer la facilité d’utilisation de l’application ou de l’interface utilisateur. C’est un critère permettant de faire apparaître les faiblesses de la conception de l’application.
·   La productivité des opérateurs. Pour l’apprécier on va s’efforcer de mesurer le temps nécessaire aux utilisateurs effectuent les opérations courantes comme d’ouvrir un compte client, de saisir une pièce comptable, de passer une commande, …. Une conception de qualité permet d’avoir des interfaces faciles d’emploi et d’améliorer de manière significative l’efficacité des opérations.
Comme on le voit une application peu performante souffre probablement d’une conception fragile ou médiocre. Les critères sont simples à mettre en œuvre et permettent de détecter, avec une bonne probabilité, d’éventuelles faiblesses de conception.


Evaluer la qualité de la conception dès l’étape de la conception

Il est, par contre, beaucoup plus difficile d’évaluer a priori la qualité d’élaboration d’une application lorsque le projet est encore en phase d’élaboration de la solution. Généralement le cahier des charges permet de se faire une idée de la qualité de la conception. Un document complexe, difficile à lire, avec des schémas incompréhensibles et des explications inutilement bavardes sont des signes avant-coureur d’une conception fragile.
Il est certain que l’absence de cahier des charges n’est pas une situation la plus confortable. Il est certain que les démarches, comme les méthodes agiles, où on passe directement de la phase d’expression des besoins à la réalisation risquent d’aboutir à des conceptions fragiles et donc à des solutions peu performantes.
Malgré les lourdeurs de la démarche le cahier des charges est un moyen efficace de se protéger contre des conceptions faibles et insuffisantes cependant ce n’est pas une assurance tous risques contre toute dérive.


Le rôle clé de la conception

La qualité de la conception des systèmes d’information a deux effets : la qualité du système opérationnel et la qualité des développements effectués. Les deux sont, bien entendu, liés.
·   La qualité du système d’information s’apprécie, nous l’avons vu, par son efficacité opérationnelle : temps de réponse, facilité d’utilisation, résistance à la charge, …
·     La qualité des développements effectués se mesure par la maîtrise du projet (respect des délais, de la charge et du budget), la vitesse d’exécution du code et le nombre limité de bugs découverts pendant la phase de tests. Un système bien conçu se réalise facilement et s’exécute rapidement.
Dans ces conditions il est important de chercher à simplifier les opérations. Rien n’est pire que d’aboutir à un système trop complexe. La mise au point de l’application risque d’être laborieuse et son exploitation sera toujours délicate. Elle risque de se traduire par de nombreux incidents et finalement par un taux de maintenance de l’application opérationnelle anormalement élevé.
La qualité des développements se mesure aussi par la taille du code produit et par le nombre de bugs résiduels découverts après la mise en production de l’application. Un code obèse ne peut pas être efficace. A l’inverse, un code resserré s’exécute plus rapidement. Bien sûr les processeurs sont de plus en plus puissants et résistent mieux à la charge mais l’observation montre que la taille du code à tendance à augmenter plus vite que la puissance des processeurs.


La qualité de la conception a une influence directe sur la stratégie de l’entreprise

La qualité de la conception des systèmes d’information joue sur leurs performances et ceci a de multiples effets sur l’ensemble de l’entreprise. Le premier impact est d’améliorer l’efficacité du personnel au travail ce qui se traduit par l’amélioration de sa productivité. Avec les mêmes effectifs l’entreprise est capable de réaliser un chiffre d’affaires et une marge supérieurs. C’est l’effet traditionnel de l’informatisation qui est à l’œuvre depuis son origine, c’est-à-dire depuis plus de 60 ans. Cette idée a été très discutée et de nombreux auteurs économiques ont contesté l’apport de l’informatique à la productivité des entreprises ([3]). Aujourd’hui encore certains universitaires comme Robert Gordon continuent de nier la contribution de l’informatique à la croissance de la productivité et plus généralement son impact sur la croissance économique ([4]). Il est vrai que cet auteur n’hésite pas d’affirmer que la période de la croissance économique est terminée. Et le pire est que certain croit ce genre d’affirmation, bien que les faits montrent le contraire.
En réalité la plupart des investissements informatiques ont une rentabilité significative, du moins s’ils reposent sur des applications bien conçues et efficaces. La qualité de la conception de ces applications informatique a aussi un fort impact sur la réactivité de l’entreprise. Deux exemples montrent l’importance de ces changements :
·     Dans une entreprise de construction il fallait traditionnellement entre 3 et 4 semaines pour établir un devis avec de nombreux échanges entre le service commercial, le bureau d’études, les métreurs et le contrôle de gestion. Avec une application bien conçue permettant d’échanger rapidement entre les différents intervenants l’entreprise est maintenant capable d’établir, de valider et d’envoyer un devis en 48 heures.
·     Avec des procédures classiques même bien informatisées il n’est pas possible de livrer les commandes en moins de 24 heures. Dans une entreprise de commerce électronique dès que la commande est validée par le client le prélèvement sur le stock est immédiatement lancé par radio aux stockistes qui sont dans les travées de l’entrepôt, le colis est fait, les étiquettes sont éditées et dans l’heure qui suit le colis est remis à la Poste ou au transporteur.
Le succès de ces entreprises repose en grande partie sur la qualité des applications développées reposant sur une conception intelligente et efficace.
La qualité de la conception d’une application peut aussi avoir un impact sur le volume d’affaires de l’entreprise. Il est pour cela nécessaire de veiller à avoir des applications faciles d’emploi :
·    La rapidité d’affichage des pages Web. L’utilisateur n’accepte pas d’attendre plusieurs secondes avant de voir la page s’afficher et encore moins de devoir patienter des dizaines de secondes pour que les données saisies soient validées. Rien n’est pire que de saisir des données puis d’appuyer sur la touche d’envoi et de voir s’afficher un écran vide sans savoir ce qui s’est passé et même sans être informé que les données saisies ont effectivement été pris en compte. On se rappellera que le protocole HTTP n’est pas un moniteur de télécommunication.
·       La simplicité d’emploi de la page affichée. Certains sites sont d’une grande facilité d’emploi alors que d’autres sont particulièrement difficiles à employer. Il est nécessaire de pouvoir se déplacer facilement dans la page, de voir tout sans avoir des parties cachées, d’accéder sans peine à toutes les parties de la page, … Les pages des sites comme Amazon, Google, Wikipedia, You Tube, …. sont des standards de faite. Leur succès est dû au fait qu’une grande attention a été portée à la qualité de l’affichage, l’ordre des informations données et la clarté des termes employés.
·       La fiabilité des traitements. Certaines applications sont d’une grande fiabilité, d’autres sont plus délicates à maîtriser et certaines sont à éviter. Il est certain que les utilisateurs se méfient des applications trop fragiles. Certains sites ont une fiabilité excellente. Qui a réussi à « planter » le moteur de recherche de Google ou le site d’Amazon ? Il doit encore exister des bugs mais ils tendent à disparaître. Pour y arriver dès qu’un utilisateur signale une anomalie elle est immédiatement corrigée. 
Comme on le voit la qualité de la conception se traduit par un haut niveau d’excellence des opérations de réalisation. Si ce n’est pas le cas, l’application sera médiocre et peu efficace.


L’enjeu stratégique de la conception

Le véritable enjeu stratégique de la qualité de la conception porte sur la création de nouvelles activités. Les opportunités offertes par la technologie sont nombreuses. On note qu’actuellement on constate qu’elles sont surtout saisies par des start-ups américaines. Les entreprises plus classiques ont plus de mal à prendre en compte ce nouveau type d’opération. On parle dans ce cas de la transformation numérique. Celle-ci repose en grande partie sur le développement de nouvelles applications. C’est bien mais on constate que ces entreprises ont beaucoup de mal à se lancer dans de nouvelles activités ou d’améliorer les opérations existantes.
Mais il ne faut pas être trop négatif. Il existe quelques entreprises européennes et françaises qui ont réussi cette évolution comme en France : Publicis ou Axa, mais il faut le reconnaître, elles ne sont pas très nombreuses. Par contre les échecs sont nombreux. Ainsi les tentatives pour créer deux opérateurs nationaux du Cloud, Cloudwatt et Numenergy, n’ont pas été des succès. De même l’idée de créer des moteurs de recherche nationaux ou européen comme Exalead, Quaero ou Qwant n’ont pas été des réussites. Cependant on note qu’il existe aussi aux USA de nombreux échecs. Cependant il semble qu’il y a plus de réussites d’un côté de l’Atlantique que de l’autre et surtout ces réussites sont très vite des succès mondiaux comme Amazon, Facebook, Airbnb, ou Uber.


Les gains liés à la conception se mesurent

La qualité de la conception d’un système d’information peut s’évaluer en se basant sur l’élégance de l’architecture ou en se basant sur la structure des bases de données. Mais c’est une évaluation très subjective pouvant faire l’objet de discussion. Il est plus simple de mesurer son impact. Une des plus efficace consiste à mesurer l’impact global des systèmes d’information. On va pour cela mesurer leur capacité à créer de la richesse en rapportant la valeur ajoutée créée par l’entreprise au nombre de ses salariés. Ce ratio permet de mesurer la capacité de l’entreprise à créer de la richesse. Les investissements informatiques rentables se traduisent, normalement, par une augmentation du chiffre d’affaires grâce à des gains d’efficacité ou par une diminution des dépenses de l’entreprise grâce à des gains de productivité.
Mais il est aussi possible de mesurer la capacité de l’entreprise à payer de bons salaires. Tout le monde connait des « boîtes où on paie bien » et d’autres « qui ne paient pas ». Celles qui peuvent payer de bons salaires sont capables de générer un volume de valeur ajouter plus élevée que les autres entreprises du même secteur et de la même taille. C’est notamment le cas des grandes entreprises et des petites firmes dynamiques. Généralement celles-ci disposent de systèmes d’information efficaces qui permettent d’accroître leur productivité globale et contribuent de manière significative à l’augmentation de leur chiffre d’affaires. Ces succès sont la plupart du temps fortement liés à la qualité de la conception de ces applications. Cependant il faut être prudent car d’autres facteurs peuvent jouer.


Les actions à entreprendre

Dans ces conditions les entreprises qui veulent profiter de l’impact des systèmes d’information moderne doivent miser sur les applications ayant de forts enjeux stratégiques :
1.     Elargir l’offre de service de l’entreprise. Les clients sont demandeurs de services efficaces. Ils peuvent être gratuits mais de plus en plus de services sont payants à condition qu’ils soient bons. Actuellement la plupart des entreprises ne fournissent qu’un nombre limité de services et préfèrent les déléguer à d’autres notamment des distributeurs (installation, prise en main, SAV, assistance téléphonique, …). Très souvent ces services sont de médiocres qualité ([5]). Il existe dans ce domaine une marge de progrès important.
Autre action possible : étendre la gamme des produits et des services vendus. Par exemple l’entreprise peut proposer des produits peu demandés ou destinés à des clientèles spécifiques dont les effectifs limités font qu’ils n’intéressent pas les distributeurs. C’est le phénomène de la « long tail ». Il a fait la fortune d’Amazon. Autre approche possible : chercher à développer la complémentarité entre les distributeurs, les boutiques possédées en propre par l’entreprise et son site Web.
2.  Fidéliser la clientèle existante. Les clients réguliers qui s’adressent toujours au même fournisseur sont devenu une rareté. De nombreux clients sont infidèles. Ils changent de fournisseur sans raison. Or le coût d’acquisition d’un nouveau client est élevé. Il est donc important de le fidéliser. Les programmes de fidélité type Miles ou carte de fidélité des distributeurs ont pour but d’inciter les clients à revenir moyennant une petite remise. Mais ce n’est pas suffisant. Pour fidéliser un client il est nécessaire d’arriver à développer avec lui une relation régulière en lui envoyant des mails ou une newsletter, en lui proposant des offres exclusives, en lui demandant son avis à l’aide d’enquêtes, …. Ces applications reposent toutes sur la mise en œuvre d’une base de données des clients de bonne qualité.
3.     Rechercher de nouveaux clients. La détection de nouveaux clients est un enjeu considérable. C’est le domaine du Big Data qui permet de détecter parmi des millions d’informations les personnes susceptibles de devenir des clients. Il est frappant de constater la pertinence des bandeaux affichés lorsqu’on consulte des sites Web. C’est le fruit des analyses comportementales faites par des intermédiaires comme Criteo, deeplink.me, RadiumOne, Weborama Connect, Wunderloop,… Leur métier est le « reciblage publicitaire » (Voir sur Wikipédia la définition du reciblage publicitaire). L’analyse de l’historique des consultations des sites Web est riche d’enseignements ([6]).
4.     Améliorer les services fournis aux clients. Les clients sont très demandeurs de services. Le succès de Google est pour l’essentiel dû à la qualité de son moteur de recherche et de son système de messagerie. Sur Internet le gratuit est la règle mais il y a de plus en plus d’exceptions. Les clients acceptent de plus en plus facilement de payer ces services comme les sites streaming musical (Deezer, Spotify, Apple Music,…), la vente de chansons et de musiques (iTunes Store, Google Play,…), la TV en ligne (Netflix), la presse (New York Tribune, Financial Times,…), la vente de livres électroniques (Amazon Kindle, Google Play, iBooks,…), les jeux électroniques (PlayStation Store, Nintendo eShop,…), la vente de programmes informatique (Google Play, App Store, Samsung Galaxy Apps, …), …
Dans le monde professionnel on retrouve la même démarche. Les fournisseurs de nombreux équipements mettent à disposition de leurs clients des applications et des serveurs leur permettant de mieux les utiliser. L’exemple le plus emblématique est celui de General Electric avec le système Predix qui fonctionne en mode Saas qui permet de suivre le fonctionnement des moteurs d’avion et prévenir les risques de pannes. Mais il est possible de suivre avec ce système d’autres équipements comme des trains, des engins de travaux publics, de machines-outils, ….
5.   Remonter en gamme. Les marges les plus importantes se font sur les produits haut de gamme. Il est donc très important d’inciter le client à « remonter en gamme ». Ainsi quand on achète un billet de train ou d’avion le système de vente propose « d’upgrader » ce billet pour aller en première ou en classe affaires, prendre une assurance, réserver une voiture ou une chambre d’hôtel, …. Autre démarche : de nombreux sites proposent à côté des services de base gratuits des services « premium » payants. De même grâce à l’Internet des Objets on introduit des fonctions plus sophistiquées dans les produits comme dans les voitures, les camions, les engins, les tracteurs, les avions, les systèmes de climatisation, l’éclairage public, … Une partie des fonctions sont gérées en local et une autre partie sont traitées en mode SaaS. Demain les voitures sans conducteur permettront de justifier un prix élevé et donc des marges plus élevées. 
6.     Personnaliser l’offre. Chaque client souhaite être reconnu comme une personne particulière. Les sites bien pensés affichent le prénom et le nom du client dès la connexion. Connaissant ses achats précédents il est possible de lui faire des suggestions. S’il est membre d’un programme de fidélité il attend que des offres particulières lui soient faites en lui proposant des prix « canons » avec des remises substantielles. Lorsqu’il a effectué ses choix on doit lui faciliter le paiement et enfin s’assurer qu’il est rapidement livré.
Toutes ces démarches ont en commun de reposer sur des systèmes d’information performants. Leur développement représente des volumes très importants de code. Les entreprises qui réussissent sont devenues des « software compagny » ([7]).On peut distinguer deux ensembles de logiciels ayant des caractéristiques très différents :
·       L’infrastructure souvent appelé « The engine », le moteur. Cet ensemble est chargé de gérer les données, de les stocker et de les rendre rapidement accessibles. La rapidité de la recherche d’un ensemble de données est le critère clé.
·       Les interfaces utilisateurs qui permettent de consulter et aussi de mettre à jour les bases de données. Le critère d’évaluation de ce type de programme est assez différent : c’est leur facilité d’utilisation.
Les critères de qualité de la conception sont différents dans les deux cas. Les performances du moteur sont profondément liées aux caractéristiques des bases de données. De plus en plus de données sont stockées en mémoire centrale et la taille possible des bases de données a considérablement augmenté avec le standard de facto : Hadoop ([8]).
Les programmes permettant d’accéder aux données reposent sur une démarche de conception beaucoup plus empirique avec une approche par essais-erreurs. A partir des « remontées » des utilisateurs les développeurs améliorent sans cesse la qualité de ces interfaces.
Comme on le voit les facteurs de succès ne sont pas les mêmes dans les deux cas. Ils ne font pas appel aux mêmes savoir-faire ni aux mêmes démarches.




[1] - En 1993 Marc Andreessen fut le développeur de Mosaic, le premier navigateur Web, qu’il a créée alors qu’il était encore étudiant à l’Université de l’Illinois. Il fut un des fondateurs de Netscape. Il dirige actuellement le fond d’investissement Andreessen-Horovitz, qui joue un rôle important dans le monde des nouvelles technologies. Voir sur Wikipédia ).  
[2] - Certains considèrent que la conception relèvent un peu de la magie noire. En fait, c’est surtout du talent et du travail.
[3] - Ce curieux débat existe depuis l’origine de l’informatique. Il a été relancé en 1987 par Robert Solow, prix Nobel d’économie, dans un article du New York Time Booking : "you can see the computer age everywhere but in the productivity statistics" "vous pouvez voir l'ère des ordinateurs partout sauf dans les statistiques de productivité". (Pour lire l’article deRobert Solow cliquez ici ). Cette affirmation est si étonnante qu’elle a été surnommée le paradoxe de la productivité (voir Wikipedia en anglais : Productivity Paradox). Elle a été à l'origine de nombreux travaux notamment ceux de Erick Brynjolfson (« The Productivité Paradox of Information Technology : Review and Assessment » : Pour lire l’article d’Erick Brynjolfson cliquez ici). Il explique le paradoxe par la difficulté de mesurer la productivité due à l’informatique. Un article plus récent de Jack Triplett de la Brookings Institution fait la synthèse sur le sujet (The Solow Productivity Paradox : What Do Computer Do to Productivity : Pour lire l’article de Jack Triplett cliquez ici ). Sa conclusion est pour le moins ambiguë : les différents auteurs qui se sont penchés sur le sujet n'ont pas réussi à démontrer la rentabilité des investissements informatiques mais ils ont le "sentiment" qu'il existe un effet entre ces dépenses et les gains de productivité mais ceux-ci ne sont pas mesurables. Depuis l’OCDE a réussi à calculer la contribution de l’informatique à la croissance de la productivité globale. Elle est comprise, selon les pays, entre 20 et 30 % de la croissance constatée et apporte une contribution à la croissance économique significative qui peut aller dans le cas des USA jusqu’à 0,8 % soit le quart du taux de croissance annuelle.
[4] - Voir : “ Is U.S economic growth over ? Faltering innovation confronts the six headwinds” publié par le NBER en Août 2012. Pour lire l'article de Robert Gordon, Cliquez ici. 
[5] - Ainsi traditionnellement les modes d’emploi fournis avec le matériel sont insuffisants. Trouver une documentation complète d’un produit relève souvent du parcours du combattant. Il suffit pourtant de taper le nom du produit sur Google et on arrive sur le site Web du fournisseur. Malheureusement ces sites sont très souvent d’une amabilité de crocodile. Ils sont pauvres et difficiles d’emploi. On commence par fouiller dans le site Web car on ne peut pas faire autrement, et on finit par trouver quelque chose qui est souvent assez loin du document recherché. La bonne approche consisterait à indiquer l’adresse du site Web sur la boite contenant le produit et de mettre à disposition un site simple et agréable à utiliser de façon à trouver rapidement le document recherché. On peut envisager de fournir d’autres services comme des vidéos de prise en main, une aide au dépannage, des FAQ, une assistance téléphonique, un forum, …
[6] - Ainsi un père américain a un jour été très choqué que sa fille de 16 ans reçoivent de Wall-Mart des mails de promotion des layettes et de couches culottes. Il s’en est plaint à la direction du distributeur. Quel n’a pas été sa surprise quand il a découvert quelques semaines plus tard que sa fille était enceinte. L’ordinateur de Wall-Mart l’avait détecté avant que son père s’en aperçoive.
[7] - On les appelle aussi des plateformes car elles utilisent des centres de traitements de grande taille mais ce terme décrit moins bien leur originalité que celui de « software compagnY » car elles ont toutes en commun de reposer sur un ensemble de logiciels bien conçus et performants.
[8] - Hadoop est un framework libre et open source écrit en Java et diffusé par la Fondation Apache. Il repose sur le modèle MapReduce développé par Google.



lundi 4 janvier 2016

N'oubliez pas la note de cadrage

Un projet informatique d'une certaine taille est toujours une opération complexe faisant appel à de nombreuses compétences. Ceci est dû au fait que dans le cadre d'un projet il est nécessaire de recourir à de nombreuses activités différentes. De plus un nombre élevé de personnes sont concernées directement ou indirectement par un projet. Souvent elles ont des démarches différentes et des points de vue assez éloignées les uns des autres. Pour ces raisons il est nécessaire de mettre ces personnes et ces activités en bon ordre pour mener le projet dans les délais et les budgets prévus. C'est le rôle des notes de cadrage.
Pour organiser un projet on commence par s'efforcer d'identifier l'ensemble des tâches le constituant. Ce sont des activités précises confiées à une personne en lui accordant un délai de réalisation déterminé. C'est par exemple l'animation d'un groupe de travail, la mise au point d'un document ou la rédaction d'un programme. Un projet informatique comprend plusieurs centaines de tâches, voir dans le cas des grands projets plusieurs milliers de tâches. Pour mener à son terme le projet dans le délai prévu il est nécessaire de mettre en ordre ces tâches. Pour cela on a pris l'habitude de les regrouper en étapes ou en phases.
Les étapes sont de natures très différentes. Elle concerne des opérations de conception, de réalisation, de tests et de mise en place. Très souvent on décompose les étapes trop lourdes et trop complexes en étapes plus courtes et donc plus facile à maîtriser. Ainsi il est habituel de décomposer l'étape de conception en deux : conception globale (généralement appelée l’expression des besoins) et conception détaillée (souvent appelée analyse fonctionnelle). Selon les projets il y a entre 5 et 10 étapes. La difficulté de cet organisation tient au fait que ce ne sont pas toujours les mêmes personnes qui participent à ces différentes opérations et donc il faut gérer les passages de relais entre les différentes équipes.
Au cours d'une même étape de nombreux participants interviennent simultanément. Mais pour que leurs actions soient efficaces il est important de déterminer dans quel ordre ils agissent et de manière plus générale comment sont coordonnées leurs opérations. C'est le premier objectif de la gestion de projet. Il est ainsi possible d'améliorer de manière significative son déroulent.

Les risques de dérives des projets sont nombreux

Naturellement les projets informatiques ont tendance à dériver. D'ailleurs si ce risque n'existait pas il est probable qu'on aurait jamais eu l'idée d'organiser les développements de logiciels en mode projet.
Les origines de ces dérives sont nombreuses. Une des causes les plus fréquente est le fait que les différents intervenants s’attendent les uns les autres. Une personne attend qu'une autre lui délivre un document mais ce dernier l'ignore et pendant ce temps il fait autre chose sans se rendre compte qu'il risque de mettre tout le projet en retard. Un projet est une succession de passages de balles qui doit doivent se faire sans anicroche.
Trois situations critiques peuvent survenir et se traduire par des dérives significatives :
·      Détecter les tâches qui peuvent avoir été oubliées. Au cours d'une étape une ou plusieurs tâches importantes sont oubliées mais on ne s'en aperçoit que plus tard lorsqu'on a besoin de leurs résultats et on constate leur absence. Il est alors nécessaire de les réaliser toutes affaires cessantes. Cela ne peut que se traduire par un allongement des délais et une dérive des coûts.
·   Effectuer certaines tâches trop en avance sur le planning théorique. Une faible coordination se traduit par des initiatives individuelles qui aboutissent à réaliser des travaux en avance par rapport à des dates plus raisonnables pour les effectuer. Dans ces conditions on est amené à présumer certains résultats. Or ils peuvent ensuite être infirmés par les travaux qui sont ensuite effectués. Dans ces conditions certains travaux doivent être refait.
C'est par exemple le cas lorsqu'on effectue la définition de l’architecture technique en même temps que les travaux d’expression des besoins. Or, on le sait bien, l'architecture technique ne peut être définie que lorsque l’analyse fonctionnelle est terminée. Dans ces conditions il alors nécessaire de refaire la définition de l'architecture technique.
·      Eviter que certaines tâches soient faites en double.  Il arrive que le même travail soit fait à la fois par les utilisateurs et par les informaticiens, par exemple la définition des écrans et des états. C'est une lourde charge de travail et qui pèse sur les délais. Il est important de veiller à ne faire qu'une seule fois le travail et à bien le faire.
Comme on le voit les risques de dérives sont importants. Pour les limiter il est nécessaire d'identifier les tâches à effectuer, décider qui va les accomplir et à quel moment il va le faire. Leur identification et leur affectation est un point clé de la gestion de projet. 

Se poser les bonnes questions

Pour organiser efficacement une étape d’un projet on commence par identifier les différentes tâches qui doivent être effectuées et ensuite on va les affecter aux différents participants concernés. Pour cela on s'efforce de répondre aux cinq questions traditionnelles :
·      Qui fait,
·      Quoi,
·      Où,
·      Comment
·      Quand.      

Ces questions se résument par le sigle traditionnel : QQOCQ. Certains préfèrent le QQOQCCP correspondant à : Qui, Quoi, Où, Comment, Combien et Pourquoi. Effectivement il peut être intéressant de répondre aux questions : Combien et Pourquoi. A mon avis cela n'apporte pas grand-chose mais dans certains cas cela peut être utile.
Le sigle QQOCQ est une traduction du sigle anglais 5 W pour Who, What, Where, When et Why. En français ce sont : Qui, Quoi, Où, Quand et Pourquoi.
Cette démarche n'est pas nouvelle. Elle remonte à l'antiquité. C'est une méthode d’exposé des circonstances d’une situation définie proposée par un professeur de rhétorique grec : Hermagoras de Temnos et reprise quelques siècles plus tard par Saint-Augustin. En latin On considère : le Quis, Quid, Quando, Ubi, Cur, Quem ad modum, Quibus adminiculs qu'il est possible de traduire par : Qui, Qu’est-ce, Quand, Où, Pourquoi, De quelle façon, Ce qui permet.
De manière concrète pour chaque tâche on va s'attacher à répondre à ces cinq questions. On établit pour cela un tableau avec en ligne les différentes tâches identifiées qui doivent être effectuées au cours de l'étape et en colonne les différentes questions de base : Qui fait Quoi, Où, Comment et Quand. Ceci permet d'identifier sans ambiguïtés toutes les tâches à effectuer et les différents acteurs concernés.
Bien entendu, d'une étape à l'autre la liste des tâches sont différentes par contre d'un projet à l'autre on retrouve à peu près la même liste de tâches. Il est pour cette raison utile d’avoir une liste des tâches standard. 

Définir la règle du jeu de l’étape

On va reprendre de ce tableau la liste des tâches et les responsables à qui elles sont affectées. C'est la base de la note de cadrage. On va indiquer pour chaque tâche le rôle que va jouer chaque intervenant. On appelle ce tableau un RACI car on indique dans chaque case du tableau le rôle de chacun à l'aide des quatre lettres suivantes :

Exemple RACI

·      R : responsible. : responsable
·      A : accountable : ou peut le traduire par « autorité » mais ce sont ceux qui doivent rendre des comptes
·      C : consulted. : consulté
·      I : informed : informé.
Exemple de tableau RACI
On s'aperçoit souvent qu'il n'est pas toujours simple d’identifier sans ambiguïté le responsable à chaque tâche. Des fois il n'a aucun responsable et des fois il y en a plusieurs. Ceci explique les confusions parfois constatées.
A partir de cette liste de tâches il est possible de fixer pour chacune la date de début, la durée probable et en déduire la date de fin. Il est aussi possible d'estimer la charge de travail nécessaire en nombre de jours en distinguant celle des informaticiens (la maîtrise d'œuvre) et celles des utilisateurs (la maîtrise d'ouvrage). C’est le cœur de la planification des projets.

Le contenu de la note de cadrage

Une note de cadrage est un document court. Généralement elle fait 2 à 3 pages. Elle est généralement rédigée en une demi à une journée par un professionnel expérimenté. Ce document a pour premier objectif de définir le qui fait quoi ([1]). Pour cela on établit deux listes et un tableau:  
·   La liste des tâches en se basant sur des listes de tâches standard qui sont adaptées aux particularités du projet,
·      La liste des participants au projet : informaticiens et utilisateurs (maîtrise d’œuvre et maîtrise d’ouvrage),
·       Le tableau d’affectation des tâches aux personnes. C’est le rôle du tableau RACI.
Ces deux listes et ce tableau est la base de la note de cadrage.
Il est possible de leur ajouter différents tableaux complémentaires :
·      Une évaluation de la charge de travail nécessaire pour réaliser l'étape. Cette estimation peut être faite globalement ou détaillée par tâche. Elle peut concerner exclusivement le personnel de l'équipe informatique (la maîtrise d'œuvre seule) ou l'ensemble des personnels concernés y compris les utilisateurs participants aux opérations au cours de cette étape (la maîtrise d'œuvre et la maîtrise d'ouvrage).
·     Les délais de réalisation des différentes tâches en tenant compte de leurs dates de début et dates de fin. Cela peut être une évaluation globale ou une estimation tâche par tâche. Il est ainsi possible de fixer une date probable de fin de l'étape.
Ces informations sont très utiles pour informer les différents intervenants la charge de travail qui leur est affecté et les contraintes de délai qu'ils doivent respecter.
On peut envisager d'ajouter à ces données quelques informations générales concernant le projet :
·       Le domaine de la future application (à qui et à quoi elle servira).
·       Les objectifs à atteindre qui ont été fixés à l'origine du projet.
·       La démarche suivie et notamment la liste des étapes (le découpage du projet).
·       La description des livrables de l'étape (par exemple le plan des documents à livrer).
Il n'est pas nécessaire d'en faire des pages mais de rappeler quelques orientations qui permettront d'éviter d'éventuelles dérives.

Quelques règles simples

Pour établir la note de cadrage il est nécessaire d’appliquer quelques règles de simples comme par exemple :
·      Rédaction de la note de cadrage. Généralement elle est rédigée par le chef de projet. C'est la première chose qu'il doit faire lorsque un projet lui est confié. Il peut arriver que la note de cadrage soit établie par le maître d’ouvrage ou par un assistant à maître d'ouvrage ([2]). La première note de cadrage qui est établie au moment où on décide de réaliser une étude de faisabilité est un cas particulier. Elle est généralement appelée la note de lancement et elle est, très souvent, rédigée par le décideur demandeur du projet.
·    Validation du document. Les différentes notes de cadrage sont validées par le comité de pilotage pour s'assurer du consensus de l’ensemble des parties prenantes. Au début du projet le comité de pilotage n'a pas encore été désigné. Il est alors difficile de trouver une instance de validation. Ce travail peut être confié au comité de direction ou à une commission informatique. Ce n’est pas la meilleure solution mais c’est mieux que l’absence de validation.
·   Clarté du texte. Il est important d'avoir un document court et clair. Un document trop volumineux ne sera pas lu par les décideurs. De plus il sera long à rédiger or, au moment d'un lancement d'une nouvelle étape, il faut aller vite. Il ne faut pas que la note de cadrage dépasse 3 pages. Au-delà c'est déjà un document d'analyse qui risque d'anticiper sur des travaux qui seront effectués ultérieurement. 
·      Avoir un modèle de référence. Pour aller vite il est pratique que le rédacteur ait à sa disposition un modèle de référence de la note de cadrage et qu'il adapte au cas particulier qu'il va prendre en charge. Cette collection de notes de cadrages de référence couvrant les différentes étapes du projet doivent être maintenu par la direction des études de la direction des systèmes d'informatique, et plus particulièrement par le responsable méthode, s'il existe.
·       Liste des tâches standards. D'un projet à l'autre on retrouve à peu près les mêmes tâches aux différentes étapes du projet. Il est pour cette raison souhaitable de mettre à la disposition des chefs de projets une liste des tâches standard correspondant à chaque étape ([3]). A défaut on peut s’inspirer du découpage d’un projet analogue.
·      Trouver la bonne maille. Il est recommandé de ne pas décomposer l'étape en tâches trop petites. En moyenne elles durent de 1 à 5 jours par tâche, rarement plus. On commence la rédaction d'un programme le lundi, on le test et le termine le vendredi. On a intérêt à regrouper les opérations voisines en une seule tâche par exemple la programmation, les tests techniques et la documentation d'un programme est une même tâche et non en trois. De même si un groupe de travail se réunit une fois par semaine pendant trois mois, soit environ 10 réunions, on considère que ce ne sont pas dix tâches mais une seule. Par contre la rédaction du cahier des charges, qui représente une grosse charge de travail, peut être décomposé en plusieurs tâches par exemple une tâche par chapitre important.
·     Ne pas oublier le style. Une attention particulière doit être portée au style de la note de cadrage. Il doit être simple et direct. On doit éviter d'employer des termes trop généraux car ils sont souvent source d'ambiguïté et donc de confusion.
·    S’assurer du consensus. Il est important de s'assurer qu'il existe un réel consensus de l’ensemble des intervenants et des différentes parties prenantes. Il est nécessaire qu'il y ai un accord sur les objectifs recherchés, les délais de réalisation et de mise en place. Enfin un accord explicite doit exister concernant la charge de travail nécessaire pour mener à bien l'étape.
·      Limiter le volume de travail. L'expérience montre qu'il n'est pas souhaitable de passer trop temps à établir la note de cadrage. Un professionnel expérimenté disposant d'un modèle et d'une liste des tâches standard n'a pas besoin de plus d'une journée de travail. Par contre il peut arriver qu'il passe plus de temps ensuite à la faire valider par l'ensemble des parties prenantes, surtout si elles sont réticences au projet.
Ces différentes règles sont simples à appliquer et ne posent pas de problèmes. Faut-il encore les appliquer. Or, très souvent, croyant bien faire, on en fait trop. On finit pas faire de la rédaction de la note de cadrage une étape avant celle qui est à réaliser. Ce n’est pas raisonnable. Il est nécessaire d’aller vite.

Rédaction et validation de la note de cadrage

Dans le cadre d'un projet il est nécessaire d'établir au moins quatre notes de cadrage  correspondant aux principales étapes :
·       L’expression des besoins souvent appelé l'étude de faisabilité ou business case. Dans certains cas on l’appelle la note de lancement.
·       Le cahier des charges correspondant à l'étape d'analyse fonctionnelle.
·      La réalisation. Elle peut comprendre une ou plusieurs étapes. Il peut y avoir aussi plusieurs itérations dans le cas de démarches agiles avec des livrables intermédiaires. 
·       Les tests. Cette note de cadrage particulière s’appelle souvent un plan de tests.
Mais souvent dans un projet il peut y avoir un nombre supérieur à quatre étapes. Dans ce cas on a un plus grand nombre de notes de cadrage.
L'expression des besoins et le cahier des charges peuvent être regroupés en une seule étape comme c'est notamment le cas dans les méthodes agiles. On note que chaque méthode s'est attachée à donner un nom particulier à cette étape : la phase d'exploration, l'initialisation, l'établissement de scénarios, le backlog, l'inception, le use case,... En fait ce sont tous des études de faisabilité plus ou moins complètes.
La maîtrise d’ouvrage a la responsabilité de s'assurer qu'avant le début de chaque étape une note de cadrage a été établie. S'il n'y a pas de chef de projet ou s'il a "oublié" de la rédiger le maître d'ouvrage peut rédiger ce document à sa place. Il arrive parfois que la direction informatique rédige la note de cadrage notamment pour les étapes de réalisation et de tests. Ce n'est pas la meilleure solution mais parfois "faute de grives on mange des merles".
Dans tous les cas le comité de pilotage joue un rôle important. Il a pour mission de s'assurer qu’à chaque étape une note de cadrage est rédigée par le chef de projet et qu'elle est conforme aux baselines du planning et du budget du projet. En cas de dérive par rapport à ces objectifs il est à même de prendre alors des décisions de redressement.

Aller plus loin que la note de cadrage

Dans le cas de projets complexes ou comportant des risques élevées on peut avoir une démarche plus structurée. C'est le rôle des Plans de Management de Projet souvent appelés PMP. C'est un document reprenant les différentes notes de cadrages correspondant aux différentes étapes du projet. Il est lancé au départ du projet. L'étape à venir est détaillée et les suivantes sont plus sommaires. Au fur et à mesure de l'avancement du projet des versions successives sont établies éliminant les étapes terminées et complétant le texte des étapes à venir. Souvent on isole en tête du document les dispositifs communs aux différentes étapes : le comité de pilotage, l'instance de coordination, la mesure de l'avancement, le suivi du budget, le tableau de bord du projet, ...
On peut aller plus loin avec les PDL, Plans de Développement de Logiciel, ou les PDP, Plans de Développement de Projet. Ce sont des documents plus ambitieux avec une définition de l'organisation du projet et de ses différentes instances de coordination, la définition des différents livrables, leurs règles de validation,.... Cette démarche concerne des projets complexes réalisés par plusieurs équipes se trouvant dans des pays différents et parlant des langues différentes, ayant des méthodes de travail différentes, …. On trouve des PDL ou des PDP dans le cas de développement de systèmes d'exploitation, des logiciels de gestion de bases de données ou des systèmes d'armes.

Au-delà de la note de cadrage

Il est aussi possible d'aller plus loin en mettant en place d’un PAQ : Plan d’Assurance Qualité. Dans ce cas on quitte le management de projet pour s'approcher d'une démarche qualité. Les deux approches sont assez voisines mais elles n'ont pas les mêmes objectifs ni les mêmes coûts. En effet la mise en place d'un PAQ a un coût non-négligeable. Il est de l’ordre de 10 % du coût du projet soit une somme équivalente au coût du management de projet. Mais si les risques de dérives ou de non-qualités sont élevés ce surcoût est parfaitement justifié. Ceci fait qu'on ne mettra en place un PAQ que si on estime que c’est nécessaire. Il est pour cela important d’évaluer les risques et les enjeux.

Mais dans la plupart des projets on n'a pas besoin de PMP, de PDL, de PDP ou de PAQ. Une simple note de cadrage par étape est largement suffisante. Par contre l'absence de ces notes de cadrage est une grave faiblesse qui peut se traduire par de graves dérives de charge, de délais et de coûts. L'absence de note cadrage explique les fragilités de nombreux projets trop souvent constatés. Les auditeurs chargés d'évaluer des projets le savent bien. La plupart des projets rencontrant de graves difficultés n'ont pas de note de cadrage. C'est un point d'audit bien connu.  





[1] - Par analogie avec le théâtre on parle de "la distribution des rôles". Ainsi chacun sait ce qu'il doit faire.
[2] - Cette solution peut poser quelques problèmes car lorsque le chef de projet est nommé il arrive qu’il constate qu’il n’a pas forcement la même vision des travaux à effectuer
[3] - Les entreprises ayant défini un découpage WBS (Work Breakdown Structure) standard il suffit de le reprendre tel quel.