vendredi 18 décembre 2009

Le fossé technique-fonctionnel

Force est de constater qu'aujourd'hui de plus en plus de projets informatiques sur la production logicielle débouchent sur un chaos total caractérisé particulièrement par la non-satisfaction des utilisateurs finaux et des délais de réalisation sans cesse prolongés, Et ce en dépit d'une forte croissance des technologies de développement logiciel. Les frameworks de développement pullulent partout et il est même difficile de faire un choix. Il y a quelques années nos ainés utilisaient des outils/langages basiques comme basic, cobol, vb etc. mais produisaient des logiciels de grande qualité, c'est ce qui explique d'ailleurs l'entêtement de certaines entreprises à ne pas se débarrasser de leurs vieux logiciels sur écran console malgré la pauvreté des IHM. Elles se disent satisfaites de ces logiciels qu'elles trouvent bien adaptés à leurs besoins fonctionnels. Il faut dire que nos ainés étaient beaucoup plus préoccupés des aspects fonctionnels que nous. Ils passaient beaucoup de temps sur les sujets de réccueil de besoins, de spécifications et de modélisation que sur le développement. Aujourd'hui la tendance des équipes de production logicielle est plutôt vers la maîtrise des technologies plutôt que la maîtrises des méthodes de récceuil de besoins ou de modélisation. Les informaticiens d'aujourd'hui se sentent plus fiers de connaître les plateformes JEE, .Net ou PHP5 que de connaître les méthodes RUP, 2TUP. A mon humble avis c'est là où le bat blèsse, les équipes de production logicielle sont plus techniques que fonctionnelles et développent des logiciels à la pointe des technologies mais fonctionnellement inadaptés aux besoins des utilisateurs finaux. Le fossé technique-fonctionnel s'agrandit de plus en plus en faveur de la technique et ce au grand désarroi des consommateurs de logiciels.

mercredi 9 décembre 2009

SOA et BPM: Un couple presque parfait!

Une bonne gestion des processus métier contribue beaucoup dans l'accroissement des performances de l'entreprise en ce sens qu'elle permet de réduire énormément les pertes de temps et d'augmenter l'efficacité opérationnelle à travers l'élimination des tâches n'ayant aucune valeur ajoutée. Mieux encore, lorsque les processus sont bien cartographiés, automatisés et pilotés cela donne une visibilité claire sur les performances de l'entreprise et les points à améliorer. Pour ce faire la gestion des processus métier gagne à s'appuyer sur des outils et méthodes éprouvés. C'est ce qui explique l'orientation des éditeurs d'outils BPM vers l'adoption de langages standards de modélisation de procédures basés sur XML et l'utilisation des web services comme moyen d'interfaçage avec les système d'information d'entreprise. Les processus métiers utilisent de plus en plus les architectures orientées services (SOA).
En effet SOA est devenu la pierre angulaire de l'urbanisation des systèmes d'information au vu de son apport dans l'interopérabilité et l'intégration applicative; depuis que les web services XML connaissent un essor tel qu'ils s'imposent comme les fondamentaux d'une architecture pérenne. L'utilisation de ces architectures dans la gestion des processus métier apporte aux entreprises une grande souplesse dans l'interaction entre ceux-ci et le système d'information.
Par exemple un processus automatisé de gestion de notes de frais est beaucoup plus efficace lorsqu'il communique directement avec le système de gestion de paie. Nous pouvons imaginer aussi un processus dont les différents nœuds de traitement interagissent avec les éléments du SI, il est évident que pour des raisons de souplesse et de réutilisabilité ce processus est plus facilement optimisable si ses interfaces avec le SI sont basées sur des web services. La cerise sur le gateau serait que ce même processus puisse être ré-utilisé dans un autre processus simplement comme un service, eh bien cela est rendu possible grâce au langage BPEL4WS. En effet l'orchestration des processus métier grâce à BPEL est l'autre trait de charme qui a facilité et facilite encore le rapprochement de SOA et BPM qui donnent l'air d'être un couple presque parfait.

