FLASH INFORMATIQUE FI



Utilisateur 2.0


Web 2.0, un nouveau départ entre utilisateurs et informaticiens



Web 2.0, a new start between users and computing experts.


Laurent KLING


JPEG - 10.9 ko

La Révolution française est le point de départ d’une révolution des idées et des droits. Adoptée le 28 août 1789, la Déclaration des droits de l’homme et du citoyen est une des pierres du corpus qui a permis de bâtir notre civilisation.

Internet, une citoyenneté universelle

Pour l’informatique, l’ancien régime est celui des technocrates qui pensent pouvoir définir dans le secret des alcôves l’organisation du travail et la manière de présenter l’information.
Il y a 30 ans, en 1980, l’informatique individuelle se composait d’espèces maintenant éteintes (uniquement les nostalgiques se souviennent du TRS 80 de RadioShack). Pour les aficionados, le PC reste à inventer (en 1981) et le Macintosh est encore dans les limbes (il n’apparaît qu’en 1984).

JPEG - 10.6 ko
l’informatique sérieuse en 1980, un IBM 370-195

À cette époque, l’informatique était représentée par les gros systèmes du type de l’IBM System/370, qui est né en 1970 ! Naturellement, uniquement une caste d’initiés avait accès au Saint des Saints, la salle machine. Les programmeurs se distinguaient par leurs paquets de cartes perforées où la quantité d’informations pouvait encore se mesurer physiquement –une carte représentant une ligne de programme–.
En 1990, notre monde moderne prend forme, les trois grands écosystèmes actuels existent :

  • les gros systèmes, pardon centres de calcul,
  • les ordinateurs individuels PC et Macintosh,
  • Internet, sans le Web, mais avec déjà la messagerie et les News.

La gestion informatique se décomposait entre l’informatique sérieuse, celle pratiquée dans les centres de calcul et celle nettement plus empirique des ordinateurs individuels. Naturellement, les frontières étaient en réalité moins étanches.
Internet, pour les privilégiés qui avaient accès à ce médium, était déjà un formidable instrument de communication. Il offrait la possibilité de lire les News, de poser une question naïve, et d’obtenir presque immédiatement un RTFM, Read The Fucking Manual, que la décence me fait traduire en veuillez lire le manuel avant de poser la question. Une fois cette étape essentielle franchie, interagir avec une communauté ouverte sans frontière permettait de dialoguer en direct. Soumettre un bug au concepteur d’un logiciel et obtenir le lendemain par e-mail une version corrigée, bref le rêve.

Web 2.0, une nouvelle citoyenneté

En 2004 se cristallise la notion de Web 2.0 souvent associé à Ajax. En simplifiant, le Web 2.0 offre aux usagers la liberté d’interagir avec les sites Web et dépasser le stade de lecteur pour atteindre le rôle d’acteur. La conséquence immédiate de cette nouvelle manière d’interagir est de propulser chaque usager en décideur de technologie. Il butine, teste les fonctionnalités, intègre ses données et demande à son responsable informatique comment sauvegarder son contenu ou créer la colle pouvant réunir l’ensemble de ses outils réels et immatériels. Après quelque temps, la relation avec l’informaticien prend une tournure étrange, de prestataire de service nous devenons intégrateur de solutions personnalisées, une gageure ?

Un modèle de service en mutation

Dans le monde classique, le responsable procède de cette manière pour un projet informatique :

  • il identifie un besoin,
  • il met en place un groupe de travail,
  • un cahier des charges est défini,
  • un appel d’offres est ouvert,
  • les soumissionnaires fourbissent un assemblage de leurs technologies,
  • le comité choisit l’heureux élu,
  • le cahier des charges en adéquation avec le matériel va déterminer une définition du service SLA (Service Level Agreement),
  • le service est mis en place,
  • une phase de test est réalisée,
  • le service est ouvert aux usagers,
  • la documentation est mise en ligne.

