The Oatmeal : réunion au sommet

Il y a 15 jours, le 17 février, le président américain Barack Obama s’est rendu à San Francisco pour rencontrer les dirigeants des plus grands groupes technologiques américains.

Alors ok Microsoft c’est à Redmond, dans la banlieue de Seattle, et c’est pas la porte à côté de San Francisco, mais quand même...

The Oatmeal : Obama et Ballmer

Il y a une faute d’orthographe en page 3

Une amie est venu me raconter une histoire qui m’a rappelé quelque chose que moi aussi j’ai déjà vécu, une histoire qu’on a tous déjà vécu et qui nous a tous épuisé moralement.

C’est l’histoire d’un cahier de procédure transmis de génération en génération, comprendre de prestataire en prestataire successif, sensé décrire la bonne marche du service à gérer pour la mission.

L’histoire ne dit pas si le cahier avait été initialement bien réalisé, personnellement j’en doute, toujours est t’il qu’à force d’édition par des gens moins motivés les uns que les autres, le cahier était devenu plus un objet symbolique (alias le bâton merdeux) qu’un réel guide pratique et utile.

Il était tellement loin de la réalité ce cahier que quand il a été demandé à mon amie de le mettre à neuf, elle s’est empressée de repartir de zéro pour constituer le cahier qu’elle aurait souhaitée trouver à son arrivée. Elle a donc relevé ses manches et après une semaine d’audit acharné et de recompilation astucieuse (oui je suis orienté) elle s’est enfin retrouvé avec un document de 5 pages, concis, qui expliquait tout le nécessaire et suffisant pour faire fonctionner le service. Elle se dépêche donc de le mettre en forme et le transmet quelques jours en avance à sa chef.

Comment l’a-t-on remercié de son investissement dans sa tache ?

Sa chef : « Il ne correspond pas à la trame du précédent, il faut le refaire ».

Hum hum.

« Comment répondre sans être vulgaire ? » C’était la question de mon amie.

Le fait que sa chef réponde ça indique clairement qu’elle n’avait pas lu le document plus loin que la première page. La police de caractère et le sommaire ayant changé, elle a refusé le document en bloc. Pourquoi prendre des risques à changer le document quand l’ancien satisfaisait très bien le client ? Le document n’a plus de sens ? Et alors ? Sa fonction n’est plus d’expliquer quelque chose, sa fonction c’est d’exister dans un répertoire quelconque pour qu’une clause contractuelle obscure soit remplie.

J’ai donc indiqué à mon amie ce que moi j’aurai répondu à sa chef : « Est-ce que vous voulez que ce soit fait, ou est ce que vous voulez que ce soit bien fait ? »

  • Si la chef répond « juste fait » > Mon amie reprend l’ancien cahier, change la date dans l’entête comme tous les autres avant elle, et voilà !
  • Si la chef répond « bien fait » > Voilà le nouveau cahier, comment pouvons nous l’améliorer ensemble?

Notez qu’il n’y a pas de compromis possible, pas de situation intermédiaire. C’est soit la rupture et l’amélioration avec le nouveau document, soit la routine et la sécurité avec l’ancien. Pas de document bâtard qui mélangerait le neuf dans le vieux : le pire c’est de se retrouver à devoir diluer son travail bien fait dans un format qu’on a déjà rejeté. Rien de tel pour poser sa démission 1 semaine après (en même temps, est-ce vraiment une mauvaise chose?).

Tant qu’on parle de démission : on peut accepter que son chef nous demande une fois ou deux de « juste faire » une tâche, mais ce doit être exceptionnel et justifié. Si c’est l’inverse, que la routine c’est « juste faire » et que l’exception c’est « bien faire », c’est qu’il est temps de changer de chef.

Cette histoire a résonné en moi parce qu’elle m’a rappelé quant après 1 mois de l’audit le plus exhaustif auquel j’ai participé, le premier retour qui nous a été fait par le DSI auquel nous avions remis le document de compte rendu a été : « Il y a une faute d’orthographe en page 3 »…

