Y’a un truc qui m’intrigue à Redmond…

Lors de la keynote du PASS Summit 2014, le mois dernier à Seattle, nous avions eu droit à la présentation de la nouvelle organisation de l’équipe Data Platform de Microsoft, par son leadership flambant neuf:

Des visages sur des noms

Trois patrons pour trois lignes de produit, alignées comme indiqué sur ce schéma (désolé pour la qualité patate):

L'organisation MS 2014 pour la Data en image

Si on repart du fond de la stack:

  1. Capture + Manage : T.K. « Ranga » Rengarajan, patron de Data Platform, Cloud & Entreprise. A comprendre : SQL Server, Azure SQL Database, Azure HDInsight, Azure DocumentDB, Azure Search and Analytics Platform System
  2. Transform + Analyze : Joseph Sirosh, patron de l’Information Management & Machine Learning. A comprendre : Tous les services Azure Data
  3. Visualize + Decide : James Phillips, patron de Power BI, tout du moins la partie sur O365 (dashboards, Q&A, Mobile…)

Là dessus je me fais les remarques suivantes:

  • Ranga ancien SAP, Joseph ancien Amazon, James co-fondateur de Couchbase, les 3 ont moins de 2 ans d’ancienneté chez MS, ça sent l’air frais, c’est plutôt bon signe
  • Ranga et Joseph sont CVP (haut gradés), James n’est « que » General Manager, bizarre cette différence de traitement…
  • Vis à vis des périmètres de chacun:
    • Pour Ranga on a une ligne claire de produits, énoncée dans sa fiche speaker, pas de doute possible
    • Pour Joseph, il fallait être là en scéance mais ont été nommés : Azure Data Factory, Azure Stream Analytics et Azure Machine Learning. On en reparle plus bas.
    • Pour James c’est moins clair. Power BI ça veut tout et rien dire, et si on s’en réfère au slide ci-dessus on note l’absence de la partie add-ins intégrée à Excel (soit à mon sens la plus importante), qui on le sait est retombée dans l’équipe Office. Bon il en parle quand même pendant la session, mais manifestement ça n’est pas dans son scope. Notons qu’il nous a parlé également de 2/3 autres trucs mignons qui arrivent et sont eux dans son scope : les Dashboards Power BI et l’amélioration du refresh on-premise/Power BI (genre SSAS et scheduling)

On en revient à Joseph, en reprennant le slide et en essayant de matcher les produits qu’on connaît en face:

  1. Orchestration -> Azure Data Factory
  2. Information Management -> ?
  3. Complex Event Processing -> Azure Stream Analytics
  4. Modeling -> ?
  5. Machine Learning -> Azure Machine Learning

Hum… Y’a des trous! Et si on observe le pattern, ça sent les services Azure managés, pour de l’Information Management et du Modeling! Wait, what?

Je ne sais pas vous, mais moi ça m’intrigue définitivement ;)

J'ai hâte!!

Ma première analyse Machine Learning avec Azure ML – Slides et Webcast de la session aux JSS2014

Voici le webcast et les slides de la session Ma première analyse Machine Learning avec Azure ML à cette 4ème édition des Journées SQL Server.

Florian avec la bouche ouverte...

Petite anecdote rigolote pour ceux qui n’étaient pas là: Azure ML offline au moment de la démo. LOL comme disent les jeunes… -_-

Un bel exemple de fail par un chat
Et ça c’est la puissance du Cloud!

Je vous rassure, finalement la bête est remontée au bout de 5 minutes, et tout se termine plus ou moins bien ;)

On notera que le son n’est pas très bon jusqu’à environ la 4ème minute, où je change de micro:

En terme de ressources on a:

Amusez vous bien ;)

Journées SQL Server 2014 (JSS2014) : Session Machine Learning

Je suis évidemment bien à la bourre pour vous rappeler de libérer du temps dans votre calendrier pour les JSS2014 la semaine prochaine (lundi 1 et mardi 2 Décembre).

Logo JSS2013

