24 avril 2006

Convaincre ou enseigner ?


Je fais écho aux conseils et questions soulevés par Christophe (http://urba-si.blogspot.com) dans ses articles traitant de l’action de convaincre, d’expliquer le pourquoi de l’urbanisation du système d’information, de l’approche par processus métier, de la définition de l’architecture du SI comme une activité stratégique du SI (et de l’entreprise), etc.

Je partage l’intégralité de son opinion mais je prône plus de fermeté.

Il est parfois nécessaire d’arrêter de s’excuser d’essayer de convaincre. Dans le secteur de la constitution ou de l’évolution du SI il n’est pas question de convaincre d’adopter l’urbanisation, mais bien de l’enseigner.
La discipline que nous exerçons, appelée architecture (ou urbanisation) des systèmes d’information, applique et met en pratique les concepts de modularité, de couplages faibles entre systèmes, de sécurité, de disponibilité. Elle n’impose aucun choix technologique (choix éditeur vs open-source, choix du langage, choix du framework, pourcentage de spécifique vs ERP, etc.), qui eux feront partie du domaine de la conviction.

Par exemple je parlais de Java précédemment, on est là dans la conviction. Mais pour ce qui est de l’architecture des SI notre métier consiste à enseigner la bonne démarche. Ceci implique d’autant plus de travail qu’enseigner c’est à la fois fédérer, partager, comprendre, répéter, contrôler, accompagner… et convaincre !

06 avril 2006

Différencier l'Architecte du Développeur

J'ai participé à une discussion autour de la question suivante : quelle différence entre un architecte et un développeur ?

L'architecte sait développer...

L'architecte, je l'ai déjà dit, est aussi proche de la technique que du métier. Cela signifie notamment que pour assurer l'intégration des éléments d'un SI l'architecte doit savoir prescrire des éléments techniques pouvant aller jusqu'au détail d'un code source : synchronisme/asynchronisme et nommage des méthodes ou services, type de distribution des applications, spécificités de d'implémentation des processus métier sur le BPM, norme de codage des échanges, respect de la sécurité, etc.

... le développeur aussi

Le développeur, quant à lui, est spécifiquement confronté à ces question car il est en charge de l'implémentation. Mais ce n'est pas à lui de prendre systématiquement ces décisions techniques, au risque d'être le seul à maîtriser l'architecture de l'intégration des composants applicatifs du SI, et donc d'en contraindre les prochaines évolutions.

Le rôle de l'architecte est donc de répondre à ces questions avant le début des développements. Les réponses viennent des interviews des gens de métier réalisées par l'architecte : quel usage sera fait des services ? qui verra les échanges ? qui pilotera les processus métier ? quelle sera la prochaine application à intéger ? sur quels services métier ? modifiant quels procesuss métier ? etc.

Les spécificités de la SOA et du BPM sont de la responsabilité de l'architecte. Leur implémentation est de la responsabilité du développeur.

Rôle ou Acteur ?

L'objectif n'est pas d'avoir systématiquement deux personnes (acteurs) même pour les petites structures, mais bien deux types d'activités (rôles), bien identifiés. Cela étant, l'augmentation de charge aidant, les deux rôles tendront à s'incarner dans deux acteurs différents.

Analogie

L'analogie avec le monde du bâtiment est assez bonne : sans architecte, peut-on vraiment construire une maison ? Il faudra au moins s'être posé les questions de l'architecte avant de démarrer. L'architecte aura écouté votre besoin, il les aura traduit en exigences techniques à destination de l'entrepreneur, et il pilotera la construction pour s'assurer que vos besoins se transforment en maison...

Merci à Emmanuel Collin, consultant BEA.

J2EE Tech Tips

Comment utiliser l'API JavaMail ?
C'est quoi J2CA ?
Comment mettre en oeuvre JAXB ?

Les J2EE Tech Tips sont disponibles, vous pouvez même les recevoir par mail.
http://java.sun.com/developer/EJTechTips/