lundi 2 novembre 2009

Histoire d'un Lancement de SI chez un Opérateur Fixe/Mobile/Internet

Le 21 Avril 2008 j'arrive chez un opérateur FMI durant son lancement from scatch en tant que chef de projet SI. Lors de mon entretien avec le DSI les objectifs qui m'étaient assignés consistaient d'abord à suivre la mise en place du SI, en faire la recette et gérer les anomalies et évolutions en relation avec un intégrateur. C'était une activité difficile d'autant plus que le SI était composé de sous-systèmes qui n'avaient jamais été intégrés ensemble d'où de fréquents problèmes d'interfaces. Ce SI était composé d'un CRM, d'un système de provisionning et d'activation, de deux plateformes de médiation (Active et Passive), d'un système de valorisation et de Billing. Tout ceci est classique pour un SI d'opérateur Telecom, seulement l'intégration avait été difficile.

Les vrais problèmes avaient commencé après les installations et paramétrages c'est à dire après le lancement, sur la gestion des bugs car il y en avait beaucoup. Plusieurs fonctionnalités importantes ne marchaient pas. On ne pouvait pas par exemple faire les opérations de changement de SIM ou même de MSISDN. En plus, une fois qu'un client a choisi une offre il ne pourra plus la changer car les changements d'offre n'étaient pas possibles ni en montée ni en descente de gamme. Ce SI était vraiment une catastrophe informatique. Lorsqu'on lance une opération il faut croiser les doigts pour qu'elle arrive à terme.

Vous comprenez bien que j'étais dans une situation difficile en face d'utilisateurs loin d'être satisfaits et d'un intégrateur peu réactif. Chaque jour nous découvrions de nouvelles anomalies et je les reportais via notre process de gestion d'anomalies. Je m'assurais que toutes les anomalies étaient tracées et prises en compte. Je passais des heures au téléphone avec le chef de projet MOE à décrire les anomalies et à négocier des dates de livraison de correctifs et/ou évolutions.

Quand j'ai la chance d'avoir une nouvelle livraison la recette sortait d'autres nouvelles anomalies, des régressions. Je passais des journées très stressantes à contourner les anomalies surtout concernant les opérations quotidiennes sur le CRM, le Bus, la médiation, etc. Et quand arrive la fin du mois il faut veiller des nuits entières pour corriger les factures, passer des journées entières pour les imprimer. Chaque cycle de facturation était un calvaire. Pour couronner le tout le GPRS/EDGE n'était pas facturé parce que l'interface entre le GGSN et la plateforme de médiation active n'était pas fonctionnelle. J’avais réuni une grosse équipe d'experts et on passait plusieurs heures de conférence téléphonique pour tenter de résoudre le problème. Il faut dire qu'avec ce SI chaque semaine j'avais une nouvelle livraison soit pour corriger des anomalies soit pour apporter une évolution pour permettre une fonctionnalité prévue dans le document d'architecture fonctionnelle mais qui n'a jamais marché. De livraison en livraison on était arrivé la trentième version du CRM pou avoir un minimum de confort dans l’usage. Mes clients internes avaient commencé à desserrer les mines, ils avaient de plus en plus confiance à ce SI et nous avons même été retenus pour un prix SI du groupe. Aujourd’hui je regarde ces temps passés sur ce SI avec beaucoup de fierté et de réjouissance. Depuis, je suis passé à autre chose: L'automatisation des processus métier et la gestion des projets de services à valeur ajoutee.

samedi 24 octobre 2009

Gestion du relationnel pour les responsables Informatiques