Pour rappel ce sont 2 jours de conférences gratuites, organisées par le groupe des utilisateurs, hébergées au centre des conférences de Microsoft à Paris (Issy).

Allez-y pour les 2 jours, pour une session entre midi et deux, pour seulement une demi-journée, pour une session au petit matin ou encore une session en fin d’après midi, mais allez-y: c’est gratuit et y’a du speaker

Voilà le programme, le formulaire d’inscription (gratuite), et si vous restez pour déjeuner direction les lunchbox.

De mon côté je présente une session sur Azure Machine Learning, et plus globalement le Machine Learning vu par un pro de la BI. Rendez-vous Mardi 02/12 matin (10h30 – 11h30) en salle Prairie.

Somebody's happy!
J’espère vous y voir ;)

Ça bosse dur chez Microsoft en ce moment: Azure Stream Analytics et Azure Data Factory

Juste un petit mot avant mon départ pour Seattle pour vous parler de 2 services Azure qui viennent tout juste d’être annoncés, et qui rejoignent le petit groupe de mes services Azure préférés (avec Machine Learning, HDInsight et le concept même de Blob Azure).

Mon premier c’est Azure Stream Analytics

Introduit par ici et par , déjà documenté, pour faire simple c’est un moteur de traitement d’événements temps réel, digne concurrent de Storm quoi (qui existe d’ailleurs aussi dans Azure maintenant!)…

Chaîne d'alimentation temps réel et outils associés
Ça en fait des outils…

Des messages sont émis en continu par des producteurs (capteurs, applications, machines…), collectés dans des queues, et doivent ensuite être traités pour l’analyse. Stream Analytics sert justement à cette partie. Son énorme avantage: sa syntaxe c’est du pseudo SQL! C’est pas beau ça?

Notez la syntaxe TumblingWindow pour gérer la fenêtre temporelle
Notez la syntaxe TumblingWindow pour gérer la fenêtre temporelle

Mon second c’est Azure Data Factory

Annoncé par et également déjà documenté, y compris un tutorial étape par étape.

Là c’est carrément un petit ordonnanceur qui débarque sur Azure, et qui permet de gérer ses pipelines de donnée de bout en bout. Evidemment la preview est plutôt humble en terme de features et composants, mais ça promet du lourd!

Capture d'écran d'Azure Data Factory - Tutorial par Microsoft
A nous les pipelines bien rangés et automatisés!
Il ne reste plus qu’à trouver du temps pour jouer avec tout ça… ;)

Boîte à outils d’un consultant/manager – Octobre 2014

Sans transition, la liste de mes outils de travail en Octobre 2014.

Hardware

Apple MacBook Pro Retina 13′ mi-2014
  • Celui là avec le Core i5 de base, 16Go de RAM et 256Go de SSD
  • Upgradé récemment depuis le MacBook Air 13’ mi-2011, Core i7 ULW, 4Go RAM, 256Go SSD. Je sens bien la montée en perf, mais également la montée en poids. Le Air est plus léger, mais aussi légèrement plus grand. Je vis avec. En écrivant je me rends compte que j’ai quand même gardé le Air 3 années complètes, en le trimballant partout, en moto, et qu’il ne m’a quasiment pas fait défaut (j’ai juste dû remplacer le trackpad une fois, mais avec iFixit c’est trop facile)
  • L’écran est une tuerie (3360×2100), et OS X gère très très bien les résolutions Retina
  • Le passage de 4 à 16Go de RAM me permet surtout de faire du Windows en VM plutôt qu’en BootCamp (dual boot), c’est beaucoup plus confortable à l’usage, et au final ça permet de quasiment toujours rester sur OS X
  • Pour la virtualisation j’utilise Parallels Desktop 10 (80€) pour 3 raisons : le clavier Mac et l’écran Retina fonctionnent sans aucune intervention de ma part sur la VM Windows, plus le partage natif du répertoire Dropbox inter-VM. Par contre je n’utilise pas du tout le mode intégré des applis, ça m’insupporte de mélanger les OS comme ça. Evidemment on parle de Windows 8.1, je passerai à 10 à la release mais pas avant