« Il y a une faute d’orthographe en page 3 », c’est devenu une private joke dans l’équipe pour désigner des situations pourries dans lesquelles les preneurs de décision fuient le changement comme la peste. Des situations sclérosées qu’il faut savoir éviter à tout prix. « Est-ce que vous voulez que ce soit fait ou bien fait ? » :  C’est une bonne question pour faire le tri !

Si vous voulez allez plus loin sur le sujet, c’est évidemment Seth Godin la référence, mais d’autres en parlent aussi plutôt bien.

La crise économique en un article

J’ai enfin trouvé la manière ultime de comprendre la crise le plus rapidement et le plus simplement possible.

Quand je parle de crise, je parle avant tout de la crise économique mondiale, mais également des instabilités (doux euphémisme) que vit en ce moment le bassin méditerranéen et qui à mon avis ont les mêmes racines.

La crise économique, résumée en une page de graphiques, c’est ici.

La crise économique et l’incapacité de nos dirigeants à y répondre, c’est là.

[Edition 28/02/2011] Il suffit que j’ouvre ma grande bouche sur un sujet casse-gueule comme celui là pour que dès le lendemain je trouve un contre-avis intéressant. En gros les deux côtés sont d’accord sur les causes des crises (disparition de la classe moyenne), mais là où comme solution Reich propose une augmentation des taxes pour les plus riches et les corporations, Kevin Meyer répond que cela ne contribuera qu’à la fuite de cette population vers des havres financiers. Il n’a pas tord le bougre! Du coup je reste convaincu sur l’explication de la crise mais je bascule dans l’indécision quant à la solution au problème. Il n’y a que les imbéciles qui ne changent pas d’avis… 😉

Par ailleurs je rajoute le blog Evolving Excellence dans mon blogroll, il y a des choses vraiment intéressantes à lire là bas.

4 liens rapides pour la semaine (2011-09)

J’en aurais bien remis 8, mais je sais que certains n’ont pas encore eu le temps de digérer les 8 de la dernière fois 😉

  1. Via FlowingData, un bon guide pour faire du scraping de données, alias récupérer des données depuis le web et les nettoyer pour les mettre dans un format exploitable.
  2. Chris Dixon sur les business models à adopter en cas de ruée vers l’or.
  3. Scott Berkun qui nous a écrit la liste des choses à faire pour rendre fou son chef de projet.
  4. Et pour finir un article vraiment intéressant recommandé par Jason Fried, ça parle de l’économie actuelle et c’est quand même un petit peu déprimant…

__

<< Semaine PrécédenteSemaine Suivante >>

Dilbert du 15/01/2011

Le pire c’est quand on prend ça pour de l’empathie

Dilbert.com

Traduction approximative:

Boss: Comment ça se passe?

Dilbert: Ça ne pourrait pas être pire!

Dilbert: Je suis le seul à avoir dit que le projet était une mauvaise idée et pourtant c’est à moi que vous l’avez assigné.

Boss (pense): C’est encore plus drôle quand je le leur fais dire.

Recherche textuelle sur SQL Server, c’est dur!

Pour faire suite à l’article d’avant-hier, celui sur la déformation de notre vision du monde que cause les outils que l’on emploie, je voulais vous parler de la recherche textuelle sur la plateforme SQL Server. Désolé si certains sont déçus mais oui c’est un point technique 🙂

Alors pourquoi faire le lien entre cette problématique et la recherche textuelle ?

Dans une base de données on a une obsession : tout mettre dans des tables composées de lignes et des colonnes. Naturellement dans ce modèle l’unité de traitement minimale est la cellule, l’intersection d’une ligne et d’une colonne.

Très bien, mais que faire quand la cellule contient une entité unique, comme demandée par la modélisation, mais que cette entité se décompose de manière complexe ? Je pense par exemple à un descriptif produit ou un commentaire client. Comment exploiter une information humaine, un avis, une description, comprise dans une chaîne de caractère, avec des outils qui ne savent pas vraiment travailler à ce niveau de granularité ?