Lorsqu'on se trouve en tête d'une cellule informatique la gestion du relationnel est très importante car elle influence en grande partie l'atteinte des objectifs de la cellule. Le responsable informatique est souvent en relation avec trois catégories de personnes en l'occurrence les clients internes de l'entreprise, les fournisseurs et ses propres collaborateurs.
Les clients internes attendent du service informatique que celui-ci l'aide dans l'atteinte des objectifs de l'entreprise en leur mettant à disposition des moyens de communication adéquats, des matériels et logiciels fonctionellement adaptés à leurs besoins et surtout un support technique réactif.
Le client interne tout comme le client externe a aussi ses caprices qu'il faut savoir gérer à travers une communication sereine et rassurante, des procédures claires et compréhensibles d'accès aux services informatiques. C'est dans l'objectif de satisfaire ses clients internes que le responsable informatique fait appel à des fournisseurs externes pour la fourniture de matériels, logiciels et services. Face à ces fournisseurs le R(S)I exprime ses besoins et garantit les plannings de livraison en gardant toujours à l'esprit un rapport qualité/prix intéressant. Pour ce faire il doit donc avoir de bonnes capacités de négociation et un bon réseau professionnel pour l'aider dans le choix.
Pour atteindre ses objectifs le R(S)I doit surtout s'appuyer sur ses collaborateurs. Pour la réussite de cette relation, le R(S)I doit se conduire en bon manager. La motivation des collaborateurs, leur adhésion au projet, leur responsabilisation ainsi qu'un climat de confiance mutuelle permettent au R(S)I d'assurer une bonne relation avec ses collaborateurs.
Le R(S)I étant un acteur important dans la réalisation des objectifs communs à toute l'entreprise, il est important qu'il aie un relationnel facile qui s'inscrive dans ce sens.

vendredi 7 août 2009

Le Business Process Management

BPM, Qu’est-ce que c’est ?

Le BPM ou Business Process Management est la traduction anglaise de la gestion des processus d’affaires. Le BPM comprend les activités réalisées par une organisation/entreprise pour optimiser ses processus métier.
Un processus métier est un ensemble d’activités et de tâches produisant de la valeur à l’organisation ou à ses clients. Le terme de Workflow fait référence au routage des tâches et/ou documents dans le processus d’affaire.
Le BPM est une collection de services et d’outils qui supporte les interactions humaines et applicatives avec les processus métier.
Les organisations utilisent les systèmes BPM pour améliorer les performances de leurs opérations car ceux-ci permettent le routage des flux entre les employés de façon optimisée en effaçant toutes les tâches n'ayant aucune valeur ajoutée comme les transferts de données et de documents, la routine des décisions, etc.
Un exemple classique de processus métier est la gestion des demandes d’achats dans une entreprise. Tous les départements de l’entreprise font des demandes d’achat, la DAF voudrait avoir des stylos et du papier, la DSI voudrait avoir de nouveaux moyens informatiques, etc.
Ce type de processus peut être optimisé via un système de BPM et améliorer les performances du personnel en leur évitant les taches répétitives, source de perte de temps et d’énergie énorme, et ainsi leur permettre de se concentrer sur leurs activités ayant une plus value.

Le cycle de Vie BPM

Le cycle de vie de la gestion des processus métiers comprend l’analyse et l’optimisation des processus, la modélisation et la conception, le développement et le déploiement de l’application, le monitoring et la gestion des performances des applications déployées.

Composants des solutions BPM

Les solutions BPM comportent en général les composants suivants:

* Environnement de Conception: Permet de modéliser les flux, les règles de routage à travers un flow chart. Une fois le processus modélisé, cet outil permet de générer une application minimale qui pourra ensuite être complété par un développement supplémentaire.
* Moteur de Workflow : C’est le cœur du système. Le moteur exécute le processus en routant les flux vers les destinataires appropries suivant les règles définies dans la modélisation des flux.
* Outils de Monitoring et de Reporting : Permet de superviser l’exécution des processus et la gestion des reportings afin de mesurer la performance des processus.
* Outils d’Intégration: En se basant sur un ensemble de connecteurs les solutions BPM interagissent avec le système d’information existant de l’entreprise et deviennent ainsi une partie intégrante de celui-ci au lieu de rester comme une application isolée.