Apple iPhone 5s 32Go
  • Celui là. Je passe mon tour sur le 6 principalement pour des raisons financières, on verra l’année prochaine pour le 6s/7
  • iPhone pas tellement pour iOS en lui-même, mais plutôt pour les applications qui ont encore et toujours une longueur d’avance en terme d’ergonomie et de qualité de finish. A noter quand même la magnifique intégration entre OS X et iOS, toute récente, je m’y suis bien habitué
  • Un des plus gros apports sur ma productivité de ces 2 dernières années c’est la 4G et le partage de connexion avec le laptop. Pas spécifique à mes choix de machines puisque ça marche avec n’importe quel téléphone, opérateur et OS. Je recommande à 3000% pour les consultants
Microsoft Azure
  • J’en vois qui ricanent au fond, pensant que je suis un vendu à l’éditeur-providence (certes), mais Azure a vraiment changé la manière dont je gère mes serveurs (ou plutôt comment je ne les gère plus)
  • Si besoin d’un serveur, je ne m’embête plus, direction Azure. Pour moi c’est effectivement devenu une partie incontournable de mon SI personnel. Ça plus le partage de connexion, et je me retrouve à faire des démos en avant-vente sur un Mac, connecté en 3G à une ferme de clusters Hadoop sur Azure, je vous raconte pas la frime ;)
Et à la maison…
  • Oui j’ai un encore PC qui joue à domicile. Un desktop avec un écran 27’ assemblé sur materiel.net, pour les jeux et les séries
  • Evidemment à la maison le wifi est distribué via une Time Capsule d’Apple, mais ça n’étonnera plus personne à ce moment de l’article…
  • Et sinon vive la fibre optique

Applications

Dropbox : Sauvegarde de données dans le Cloud
  • Je paye les 10€/mois parce que c’est un service trop important pour moi pour que je sois le produit plutôt que le client
  • Les dernières controverses, à mon sens justifiées, ont failli me faire quitter le service, mais je n’ai pas trouvé mieux pour mes besoins. C’est une superbe appli, parfaitement intégrée à Windows et OS X. Snif
1Password : Gestionnaire de mots de passe
  • Troy Hunt et Brent Ozar m’ont définitivement convaincu d’utiliser 1Password. Maintenant chacun des sites et services que j’utilise dispose de son propre mot de passe de 20 caractères. Je ne crains plus les leaks qui se multiplient
  • Oui, le premier effort d’import est relou : j’y ai passé une soirée complète. Il faut retrouver/changer les mots de passe des sites les plus importants, déployer les nouveaux mots de passe sur les machines et téléphones (dont les boîtes mail…), et sur chacun des navigateurs : installer les add-in + vider les caches password + leur interdire de les restocker. Y’a du boulot…
  • J’utilise Dropbox pour partager le répository crypté qui contient les mots de passe, et des clients Windows, OS X et iOS pour couvrir chacun de mes appareils. Les licences s’entendent par OS, et le prix reste raisonnable à mon goût (50€ pour moi avec une machine de chaque)
  • Le concurrent principal de 1Password est LastPass, avec l’avantage de disposer d’une appli Windows Phone, et de stocker les mots de passe dans le Cloud (et donc d’être capable de profiter du service sur des machines sans avoir à installer quoi que ce soit, ce qui n’est pas possible pour moi). Mais ça veut dire que les mots de passe sont chez eux, donc encore une opportunité de tout leaker d’un coup
PipeDrive : Gestion du pipeline commercial
  • PipeDrive (9€/mois/utilisateur) c’est un service très spécifique dont j’ai besoin uniquement dans mon rôle de manager d’offre. Il permet de gérer visuellement mon activité commerciale, de la prospection à la signature du deal
  • L’interface est simple, bien construite. En plus il reste à sa place et ne cherche pas à se substituer à un CRM. Je recommande!