Et bien on fait comme on peut, mais en général ce n’est pas très joli !

Pour parler d’une situation précise, je monte actuellement une solution décisionnelle qui stocke et analyse pratiquement toutes les informations concernant le parc informatique d’un grand groupe. On pourrait penser que sur ce domaine fonctionnel on n’aurait pas de surprises dans les données: que du technique ou du numérique. Et bien détrompez-vous, remonter l’ensemble des applications installées sur les postes, sur un parc de 30’000 machines, dans 10 langues (vive l’Unicode), ça donne 3 millions de lignes à brasser par jour…

Pour vous donner un exemple : j’ai environ 1500 valeurs distinctes par jour d’applications qui contiennent le mot ‘Microsoft’, dont 500 qui contiennent le mot ‘Office’… Là dedans je dois retrouver les différentes éditions d’Office 2003 et 2007 pour faire le suivi du licensing.

Miam !

Le minimum qu’on puisse dire c’est que j’ai un problème de qualité de données. L’approche que je préfère sur ce genre de problème c’est d’utiliser les outils décisionnels pour instaurer un cycle d’amélioration des données (Tip 131):

  1. On récupère tout dans le datawarehouse avec un premier cycle d’import
  2. On flag ce qui n’est pas bon / pas encore revu
  3. On génère des rapports pour que les opérationnels puissent corriger les systèmes sources et / ou proposer des nouvelles règles d’alimentation
  4. On implémente les changements, puis retour à l’étape 1

Bien ! Le problème c’est que pour faire l’étape 2 il faut pouvoir interagir sur la donnée : est-ce que mon descriptif d’application contient ‘Office’ ? Enfin, est ce qu’il contient ‘%Office’, ‘Office%’, ‘% Office %’, ‘%Office%’… La différence ?

  • Office’ : le seul résultat qui passe c’est « Office »
  • %Office’ : « Office », « LibreOffice », « Microsoft Office »
  • Office%’ : « Office », « Office 2003 », « OfficeCracker »
  • % Office %’ : « Microsoft Office 2003», la subtilité est dans les espaces autour du mot
  • %Office%’ : toutes les possibilités

Presque facile pour Microsoft Office, mais pas pour Adobe et toutes les variations de flash, ni pour IBM, ni Mozilla, ni pour toutes les autres en fait…Et ‘0ffice’ ? ‘Offisse’ ? On peut les oublier pour des champs fournis par les éditeurs eux-même, mais pour une recherche dans des champs saisis à la main ?

Pour pouvoir traiter tous ces cas de figure on va utiliser des critères de recherche compliqués, conditionnels, qui impliquent des traitements unitaires multiples sur chacune des cellules les unes après les autres: les performances s’écroulent. En temps de réponse on passe de moins d’une seconde sur une table bien indexée à plusieurs minutes sur une recherche en ‘%…’. En fait c’est une particularité dans la manière qu’ont les bases de données relationnelles de stocker et traiter l’information qui force une lecture complète de la table à chaque fois.

On retrouve cette limite là dans tous nos outils :

Ça plus le fait qu’il faille créer toutes les règles de gestion une par une de manière exhaustive. Vivement que les IA viennent nous filer un coup de main !

Malheureusement pour le moment il n’existe pas de solution magique, une recherche textuelle étendue sur une base de données relationnelles classique aura forcément un coût important en performance et/ou un résultat foireux. La prochaine fois que vous verrez un site web équipé d’un moteur de recherche bancal, ne cherchez pas pourquoi… Et c’est là que le bas blesse: à force de galérer avec ce type d’opérations on ne les propose plus, on ne les implémente plus, et on en vient à penser qu’elles ne sont pas possibles.

Pourtant Google y arrive, et sur des volumes de données autrement plus important! C’est d’ailleurs pour ça que pour l’avenir j’ai espoir dans la prochaine génération de bases avec moteur de stockage en colonne / vertical. Va bien y avoir un génie quelque part qui va nous révolutionner les recherches textuelles là-dessus!