jeudi 30 juillet 2009

L'Integration des applications du SI

L'intégration d'applications a pour objectif la mise en place d'une infrastructure technique permettant une coopération automatisée et sécurisée entre les différentes applications de l'entreprise. Pour ce faire l'entreprise doit avoir une démarche et des solutions techniques homogènes permettant d'industrialiser cette coopération. Les Services Web et les EAI répondent aux besoins de d'intégration d'applications dans les SI.

EAI et Webservices

L'EAI permet de faire communiquer les applications d'un SI a travers un système global plutôt qu'en mode point a point en s'appuyant sur certains outils et méthodes.
L'EAI s'appuie sur un noyau vers lequel convergent tous les flux. Ce noyau permet les taches suivantes:
  • Interface avec chacune des applications via des connecteurs spécifiques aux différentes applications.
  • Le routage des flux, ce qui nécessite en amont une modélisation des échanges inter applicatifs possibles.
  • La transformation des données afin d'assurer leur compréhension pour les applications utilisatrices.
Ainsi l'EAI propose a posteriori une intégration des applications internes de l'entreprise sans pour autant assurer l'interopérabilité avec les applications externes.
Les méthodes des Web services s'appuyant sur des standards technologiques répondent a ce besoin d'intégration des applications non seulement en interne mais aussi en externe.
Les services web s'appuient sur une communication point a point avec un langage standard et constituent ainsi une solution idéale pour l'intégration d'applications.
On présente souvent les web services comme une solution concurrente de l'EAI tandis que fonctionnellement ils sont complémentaires.
L'EAI est une démarche d'intégration en aval des applications internes alors que les web services proposent une démarche permettant en amont d'agréger les applications de plusieurs entreprises entre elles.

mardi 9 juin 2009

Interopérabilité

L'interopérabilité est le maitre mot pour l'intégration des applications dans le SI. De plus en plus d'acteurs du monde logiciel s'intéressent aux web services car l'adoption des standards comme SOAP, WSDL et UDDI représente une avancée significative et assure ainsi l'interopérabilité des applications hétérogènes. Pour que les webservices garantissent cela il faut qu'ils soient: Tant indépendants des plateformes, des applications et des langages de programmation que capables de communiquer avec d'autres.
L'interopérabilité caractérise le paradigme des services web de façon intrinsèque et on trouve cette interopérabilité a tous les niveaux conceptuels du fonctionnement d'un Web service a savoir:
  • Interopérabilité fonctionnelle grâce a une architecture claire basée sur SOA.
  • Interopérabilité technique grâce a une infrastructure basée sur des protocoles standards
  • Interopérabilité opérationnelle grâce a un mécanisme de description des interfaces basée sur WSDL
Il faut dire que l'interopérabilité exige un consensus, une compréhension claire des exigences et une adhésion de tous les acteurs. Ceci est a l'origine de la création du WS-I (Web Service Interoperability) qui n'est pas un groupe de standardisation mais agit comme un point d'intégration des standards générés.

dimanche 7 juin 2009

Ma rencontre avec les webservices XML