Trello : Todo list en mode Kanban
  • La référence du marché pour la gestion des todo-lists c’est définitivement Trello. Edité par la boîte de Joël Spolsky, autant vous dire que la qualité est au rendez-vous
  • A accompagner d’une lecture de Personal Kanban et ça sent la fin de la procrastination (et une bonne initiation au Lean en passant!)
  • En plus il est gratuit en usage de base donc…
Slack : Communication d’équipe
  • De 0 à 13$/utilisateur/mois – web et tous OS
  • Un outil de communication d’équipe qu’on a envie d’utiliser (leur marketing, mais c’est vrai). En fait une belle modernisation du concept de channel
  • Particulièrement pratique pour un pôle de consultants éparpillés chez les clients ;)
Pour les flux RSS
  • Feedbin (3$/mois – web) : mon remplacement de Google Reader, j’ai largement gagné au change! L’interface web est top, et il s’interface très bien à…
  • Reeder (5$ – iOS) : le meilleur lecteur de flux RSS iOS. Et si besoin de stocker du contenu à long terme alors je déverse vers…
  • Evernote (0 ou 5€/mois – web et tous OS) : j’ajoute un tag au contenu, et j’utilise le moteur de recherche pour retrouver les articles au besoin. En fait je me construis mon petit internet privé à moi comme ça
Spécial OS X
  • Caffeine (gratuit) – une petite tasse dans la menu bar, lorsqu’on clique dessus elle se remplit de café et la machine ne peut plus se mettre en veille. Ça n’a l’air de rien, c’est du vrai confort
  • iStat Menus (16$) – des petits graphs dans la menu bar qui montrent les statistiques de performance de la machine (CPU, temp, RAM, disque, réseau…)
  • Divvy (14$) – un gestionnaire de fenêtre, qui permet de choisir précisément la taille et la place d’une fenêtre sur l’écran**. Existe aussi sur Windows! Super utile quand on bosse avec 2 ou plus applications en même temps à l’écran
  • Bartender (13€) – permet de ranger sa menu bar sur 2 lignes dont une qui n’apparaît qu’à la demande. Il faut dire qu’à force d’ajouter des choses dedans…
  • Mou (Markdown) (gratuit pour le moment) – un éditeur de Markdown que j’utilise maintenant pour taper cet article. Cette syntaxe est vraiment pratique pour blogger, et WordPress et GitHub en mangent nativement, je n’en demande pas plus.

Là dessus il me manque un service VPN pour les wifi un peu crades qu’on peut utiliser en déplacement professionnel, si vous en avez un à me recommander c’est avec plaisir :)

Et vous sinon, quel choix des armes ?

Modélisation dimensionnelle : Dimensions hétérogènes en Sur-type et Sous-type

N’ayez pas peur du nom à rallonge, le concept est finalement assez simple ;)

Cette technique super utile est évidemment couchée sur le papier par nos amis les retraités, dans leur bible incontournable (oui je parle de Kimball…).

Couverture DWH Toolkit 3rd Edition

Imaginez que vous bossez pour une compagnie d’assurance, qui vend des polices d’assurance pour plusieurs types de produit: auto, moto, habitation, personnelle…

Côté modélisation dimensionnelle (après consultation du chapitre 16 du DWH Toolkit), on voit bien une table de fait qui va couvrir les transactions des polices, permettant de suivre le cycle de vie des dossiers:

  • Création / modification du dossier (détails de l’assuré, dates de début…)
  • Création de la couverture et association à l’objet à couvrir (type de produit, options… par exemple un tout risque auto + vol)
  • Obtention d’un devis avec la génération du tarif
  • Validation du devis et création de la police effective, demande des justificatifs
  • Obtention des justificatifs et pérénisation du dossier

A cette table de fait on va associer une série de dimensions, les axes d’analyse qui nous permettront de ventiler et analyser les faits. Ici on retrouvera les différentes dates, l’assuré, la couverture et l’objet couvert, l’employé responsable du dossier, les attributs du dossier…

Alt