Cette démarche semble parfaite, elle possède un inconvénient intrinsèque, le temps. Au minimum, un tel processus se déroule sur 1 à 2 ans. Le cycle de vie des composants est particulièrement court, un changement tous les 6 mois, une évolution technologique majeure toutes les 18 à 24 mois ! Le risque majeur ne se situe plus dans la qualité du résultat, mais dans son adéquation avec les demandes actuelles.

Informaticien ou oracle

Dans l’antiquité grecque, confronté à ce problème de stratégie, j’aurais volontiers interrogé les pythies et offert quelques offrandes pour m’assurer que le choix était bon. En 2010, je vais essayer de comprendre l’évolution de deux produits, Sidekick et iPhone.

Sidekick est peu connu, son histoire est singulière

Une startup, Danger –un nom prémonitoire– met sur le marché en 2002 un terminal mobile qui intègre un clavier complet, une utilisation horizontale et un accès à Internet avec la technologie GSM, bref un précurseur des portables ultra compacts et de l’iBook ! En avril 2008, Danger est racheté par Microsoft. Un des projets compris dans l’escarcelle est un client entièrement graphique intégrant les outils sociaux (Facebook, Twitter et mySpace) et la messagerie. Microsoft décide de réécrire l’entier du code en utilisant sa propre technologie .net, entraînant un retard de 18 mois, le résultat fut le feu Kin, annoncé en grandes pompes le 12 avril et abandonné en catimini le 30 juin 2010 !

JPEG - 10.6 ko
Kin One, un projet avorté en 42 jours


Sidekick offrait une architecture intéressante en 2002, les données sont conservées dans l’appareil, avec une copie disponible dans les serveurs de la société. En conséquence, une perte de l’appareil ne compromettait pas les données de l’usager. Le 10 octobre 2009, T-Mobile le fournisseur d’accès américain distribuant Sidekick, avertit les usagers qu’il ne fallait pas éteindre l’appareil aux risques de perdre l’ensemble des données.
Cet avertissement cachait une situation nettement plus grave, la corruption de données de 800’000 utilisateurs. Le processus de consolidation des actifs immatériels de Danger dans l’infrastructure de Microsoft se solda par la perte des données, news.bbc.co.uk/2/hi/technology/8303952.stm.

PNG - 3.2 ko
cycle de produit chez Sidekick et iPhone

La comparaison du cycle de vie est éloquente, Apple offre une double évolution, matériel et logiciel chaque année. Cerise sur le gâteau, les produits antérieurs peuvent être mis à jour. L’usager possède la garantie de posséder un appareil avec les dernières fonctionnalités, naturellement en tenant compte des limites technologiques de chaque modèle.

Informaticien et Kai zen

La gestion de projet informatique n’est pas aussi éloignée qu’on l’imagine de celle de l’industrie. Le Japon est doublement éloigné, par la distance aux matières premières, et par celle de ses clients. Avec ces contraintes, une qualité maximale n’est pas un objectif supplémentaire, mais un principe élémentaire, reste à trouver la méthode optimale.
Ingénieur chez Toyota, Taiichi Ōno est le père de cette révolution du contrôle qualité comprise comme un tout. Cette méthode se décompose en une méthodologie Kai zen qu’on peut traduire en amélioration continue.
Pour éviter des retours, donc des pièces défectueuses, il est nécessaire d’assurer la qualité la plus élevée possible au départ. Naturellement, cette qualité n’est pas obtenue immédiatement. C’est l’entrée dans un cercle vertueux d’améliorations successives, l’individu situé au coeur du dispositif retrouve sa place primordiale.
Ce concept se décline selon 5 axes (source WikipediaTaiichi Ōno) :

  • zéro délai, pas d’attente entre chacune des phases de production,
  • zéro stock, pas de production d’élément superflu,
  • zéro papier, par la suppression de la bureaucratie interne,
  • zéro défaut, aucune pièce défectueuse,
  • zéro panne, un entretien préventif du matériel évite la panne et la paralysie qu’elle entraînerait.

