Le bouquin SSIS 2012, par le trio gagnant Coutaud / Harel / Jehl

C’est avec un grand plaisir que j’ai reçu un exemplaire gracieux du livre SQL Server Integration Services 2012 – Mise en œuvre d’un projet ETL avec SSIS 2012, aux éditions ENI, écrit par les très respectables Patrice Harel, Romuald Coutaud, et François Jehl.

SSIS 2012 - Coutaud, Harel et Jehl - Editions ENI

Je dois encore me le faire dédicacer (perso je profiterai des JSS2012 pour le faire, n’hésitez pas à amener votre copie si vous voulez faire de même), mais ça ne m’a pas empêché de déjà le terminer !

En deux mots : c’est un très bon livre sur SSIS 2012, définitivement le meilleur écrit en français (le seul ? :p), et même sans cet avantage il n’a pas à rougir de son contenu face aux poids lourds américains.

A qui se destine ce livre :

  • Les développeurs, experts techniques et architectes en décisionnel Microsoft qui veulent se mettre à jour sur 2012. On se fait un chapitre tous les jours pendant 2 semaines et c’est réglé.
  • Les autodidactes qui veulent stabiliser leurs connaissances. On apprend le pourquoi des fonctionnalités et quels sont les cas d’usages classiques du produit (oui on fait tous de l’OLE-DB, pas la peine de souffrir à essayer de faire autre chose). Excellent quand on n’a pas accès à quelqu’un d’expérimenté qui peut répondre aux questions et transmettre les bonnes pratiques.
  • Les développeurs d’ETL non Microsoft, c’est une très bonne première approche pour cerner le produit. Je conseillerais même de lire le livre avant de toucher à SSIS, cela vous donnera une familiarité avec l’interface qui aidera grandement le transfert de compétences.
  • Les chefs de projet : c’est un bon point de référence pour participer aux discussions techniques avec vos développeurs. Il y a un choix d’implémentation à faire et vous voulez comprendre les tenants et aboutissants de la conversation ? Hop hop ouvrez la page correspondante du livre et vous comprendrez les enjeux (attention quand même à ne pas déraper ;))

Ce n’est pas pour :

  • J’aurai du mal à recommander le livre à un vrai débutant. Les auteurs nous préviennent d’ailleurs – le livre nécessite des compétences générales en base de données – j’irai plus loin, il nécessite d’avoir déjà été exposé un minimum au monde joyeux de l’ETL d’entreprise. Parce que si le niveau technique est progressif et bien structuré, ce n’est pas un tutoriel, et un débutant ne saurait pas par quel bout commencer s’il n’avait que ce bouquin sous la main.
  • De même pour un expert technique déjà sur 2012 depuis quelque temps, à qui ne peuvent s’adresser que les 3 derniers chapitres.

Rapide revue des chapitres :

  1. Introduction à SSIS : Un peu trop rapide à mon gout. Il manque l’historique du produit, de sa place dans la chaîne BI Microsoft, de son positionnement par rapport aux concurrents (forces et faiblesses)… Mais vous le savez, c’est ma marotte, j’aime avoir le contexte, connaître le pourquoi d’une situation, d’un produit, et ça s’applique même dans un bouquin sur SSIS 😉
  2. Flux de contrôle : Excellent chapitre, exhaustif et qui donne des éléments de contexte sur les fonctionnalités. Must read : la revue des connecteurs de base de données (ADO.NET, ODBC, OLE DB…) et le petit guide de quand employer lequel (p41).
  3. Variables, paramètres et expressions : Très bonne lecture, mais à mon sens il manque une petite explication du besoin fonctionnel avant le détail et l’exemple d’implémentation. On a les outils et la solution sans avoir le problème initial. Par ailleurs c’est un très bel exemple d’implémentation qui a été choisit, qui illustre bien le rôle de chacune des fonctionnalités. Must read : la liste des types de données des variables et leur correspondance en type de base de données (Double c’est DT_R8 ou DT_I8 ? réponse page 135 :)).
  4. Manipulation de données simples : Passage assez descriptif obligatoire mais pas vraiment passionnant pour un vieux de la vieille !
  5. Transformation de données : Une explication des composants de la boîte à outils de SSIS 2012. J’aime les petites remarques qui viennent rappeler les cas d’usages réels, leur emploi dans la vraie vie en somme, et pas uniquement les vœux de Microsoft. Quelques pages sur le CDC et DQS, c’est bon à prendre !
  6. Flux de données multi-source et jointures : Un bon comparatif des différentes solutions de brassage de flux de données dans le data flow. J’aime qu’on se détache un peu des composants pour penser flux de données. Must read : les petits schémas explicatifs des LEFT/RIGHT/INNER/FULL OUTER JOIN (p238), un petit test que d’ailleurs j’adore faire passer à mes développeurs juniors pour valider leur compréhension de la chose.
  7. Événements et suivi d’exécution : Le détail du gestionnaire d’événements (avec le bon conseil de modérer son utilisation), de la gestion des logs, du debug, du monitoring et de la nouveauté 2012 : les data taps. Des sujets pas forcément ultra-sexys mais présentés de manière très digeste.
  8. Administration SSIS : Chapitre qui débute avec un comparatif entre l’ancien mode de déploiement (granularité package) et le nouveau (granularité projet) qui cohabitent dans SSIS 2012. Je ne suis pas convaincu comme les auteurs que le nouveau mode doit être utilisé systématiquement. J’ai fait quelques projets Datastage (chut !) qui utilise largement la notion de repository, et j’aime beaucoup l’indépendance que fournit SSIS en mode déploiement de package (rien de tel que les déploiements en mode dépose de fichiers dtsx sur le disque du serveur, aucune équipe d’exploitation ne peut se planter). Je suis content que le choix reste possible dans 2012 et j’espère qu’il le restera dans le futur. Le reste du chapitre détaille bien les possibilités d’administration offertes par SSIS dans les 2 modes de déploiement.
  9. Checkpoints et transactions : Un très bon chapitre sur une fonctionnalité à oublier de SSIS, c’est un peu du gâchis ! En tout cas respect aux auteurs d’avoir pris le temps de traiter le champ de mines qu’est la configuration des checkpoints. Pour les transactions je dirais que soit elles sont traitées trop rapidement, soit elles ne sont pas assez creusées. Mais je ne peux pas leur en vouloir : c’est un sujet délicat qui justifierait à lui seul plusieurs chapitres et qui n’est finalement que très rarement employé.
  10. Notions avancées et bonnes pratiques : Un chapitre définitivement trop court ! Je comprends que les auteurs ne veulent pas nous révéler tous leurs secrets, mais j’en aurais voulu plus 😉 Par exemple quelques implémentations des scénarios classiques dans SSIS : la détection de doublons, le nettoyage d’un champ texte, la conversion d’une date, le chargement d’une table de fait, la gestion d’une table de transcodage…
  11. Programmation de composants SSIS : J’avoue avoir parcouru le chapitre en diagonale, mais j’y ai trouvé ce qui me semble être un très bon tutoriel pour le développement de son premier composant perso, partant des méandres des éléments à installer sur son poste et les serveurs jusqu’à l’ajout d’une interface graphique pour le paramétrage à l’utilisation. Beau boulot !