Seulement voilà, après réunion avec le métier, on se rend compte que les attributs des dimensions Couverture et Objet Couvert ne sont pas du tout les mêmes entre le domaine auto et habitation. En effet, il paraît assez normal qu’on ne décrive pas une maison et une voiture avec les mêmes informations.

Il est quand même à noter que pour des soucis de consolidation et de reporting transverse, on doit tout de même constituer une table de dimension « chapeau », avec une série d’attributs simples qui concerneront à la fois l’auto et l’habitation (valeur, risque, localisation géographique…).

Côté modélisation, Kimball nous recommande alors d’utiliser la technique Sur-type / Sous-type (Supertype / Subtype). Nos tables de dimension initiales deviennent des tables de Sur-type, elles détiendront les attributs communs. A ces tables on va ajouter des tables de dimension de Sous-type, à savoir Couverture Auto, Couverture Habitation, Objet Couvert Auto et Objet Couvert Habitation, qui contiendront elles les attributs spécifiques à chaque ligne de business.

Alt

Deux choses à noter:

  • On réutilise les mêmes valeurs de Surrogate Key pour les dimensions Sur-type et Sous-type, inutile d’encombrer la table de fait avec des FK supplémentaires
  • On intercale des vues entre ce schéma et les utilisateurs, pour apporter:
    • la vision consolidée (toutes les lignes de la table de fait et uniquement la dimension Sur-type)
    • des visions par ligne métier (un filtre sur la table de fait pour n’exposer que les transactions du type) et la dimension Sur-type accompagnée de la dimension Sous-type:

Alt

Plutôt cool non? On a le beurre et l’argent du beurre avec cette approche ;)

Evidemment on ne peut appliquer cette méthode que si les mesures présentes dans la table de fait sont communes à tous les processus métier (Auto, Habitation…)

Dans le cas contraire, il est nécessaire de créer des tables de fait différentes, chacune avec ses mesures propres. Notez que dans ce cas, il est toujours possible d’utiliser l’approche Sur-type / Sous-type, pour disposer d’une table de dimension permettant la consolidation et le reporting transverse. Voir pourquoi ne pas aller plus loin et créer une table de fait de consolidation, qui portera les mesures communes et la table de dimension Sur-type. Le gros avantage c’est d’être capable d’exposer en une passe les données de haut niveau sans repasser par 2 tables de bas niveau qui peuvent être plus lourdes (mais on s’en passe très bien si la solution contient un cube OLAP).

Pour aller plus loin: les chapitres 10 et 16 du Datawarehouse Toolkit 3rd Edition.

Management des équipes dans l’entreprise, avec agilité ou pas…

En ce moment, plein de sujets me trottent dans la tête, mais aucun dans un état abouti et clair. Alors je vous les livre tels quels ;) Un de ceux qui contribuent à cette situation c’est le bon Michael O. Church, un bloggeur et développeur américain plutôt connu et assez grande gueule sur l’état du management dans l’industrie logicielle et particulièrement dans la Silicon Valley (qui on le rappelle, sur certains aspects est le modèle de ce qui fera dans quelques années dans le reste du monde).

Je recommande des perles comme son très bon réquisitoire pour le craftsmanship, sans jamais dire le mot, un point brillant sur les dynamiques en jeu lors d’un recrutement et comment les retourner en sa faveur, ou dernièrement une critique assez acerbe de l’Agilité, telle qu’elle est couramment implémentée ainsi que dans ses fondements, dans le contexte de l’entreprise vue par le prisme MacLeod/Gervais/Rao (que je recommande d’une telle force que vous ne pouvez pas ne pas l’avoir lu).

Sur ce dernier sujet les arguments sont valables, même si on sent qu’il n’a jamais vraiment eu la chance de participer à un projet SCRUM qui fonctionne correctement (en même temps c’est plutôt rare…). Mais j’accroche quand même bien avec son idée que l’agilité répond à un problème, la bonne allocation du travail aux productifs (les développeurs au sens large), qu’on pourrait peut-être complétement éviter.