Pour un informaticien, ces éléments sont familiers, voici ma transcription :

  • zéro délai, le travail est en flux continu, une séance par semaine au maximum, les comités sont bannis,
  • zéro stock, pas de fonction superflue, uniquement les fonctions primordiales,
  • zéro papier, chacun est responsable de son code, pas de division du travail,
  • zéro défaut, les bugs sont éliminés dès le départ, les modules doivent être testés,
  • zéro panne, les données pouvant être corrompues, le contrôle de qualité est intrinsèque, la documentation doit toujours être disponible.
    Au départ, ces principes semblent impossibles à suivre, Steve Jobs a récemment livré deux des secrets de l’efficacité d’Apple : pas de comité, une séance par semaine !

Python, un langage Kai zen ?

Mon travail à la jonction entre structures administratives et outils informatiques me confronte régulièrement à la gestion des utilitaires. À titre d’exemple, voici la démarche utilisée pour synchroniser les usagers et le stockage :

2002 :
création de la synchronisation entre Active Directory et le bottin de l’EPFL avec un langage propre à Windows, VB script.
2005 :
intégration de la gestion du stockage dans cet outil.
2009 :
fin de vie de la synchronisation Active Directory, quid du stockage ?

Quelles caractéristiques pour un système de production idéal

Régulièrement, il faut remettre en chantier son environnement de travail pour bénéficier de l’expérience et de l’éclosion des nouveaux produits.

Cycle de développement :

  • offrir très rapidement un outil fonctionnel,
  • intégrer des mises à jour rapides,
  • être résilient, c’est-à-dire capable de résister à des états erronés,
  • documenter automatiquement son action.

Langage de programmation

  • offrir une syntaxe agréable à lire (et relire),
  • disponible dans 3 plates-formes (Macintosh, PC Windows et Linux),
  • être interprété (ne pas nécessiter de phase obligatoire de compilation),
  • intégrer la technologie objet,
  • disposer d’une communauté active,
  • disposer d’un environnement de développement intégré (IDE, Integrated Development Environment).

Après quelques essais et la lecture de comparatifs, Python m’est apparu comme un candidat crédible, il fallait cependant le mettre à l’épreuve des faits.

Une charge de travail doublée ?

En fin de vie d’un produit et devant la nécessité de mettre en place son successeur, il existe le risque de devoir faire deux fois le travail :

  • maintenir l’existant,
  • créer son remplaçant.
PNG - 5.9 ko
abandonner des projets pour en accepter des nouveaux


En acceptant les nouveaux projets, il est certain que rapidement la charge de travail devient intenable, il existe deux solutions :

  • abandonner progressivement les projets peu utilisés, un cas de conscience,
  • augmenter les ressources, très hypothétiques.

Pour éviter ce piège qui n’est pas supportable sur longue période, j’ai opté pour une approche Kai zen :

  • limiter le travail au minimum, uniquement les fonctionnalités essentielles,
  • se concentrer à la réalisation de celles-ci,
  • passer au processus d’amélioration suivant, c’est-à-dire pour la série de fonctionnalités suivantes,
  • abandonner les projets obsolètes.

Cette méthode évite une période transitoire trop importante qui paralyse le système et engendre un stress élevé ! Pour l’usager, la démarche est transparente, il ne se rend pas compte des changements. De son point de vue, qu’importe la quincaillerie si le service ne se modifie pas, l’évolution technologique devient transparente.

Python offre des clés parfaites pour cette approche :

  • raffinements successifs dans l’utilisation des fonctions,
  • approche entièrement objet,
  • vérification rigoureuse à l’exécution du code,
  • une richesse de bibliothèques de fonctions particulièrement impressionnante, on a parfois le tournis devant tant de prodigalité.