A mon sens il manque, dans le désordre :

  • Le load balancing de packages sur une ferme de serveurs SSIS, et plus globalement un petit chapitre sur le déploiement de SSIS sur des grosses infrastructures
  • La gestion des comptes de service et l‘héritage des droits à l’exécution (oui je te regarde SQL Agent)
  • Des recommandations / abaques sur les performances attendues en fonction de volumétries classiques sur 2/3 configurations matérielles standard. Histoire de savoir si on est dans les clous ou à côté de la plaque en traitant 5 millions de lignes de 20 colonnes de texte en 10 minutes sur un quad-core avec 16Go de RAM et un disque 7200tpm. Très grosse maille évidemment.
  • Une vision un peu plus architecture et un peu moins produit. Gérer sa solution et ses projets, l’atomicité d’un package et d’un data flow, l’enchainement des packages (children ou par SQL Agent)…
  • Le détail de l’accès aux features en fonction des éditions (standard, BI, entreprise)
  • Une petite conclusion sur le futur de SSIS dans le cloud azuré?

Évidemment le bouquin fait déjà 450 pages, alors à un moment il faut savoir tailler pour sauver les arbres 😀

En conclusion :

Je recommande sans problème. Beau travail messieurs, merci pour votre dur labeur, à quand le prochain sur SSAS ? 🙂

The Mythical Man-Month – Frederick P. Brooks, Jr.

J’ai profité de mes dernières vacances pour lire « The Mythical Man-Month » (Amazon) de Frederick P. Brooks, Jr. (un des ténors du génie logiciel).

C’est LE livre qui apparaît systématiquement dans les tops 10 des livres à lire pour les ingénieurs logiciels, chefs de projet, développeurs ou encore manageurs de développeurs.

Même si l’édition originale date de 1975, et l’édition anniversaire de 1995, la plupart du contenu reste entièrement d’actualité, puisqu’il s’agit principalement de bon sens. Enfin surement qu’à l’époque beaucoup des choses qu’il raconte étaient nouvelles. Aujourd’hui elles font partie – ou devraient faire partie – de la culture de base de l’informaticien au sens large