Réaction des coachs agiles à cet instant précis de l'article
Réaction des coachs agiles à cet instant précis de l’article

Sa solution c’est de renverser le problème, soit l’Open Allocation, qui veut qu’on n’assigne pas les projets aux développeurs, mais que les développeurs choisissent eux-mêmes les projets auxquels ils veulent contribuer. Ce n’est pas une utopie puisqu’il existe déjà un exemple d’implémentation, Valve (PDF), l’un des éditeurs logiciel les plus innovants du moment. Notez en passant que ça n’est pas sans détracteurs.

Le but devient alors de passer du Politics-Driven-Development (Waterfall) au Business-Driven-Development (via l’agilité) jusqu’à l’Engineering-Driven-Development (avec l’Open Allocation). Ça peut paraître extrême, mais vu l’état actuel de l’industrie, il va certainement falloir tirer vers cet extrême pour ramener la situation à l’équilibre.

J’aime beaucoup ce courant de pensée, qu’il illustre en disant qu’on ne doit pas laisser le contrôle d’un avion aux passagers (BDD), mais bien au pilote (EDD).

J’aime l’élégance de l’idée (et très égoïstement, la liberté que cela pourrait m’apporter) mais j’ai encore du mal à la réconcilier avec une réalité business. Parce que les passagers, ceux qui payent, doivent quand même bien choisir la destination du vol, et cette contrainte doit bien s’imposer à l’organisation d’une façon ou d’une autres. D’autant plus que dans son exemple de réussite, Valve, les développeurs sont également des joueurs (donc clients), on est donc dans un cas particulier pour lequel l’EDD = le BDD.

Prise de décision chez Valve - un processus communautaire
Prise de décision chez Valve – un processus communautaire

Dans le fond tout ça rejoint quand même bien les pratiques recommandées du lean, qui pousse à la mise en place d’équipes alignées sur les streams de valeur client plutôt que les habituels silos fonctionnels : Manufacturing, HR, Marketing, Sales, Direction Technique, IT… Les équipes sont de plus rendues autonomes dans la prise de décisions locales et inscrites dans des cycles d’amélioration continue. Elles sont pluridisciplinaires, managées par les moyens plutôt que les objectifs, ce qui leur permet de retrouver un réel sens métier dont découlent les performances (et pas l’inverse).

Imaginez une société de retail, qui fabrique et vend des vêtements et souhaite avancer sur les sujets Internet of Things et vêtements connectés. Quelle meilleure équipe à mettre en place que celle dédiée à une population clientèle très précise (sportifs?), sur un besoin très précis (tracking de la performance personnelle à la fitbit/jawbone), composée du chef de produit (marketing), d’un ingénieur d’étude de l’usine de fabrication, d’un kiné, d’un vendeur magasin, d’un contrôleur de gestion, du community manager concerné, de développeurs web, app, back office, embarqué… On met tout ce petit monde au même endroit, et là vous l’avez la petite société dans la société, avec un PnL propre, une responsabilisation face au produit, et une grosse envie de réussir.

Tout ça on aime. Pas de débat. La question c’est plutôt : comment constituer ces équipes ? L’Open Allocation dans ce cas, ce serait d’avoir les chefs de produit qui pitchent les idées aux différents contributeurs, afin de les recruter et constituer l’équipe. Mais pour que les idées soient sexy il faut déjà que les contributeurs soient intéressés par le contexte métier. Si aucun développeur ne court, voir personne ne fait de sport, comment motiver les gens à rejoindre l’équipe ? Sommes nous alors plutôt devant un problème de recrutement ? Autrement dit, les développeurs de l’IT de Décathlon doivent-ils être des sportifs ?

Le flic de Bervely Hills, Eddie Murphy pas forcément très convaincu Voilà, pas vraiment de conclusion, juste plusieurs idées qui s’imbriquent et qui commencent à apporter une image de l’entreprise qui pourrait se matérialiser dans un futur proche, et dans laquelle il ferait bon vivre;)