Comme exemple d’application, ma dernière amélioration est la possibilité d’envoyer à chaque usager un rapport personnalisé de son utilisation du stockage, un projet souvent repoussé faute de temps.
J’avais décomposé cet apport en deux phases :

  • envoyer un mail personnalisé sans caractère accentué, en ASCII 7 bits,
  • si possible, envoyer un mail avec des caractères accentués avec MIME.

Le pseudo-code est : lire le fichier source intégrant les mots-clés à remplacer, générer la liste d’équivalence, remplacer chaque mot-clé.
Avec Python, la version Ascii :

f = open(tpl_file, "r")<br>
# Read the entire contents of a file at once.<br>
tpl = f.read() # create the Template object from the file<br>
mail_template=Template(tpl)<br>
...<br>
values = {'name':record.name,<br>
            'institut':record.institut,<br>
            'labo':record.lab,<br>
            'labo_strip':labo_strip}<br>
# transform the template<br>
mail = mail_template.safe_substitute(values) <br>

La seule différence pour la version étendue est l’ouverture du fichier, le reste du code est le même :

f = codecs.open(tpl_file, "r", encoding="utf-16")

Le temps dévolu au codage est limité au strict minimum, permettant d’offrir une amélioration continue du processus.

Augmenter la réactivité

Dans ce monde en constante mutation, la notion de service devient plus importante que les outils employés. En général, le citoyen ne désire pas connaître les arcanes sous-jacents, encore moins les incantations magiques nécessaires au fonctionnement. Son unique désir est de disposer d’un service simple et fiable.
Voici une version allégée du cycle de vie d’un service :

  • les citoyens communiquent leurs désirs, leurs envies, peut-être existe-t-il un site Web 2.0 qui propose une ébauche du service souhaité,
  • un service est défini, la description est immédiatement disponible,
  • avec les technologies disponibles, il est créé dans une version minimale,
  • la documentation complète est mise en ligne avec un espace de dialogue,
  • le service est ouvert aux usagers.

Le processus est répété pour assurer une évolution constante du service. La technologie utilisée pour mettre en place le service n’est pas visible, elle peut se modifier pour tenir compte de l’évolution sans conséquence pour l’usager.

Web 2.0, un nouveau départ

Pour les informaticiens

La possibilité de cacher l’infrastructure est un progrès indéniable. L’architecture technologique rigide présentée directement aux utilisateurs se métamorphose en un service dont l’interface Web est la seule manifestation de son existence. Par reliquat de l’absence de confiance dans nos méthodes et nos outils, nous créons des goulots d’étranglement par la validation manuelle. Le paradoxe existe que celle-ci déclenche souvent un processus automatisé. Le contrôle manuel ne devrait être utilisé que pour les exceptions, pas pour le fonctionnement normal. Avec des processus entièrement automatisés, nous gagnons une plus grande autonomie en limitant au maximum les activités de faible valeur ajoutée pour mieux nous concentrer sur les éléments de haut niveau.
Notre travail se trouve valorisé par la mise à disposition immédiate des usagers des services et nous permet de nous concentrer sur leurs améliorations continues.
Dans ce modèle d’améliorations continues, nos services peuvent mieux coller aux désirs des usagers qui sont nos premiers clients.

Pour les utilisateurs

Avec la pratique quotidienne du butineur, telles des abeilles nous passons de fleur en fleur de la connaissance et effectuons une danse complexe dans les réseaux sociaux pour indiquer les outils qui sont le plus utiles. Cette manière de procéder est nouvelle, nous devenons acteurs de nos activités informatiques et cessons d’être des otages de la technologie. Il est probable que nous sommes toujours sensibles aux charmes des sirènes du marketing, mais avec un avantage immédiat, la capacité de comparer et d’exprimer notre avis. Cette démocratie retrouvée doit permettre un dialogue plus fécond et éviter d’arriver dans un cul-de-sac par l’absence de communication entre les clients et les prestataires de service.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.