Je vous livre quelques idées du bouquin histoire de bien cerner l’ouvrage :

  • (p5,6) On peut étendre un programme en travaillant sur son industrialisation (généralisation, documentation, tests, maintenance…) ou sur son intégration (interfaçages à d’autres systèmes, intégration dans l’écosystème de l’IT), mais pas les 2 en même temps.
  • (p16-19) Ajouter des développeurs à un projet en retard le retardera encore plus, aussi connu sous « 9 femmes enceintes ne font pas un bébé en un mois ».
  • (p32-36) Il propose une méthode d’organisation pour les très gros projets : mettre en place N équipes de 10 personnes chacune centrées autour d’un lead programmer (le chirurgien, un mec ultra talentueux), son copilote (le même en un peu plus junior, qui apprend et vérifie), les 2 seuls à développer et une équipe de support.
  • (p45,46) Définition de l’architecte (il le sous-entend fonctionnel – la MOA quoi) : qui représente l’intérêt de l’utilisateur, qui doit indiquer quel est le résultat attendu mais pas comment cela doit être fait. Par opposition au constructeur (la MOE), qui lui prend en compte les contraintes et le ratio coût/performance, et conçoit  la solution. Ce qui amène un cycle de développement : Architecture (MOA – On définit la fonction d’une boîte noire) > Implémentation (MOE –  On établit le contenu de la boîte) > Réalisation (MOE – On fabrique la boîte). Ne vous offusquez pas sur son choix de vocabulaire, qui diffère de ce qu’on a l’habitude d’employer en France, l’important c’est le découpage des tâches et des responsabilités.
  • (p62) Les spécifications sont le manuel utilisateur.
  • (p116) Le mieux est de toujours commencer par un prototype, jetable ci-besoin, plutôt que de vouloir y arriver du premier coup, puisque la plupart du temps on recommencera plusieurs fois du début.
  • (p117) Tous les besoins utilisateurs ne doivent pas être pris en compte dans le design. Et plus on avance dans le projet, plus c’est vrai.
  • (p142) Il faut tester les spécifications : faire des maquettes, tester les règles de gestion, avant même de commencer le développement.
  • (p143) Le mieux est de faire des programmes modulaires, afin d’augmenter la capacité d’adaptation du système (En 1975 manifestement ce n’était pas évident ;)).
  • (p155) Les jalons sur le planning doivent être clairement identifiés (périmètre et date), afin de ne pas pouvoir se mentir à soi-même par rapport à l’avancement.
  • (p157) Un directeur de projet ne doit pas intervenir dès le premier retard d’un de ses chefs de projet, sans quoi ils arrêteront de rapporter les glissements pour fuir le micromanagement.
  • (p201) Le développement itératif c’est le top (En 1975 ! C’était révolutionnaire !)

Évidemment il y a plein d’autres choses très intéressantes, et à chaque fois il développe et justifie ses idées, mais pour moi le top est dans cette liste.

Vous faut-il le lire ?  Je dirais oui si :

  • Vous vous devez d’avoir de la crédibilité en tant que bloggeur qui ramène sa fraise sur la gestion de projet (mon cas ;)).
  • Vous êtes ou aspirez à devenir chef de projet et que vous voulez comprendre le pourquoi de ce que vous appliquez.

Dans le cas contraire, votre bon sens, l’expérience personnelle et suivre la « BI ça vous gagne » suffiront largement à faire votre culture 🙂

Anything You Want – Derek Sivers

Un des livres que j’ai lu cet été c’est « Anything You Want »  (Amazon FREN) de Derek Sivers (Wikipedia | Blog  – Attention à l’auto-traduction foireuse, pensez à repasser en anglais).

Derek Sivers : Anything You Want

Derek Sivers ce n’est pas un inconnu pour ceux qui me suivent, c’est un monsieur que j’aime beaucoup et dont je link régulièrement les articles. J’avais particulièrement aimé sa méthode pour bien recruter ses consultants informatiques. En effet c’est une bonne réponse à un client qui me reproche d’être trop cher par rapport à mes concurrents, cela permet de bien démontrer la valeur qui justifie le coût 😉

Son livre est sorti cet été et fait partie de l’initiative de publication indépendante « The Domino Project »  que Seth Godin a lancé tantôt. Au-delà d’être une expérience intéressante dans les business models des éditeurs, ce label est surtout une très bonne sélection d’auteurs.

« Anything You Want » est un bon bouquin, rapide à lire et compact, qui contient le retour d’expérience de Derek Sivers dans son aventure entrepreneuriale qu’a été CD Baby. Notez qu’il contient beaucoup de matériel déjà publié sur son blog, donc si vous êtes pour la protection des arbres, les idées principales contenues dans le livre sont déjà disponibles en ligne. Perso j’apprécie beaucoup ces livres qui reprennent les articles phares des bloggeurs connus, en nettoyant et ordonnançant les articles dans une trame cohérente. Si ce job d’édition est bien fait, cela accélère considérablement la découverte du travail de l’auteur. Et puis en plus un livre on peut le prêter et faire découvrir l’auteur autour de soi 🙂

Point de vue contenu, les points les plus remarquables ont été repris en vidéos de 2/3 minutes chacune. Ça vaut le coup d’aller y jeter un coup d’œil si vous avez le temps.

Je recommande ce bouquin si vous ne connaissiez pas le bonhomme et que vous lisez encore du papier. Si vous suivez déjà son blog le livre est un peu redondant, si vous ne lisez plus que de l’électronique mais que vous ne le connaissiez pas, c’est le moment d’ajouter le flux RSS de son blog à votre lecteur.

Voilà pour ma première lecture de vacances, on enchaîne la semaine prochaine!