C'est clair que nous sommes rentrés de plein pied dans l'ère des webservices,une nouvelle technologie qui révolutionne le web d'aujourd'hui. Ma découverte de cette technologie date de 2005 ,nous savions déjà faire des applications web(PHP,JSP&Servlet...) mais pas de webservices. En ce moment c'était vraiment la mode partout, chacun voulait en implémenter. Quant à moi je les ai utilisés comme moyen d'intégration d'applications. En effet je devais faire un système de E-recrutement basé sur deux plateformes (J2EE et .Net) mais qui devait apparaître au end user comme une application unique et en même temps composer les différentes fonctionnalités pour avoir de la valeur ajoutée. C'est ainsi que les web services me sont tombés dessus. Ma première difficulté était de pouvoir rassembler les outils qui étaient un peu dispersés(Eclipse et différents plugins Axis,VS.Net) et en faire mon petit déjeuner matinal. Ensuite vint la composition des webservices via BPEL4WS (Business Process Execution Langage For Web services) qui n'était pas encore standardisé et donc posait quelques difficultés d'INTEROPERABILITE. Kahwa sur Kahwa et ce durant des nuits entières j'étais arrivé à satisfaire un peu mon encadreur de projet (BELKHODJA Rafik),un Monsieur très perfectionniste qui a toujours quelques choses à dire. Ah oui,il m'a encore demandé de profiter de ce projet pour implémenter un annuaire UDDI et un client Web pour ce dernier. Non pas ça encore Professeur!!! je pleurnichais presque au retour à la cité universitaire après notre rencontre. J'ai pris mon courage à deux mains et me suis lancé dans jUDDI et l'API UDDI4J d'IBM. Heureusement leur intégration est si simple, vraiment quelle simplicité!!! Je me balançais enfin vers la fin,l'été aussi arrivait et le soleil devenait un peu plus généreux et mon encadreur un peu moins exigeant. Voilà comment ma rencontre avec le monde des web services s'est effectué,un chemin que je continue à suivre, Vas savoir comment!!!!!!!!!!

Pourquoi utliser un CMS?

Le développement web a fait tellement d'avancées qu'actuellement il n'est pas necéssaire d'être un expert en informatique pour avoir son propre site web sur la toile. En effet il existe des systèmes permettant de fournir moins d'éffort sur la présentation du site pour se concentrer plus sur la gestion du contenu, il s'agit des CMS pour CONTENT MANAGEMENT SYSTEM en Anglais. Parmi ces CMS les plus populaires dans le monde opensource sont PHPNuke,SPIP,Joomla,etc. Personnelement ma préférence va vers SPIP gràce à l'indépendance que ce dernier offre dans le choix de sa présentation avec les squelettes. Quand je parcours Internet je vois beaucoup de sites dévelopés avec des CMS libres. Cependant il faut noter que beaucoup ne respectent pas les copyrigth des auteurs de ces CMS,ce qui est regrettable car l'honnêteté intellectuelle est sacrée dans un monde moderne comme le nôtre.

L'open source est une aubaine,profitons en!

Les logiciels libres ont atteint de nos jours un niveau de maturité assez intéressant ,tel que même dans les pays développés leur utilisation croît de jour en jour. Grâce au libre l'accès aux NTICs se démocratise de plus en plus. Les PME/PMI ont désormais la possibilité de se doter d'infrastructures informatiques éfficaces et à moindre coût. J'illustre cela par un exemple concret inspiré de la réalité de chez nous. Une PME désirant informatiser sa structure pourrait avoir besoin des outils suivants pour l'aspect IT pure, Un serveur de base de données,un serveur web/mail/dns, un firewall et proxy pour sécuriser et accélérer son accès à Internet, et pour l'aspect metier d'un CRM, un ERP, d'outils BPM, d'outils de gestion de projet, d'outils bureautiques, etc. Et Tout ceci est possible à moindre frais en adoptant une solution basée sur le libre. On pourrait avoir la combinaison suivante:
  • Serveur de BD: MySQL, PostgreSQL
  • Serveur Web/Mail/DNS: Linux(debian), Apache,Postfix,Bind9
  • Firewall/Proxy: Linux+ipatbles,Squid
  • CRM: SugarCRM
  • ERP: TinyERP, Compiere
  • Outils BPM: jBPM, Bonita
  • Outils de gestion de projet: GanttProject, Openworkbench
  • Outils Bureautiques: Abiword, openOffice
Cette solution n'est qu'une parmi tant d'autres,et le monde opensource regorge d'autres possibilités toutes aussi performantes qu'il n'est pas nécessaire de citer ici. Alors qu'attendons nous pour y aller?