Note de lecture : Ruminations on C++, par Andrew Koenig & Barbara Moo

Note : 6 ; Amis touristes, ce livre n’est pas pour vous !

Au premier abord, l’ouvrage n’en impose pas trop, le volume semble modeste sans parler du design de la couverture façon vache qui rit. Mais rapidement, on se rend compte déjà que la finesse du papier nous avait dissimulé ses 370 pages.

Ce livre qui est plutôt un recueil, est un compilation des articles d’Andrew parus essentiellement dans JOOP (Journal of Object-Oriented Programming), mais aussi dans C++ Report et dans C++ Journal pour une petite partie d’entre eux. C’est donc dans une sélection de 98 articles publiés sur une durée de 8 ans que les auteurs ont fait leur choix. Ils sont regroupés sur 32 chapitres, pardon 33 car Andrew Koenig, en bon informaticien commence par un chapitre 0 ! Ces chapitres sont eux-mêmes rassemblés en 6 parties.

La première partie « motivations » présente assez peu de code. L’auteur y développe son crédo personnel envers C++, essentiellement en le comparant au langage C auquel il donne clarté et sécurité. Le style y est aussi plus personnel que dans les parties suivantes.

La seconde partie « classes and inheritance » est le prétexte pour revisiter les grands thèmes du C++ classique : héritage, polymorphisme et surcharge, constructeur copie, virtualité, etc… Nous avons même droit à une petite variation sur le thème du smart pointer. Il s’agit plus de l’usage du paradigme objet du C++ que d’un cours sur l’orienté objet.

La troisième partie est consacrée aux templates. En fait, il est consacré à la compréhension de la STL. Cela commence doucement par les conteneurs, puis par les itérateurs, les algorithmes et fonctions pour finalement aborder les adaptateurs. Ce n’est pas à proprement parler un tutorial STL, mais plutôt un apprentissage par la construction de ses mécanismes fondamentaux.

La quatrième partie se focalise sur les principes de conception des librairies. Honnêtement, j’ai trouvé cette partie difficile à aborder, les points fondamentaux des auteurs m’ont paru confus, ainsi que le message d’ensemble.

Si elle est courte, la cinquième partie n’est pas la moins intéressante. Intitulée « techniques » c’est en fait une boite à outil à utiliser pour débugger, tracer, gérer des clusters d’objets, etc…

La sixième partie « wrap up » conclut l’ouvrage. Elle est très courte, il y a peu à en dire.

Ce livre à recommander aux personnes fortement motivées pour approfondir leurs connaissances sur le C++. Même s’il prétend le contraire, la prose d’Andrew Koenig n’est pas du Scott Meyers. Le style est plutôt sec, parfois même un peu confus. Mais le niveau de technicité est au rendez-vous, bien qu’il faille quand même un bagage minimum assez conséquent en C++ pour tenir la distance… Le texte a été remanié afin de ne pas donner une impression trop forte de juxtaposition d’articles. C’est gagné de ce côté, même si tout n’est pas lisse. Les parties plus anciennes ont été remises au goût du jour, c’est à dire celui du pré standard 98, même si les auteurs ne cherchent pas à tout prix à dégainer les dernières nouveautés du langage. Il préfèrent se concentrer sur le « core langage ».

Quel que soit votre niveau, il serait surprenant que vous n’en retiriez pas quelque chose. A une exception près : je déconseille fortement aux débutants !

ruminations-c++

Référence complète: Ruminations on C++ – Andrew Koenig & Barbara Moo – Addison Wesley 1997 – ISBN: 0-201-42339-1

Ruminations on C++: A Decade of Programming Insight and Experience


http://www.goodreads.com/book/add_to_books_widget_frame/0201423391?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Optimiser SQL Server, par Rudi Bruchez

Note: 7 ; Pratiquement une révélation !

Utiliser efficacement une base de données telle que SQL Server 2005 nécessite d’une par une compréhension fine de son mode de fonctionnement et de ses structures de données, mais également une connaissance des outils mis à disposition. Livrés en vrac, cet ensemble est presqu’inutile car il faut être guidé au sein de cette pléthore.

Le livre de Rudi Bruchez nous livre incontestablement les clés adéquates. L’auteur est clairement très qualifié pour aborder le sujet et il aborde à la fois la base de données et ses outils en nous gratifiant de liens vitaux pour explorer les sujets plus en profondeur. Je dois dire que nous devons nous estimer satisfaits qu’un ouvrage de bonne teneur soit écrit, en français, c’est rare ! Il ne faudra pas non plus s’attendre à une lecture captivante, le style reste technique, mais abordable la plupart du temps (j’ai toutefois décollé de temps à autre, je l’avoue…).

Le contenu du livre est découpé « à la française », c’est-à-dire avec des chapitres assez gros : les 312 pages de l’ouvrage sont découpés en 9 chapitres seulement. Mais on a vu pire.

Après un premier chapitre purement introductif, le chapitre 2 aborde l’architecture de SQL Server. Ce n’est pas une montée en puissance graduelle, car ce chapitre est le plus difficile de l’ouvrage !

Continuer à lire « Note de lecture : Optimiser SQL Server, par Rudi Bruchez »

Note de lecture : Mastering the Requirements Process, 2nd edition par Suzanne & james Robertson

Note : 8 ; Toujours une référence incontournable sur la gestion des exigences.

Quel meilleur moment pour faire la note de lecture de la seconde édition d’un livre, que la parution de sa troisième édition ? Je connais la réponse : n’importe quel moment tant qu’il précède la sortie de ladite troisième édition ! Toutefois c’est bien maintenant que je la livre. J’avais fait de la première édition mon « book of the year » 1999, voyons ce qu’il en est de celle-ci (la note de lecture de la troisième édition viendra bien un jour, mais plus tard).

Par rapport à la première édition, il est passé de 400 pages à 550 ! C’est une inflation importante pour moi qui apprécie la brièveté du propos, même si il est de qualité. Le grammage supérieur du papier augmente même cette impression de volume supérieur. Sur ces 150 pages supplémentaires, 80 vont au texte principal, mais 70 viennent grossir encore plus les annexes. Je trouvais déjà les annexes de la première édition conséquentes, mais nous avons désormais deux parties dans ce livre : le texte principal long de 365 pages en 15 chapitres et les annexes  au nombre de 4 qui couvrent près de 200 pages. Idéalement il aurait fallu faire deux livres mais le second ne se serait probablement pas ou peu vendu. Quoi qu’il en soit je ne rentrerais pas dans le « manuel de référence Volere » dont j’avoue qu’il ne m’intéresse guère.

J’ai toujours trouvé qu’une manufacture de qualité associée à une mise en page soignée augmentait le plaisir de la lecture. Cela se démontre ici. Outre le texte de qualité, les auteurs utilisent intelligemment et sans excès les marges pour des citations, de l’iconographie ou des références bibliographiques.

Cette seconde édition se démarque de la première par la prise en compte de l’approche agile. Tout d’abord cela se traduit par des paragraphes dédiés à trois profils de projets en introduction de chaque chapitre :

  • Les projets « rabbit » : traduisez, les projets agiles.
  • Les projets « horse » : ce sont les projets standard de l’industrie, itératifs ou « en V », s’appuyant sur une certaine dose de documentation.
  • Les projets « éléphant » : ce sont les projets lourds, impliquant généralement de grosses équipes sur de longues durée de temps et s’appuyant sur une documentation lourde.

L’approche et le point de vue des auteurs par rapport à l’agilité est particulièrement pertinent. Ils se félicitent de l’arrivée d’une approche mettant l’emphase sur le produit plutôt que sur les artefacts, et apprécient l’idée d ‘éliminer une documentation quand elle n’est pas nécessaire. Toutefois cela ne doit pas exclure de procéder avec intelligence par rapport à la compréhension du besoin, ni de réfléchir avant d’implémenter ! Voici un ouvrage qui devrait prendre place sur l’étagère du product owner et même en fait du développeur agile ! Pourtant, si les auteurs considèrent que Volere ne dit pas être suivi comme un processus prescriptif, mais plutôt comme une « check list », lire le texte et l’appliquer avec ce point de vue en tête demande pas mal de maturité.

Venons-en à la matière première : le livre, constitué de 15 chapitres couvrant 360 pages (pour le partie principale). En moyenne, les chapitres sont un petit peu plus long que ce que j’apprécie généralement. Mais la prose est agréable, donc ça va.

Passons rapidement sur le premier chapitre introductif qui balaye rapidement la problématique de la capture des exigences et ce que sont les exigences fonctionnelles et non fonctionnelles. C’est une bonne mise en bouche et le sujet est bien traité. Le second chapitre est quand à lui une introduction à Volere, le processus imaginé par les auteurs. On balaye en diagonale la « big picture », c’est en quelque sorte la table des matières de ce qui suit.

Le « project blastoff » proposé par les auteurs n’est probablement pas l’approche de démarrage de projets que je préfère. Elle ne met pas tellement l’accent sur la vision et le positionnement markéting. Mais de nombreux démarrage de projets sont simplement bâclés. En suivant ce guide qui couvre honnêtement les différentes facettes de ce démarrage, vous avez toutes les chances de faire un travail tout à fait honorable, alors…

L’une des particularité de l’approche Volere est la façon dont elle articule la capture du besoin sur les cas d’utilisation métier et les évènements métier. Le chapitre 4 est consacré à ce sujet. J’aime bien la façon dont cela est abordé ici. Un chapitre à ne pas rater car il conditionne la compréhension de nombreux autres.

James et Suzanne Robertson ne parlent pas de capturer les exigences, mais d’aller à leur pêche. C’est l’objet du chapitre 5. Il y a des techniques pour cela, les auteurs n’en évoquent pas moins de 16 (certaines mieux détaillées plus tard). Autant pour ceux qui pensent qu’aller se promener avec son calepin sous le bras est tout ce qu’il est nécessaire de savoir. En fait les techniques évoquées, brièvement mais efficacement, sont des invitations à creuser ces sujets via les références proposées. Le chapitre le plus riche du livre, sinon le meilleurs.

Le chapitre 6 complète le précédent en évoquant les scénarios. Si cela vous semble rappeler les cas d’utilisation, c’est normal. Mais ce n’est pas un mal. Le chapitre 7 complète les deux précédents en clarifiant la notion d’exigence fonctionnelle et surtout en s’appliquant à différencier le besoin de la solution.

Les exigences non fonctionnelles sont abordées au chapitre 8. Les auteurs en proposent une taxonomie. Celle-ci en vaut bien une autre. Quoi qu’il en soit le sujet est bien couvert.

Avant même que TDD ne soit à la mode, Volere évoquait la notion de « Fit criterion » pour les exigences. Le chapitre 9 expose cet aspect et explique comment ces « fit criterion » aident à préciser et lever les ambigüités des spécifications.

Le chapitre 10 aborde la question de la chose écrite. Volere propose un Template de rédaction du besoin, ainsi que le « Shell » qui conviendra mieux aux agiliste. Pas le chapitre le plus passionnât du livre, à l’exception de la partie consacrée au « Shell ».

Ecrire les exigences ne suffit pas. Elles peuvent et doivent être revues (même si elles ne sont pas écrites). Le « quality Gateway » du chapitre 11 traite cet aspect. A ne pas rater.

Le prototypage des exigences abordé au chapitre 12 n’est probablement pas le texte de référence sur le sujet. Mais au moins est-il abordé. A contrario, le chapitre 13 sur la réutilisation des exigences est le moins convainquant du livre. Je ne l’étais déjà pas beaucoup en 1999. Je le suis moins encore maintenant. Mais peut-être que je manque encore de maturité…

Le chapitre sur la revue des exigences complète le « quality Gateway » du chapitre 11, il aurait dû le prolonger dans le plan du livre.

Le livre se conclut par un chapitre 15 qui fait une sorte de « wrap up » du livre, de manière un peu désordonnée je dois dire. J’ai cependant bien aimé la référence aux rétrospectives.

Même si la note du livre baisse un peu, celui-ci reste une de mes références principales sur le sujet. La qualité du contenu et de la rédaction, la richesse de la matière en font une référence que je recommande très fortement. La prose a été modernisée à plusieurs égard. Pour celui ou celle qui désire faire de l’analyse son métier, ce sont là d’excellentes fondations, d’autant que ce livre ouvre sur de nombreuses autres références.

mastering-reqt-proc-2edt

Référence complète: Mastering the Requirements Process, 2nd edition – Suzanne Robertson & James Robertson – Addison Wesley 2006 – ISBN : 0-321-41949-9

Mastering the Requirements Process


http://www.goodreads.com/book/add_to_books_widget_frame/0321419499?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Processus métiers et S.I., par Chantal Morley, Jean Hugues, Bernard Leblanc & Olivier Hugues

Note : 3 ; Une synthèse universitaire qui nous laisse face à nous-mêmes

Sur le papier, ce livre présente un incontestable intérêt : décrire les processus métier et faire le lien avec le système d’information, cela a de quoi éveiller l’attention ! De plus, la taille de l’ouvrage (inférieure à 200 pages) me laissait présager de bonnes choses. La réalité est hélas différente, et le texte me laisse largement sur ma faim. Mais revenons à son contenu, qui est divisé n 3 parties :

La première partie est dédiée aux processus dans les organisations. Cette partie développe les grands courants de processus, tel le « just in time », la qualité totale, etc… ainsi que les normes telles que l’ISO. La surprise, c’est de voir traité ici les processus de développement logiciel, ce qui est complètement incohérent, étant un sujet séparé. Hélas, cela continuera au long du livre, et on finit par avoir du mal à comprendre où les auteurs veulent en venir !

La seconde partie, consacrée à la modélisation des processus, constitue le sujet central du livre (au propre comme au figuré), en tout cas ce pour quoi j’ai acquis le livre. Malheureusement le sujet est fort mal traité. Bien que cela me fasse toujours plaisir de voir un métamodèle, la description de la modélisation est surtout statique et développe l’exposé de plusieurs approches, mais sans jamais prendre de position. Au final, on n’a pas d’idée claire du « comment » sur la façon d’appréhender concrètement la modélisation métier dans une entreprise. On n’a pas non plus d’indication sur les liens entre modélisation métier et SI. Bref, la cible est ratée.

La troisième partie est plutôt anecdotique, consacrée à la présentation de 3 outils. Dans le principe, on ne s’en plaindra pas, car cela permet d’avoir une illustration concrète des concepts. Le choix des 3 outils présenté est toutefois curieux, car il rassemble un véritable outil de modélisation (PowerAMC), un outil de CRM /  groupware (Clarify) et un outil de Workflow (Oracle Workflow). Donc, encore une fois, les auteurs n’ont pas d’idée claire du sujet qu’ils veulent couvrir ni de la direction qu’ils veulent montrer.

Pour ceux qui souhaiteraient s’engager sur le chemin de la modélisation métier, ce n’est tout simplement pas avec ce livre que vous quitterez la ligne de départ.

processus-metiers-SI

Référence complète : Processus métiers et S.I. : Evaluation, modélisation, mise en œuvre – Chantal Morley, Jean Hugues, Bernard Leblanc & Olivier Hugues – Dunod 2005 – ISBN : 2-10-0077099-1

Processus métiers et S.I.


http://www.goodreads.com/book/add_to_books_widget_frame/2100070991?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : NoSQL Distilled, par Pramod J. Sadalage & Martin Fowler

Note : 4 ; Plus qu’une distillation, une introduction légèrement frustrante.

Dans la même veine que le « UML distilled », Martin Fowler accompagné d’un de ses collègues de Thoughtwork nous produit un ouvrage très court (moins de 160 pages !) destiné à nous faire découvrir et à nous donner les clés du monde NoSQL ou plutôt de cet écosystème. Pour donner un bon rythme au texte, cet opuscule est découpé en 15 chapitres, ce qui fait une moyenne de 10 pages par chapitre.

On commence par un petit historique sur l’avènement du mouvement NoSQL. Pas indispensable, mais sympathique et bien écrit. Les chapitres 2 et 3 abordent la problématique du modèle de données, de l’intérêt de considérer des agrégats de données, mais aussi la souplesse qu’apporte des bases de données sans schéma … avec le corollaire d’avoir une base de données propriétaire de l’application sachant l’interpréter.

Trois chapitres sont consacrés aux principes sous-jacents de ces bases de données. Le chapitre 4 passe rapidement sur le modèle de distribution. Le chapitre 5 passe moins rapidement sur la gestion de la consistance (vous savez, le fameux « eventually consistent »). En fait, il est même passablement ennuyeux. Enfin le chapitre 6 évoque en quelques pages la question de l’estampillage des versions dans un environnement clusterisé actif / actif.

Difficile, impossible même, d’évoquer les bases NoSQL sans parler du « map reduce ». C’est ce que fait le chapitre 7, bien mais pas aussi brillamment que je me serais attendu de la part de Martin Fowler.

Le cœur du livre est sans contestations possible occupé par les quatre chapitres suivants qui forment le début de la troisième partie. Chacun d’entre eux traite d’un type de base NoSQL.

Le chapitre 8 aborde les bases de données clé-valeur, en prenant comme exemple Riak. Les auteurs ont pensé que 6 pages suffisaient pour s’occuper de cela. Moi j’ai trouvé cela franchement léger.

Les bases de données « orienté document » ont à peine droit à un meilleur traitement au chapitre 9. C’est MongoDB qui fort logiquement a été choisi, le sujet étant traité en 9 pages. Malgré tout, cela me laisse un meilleur goût tout en étant un poil superficiel.

10 pages à peine pour évoquer les bases de données orientées colonnes, c’est un peu un challenge car le sujet n’est pas simple, ou plutôt le paradigme est tellement différent de ce que nous connaissons qu’il aurait mérité plus d’attention que ce que lui accorde ce chapitre 10. J’en sors un peu confus et convaincu que j’ai besoin d’un complément d’information sur la question.

Si différentes des autres types, les bases de données orientées graphe telles que Neo4J qui sert ici d’exemple m’apparaissent clairement abordées dans ce chapitre 11, même si c’est seulement sur 10 pages. En fait ce livre m’incite à me pencher plus avant sur cette base de données et ce que je fais en ce moment ! Ne serait-ce que pour cela : merci !

Le chapitre 12 sur la migration de schéma de données est une blague. Il n’était pas franchement utile, loin de là. On reconnaît l’insertion au chausse-pied du sujet favori de Pramod Sadalage. De ce sujet et de quelques autres, je me serais bien passé au profit d’un développement plus conséquent des 4 chapitres les plus importants du livre !

La persistance polyglotte est un sujet déjà abordé en début de livre. Sans être ennuyeux, les 7 pages de ce chapitre 13 semblent passer une seconde couche.

J’aime bien l’idée d’un chapitre « beyond NoSQL » mais les auteurs n’ont pas tant à dire dans ce chapitre 14. Dommage. Finir par un chapitre sur le choix du type de base NoSQL est une bonne idée. Mai ce n’est visiblement pas si facile à faire, car cela sonne un peu creux.

Qui aime bien châtie bien. Et Martin Fowler d’habitude très brillant dans l’exercice ne convainc pas dans celui-ci. Il prends un « 4 » là où j’aurais certainement noté 5 pour quelqu’un d’autre. Le livre reste fidèle à l’idée de brièveté, mais le contenu est fort mal réparti : trop de place est accordée à des sujets peu importants ou qui pourraient être mieux synthétisés, alors que la partie importante de l’ouvrage aurait dû bénéficier d’un meilleur traitement sur deux ou trois fois plus d’espace !

C’est un livre qui pourra être utile au manager, car il traite, ou plutôt balaye le sujet dans un volume qui peut être absorbé en un week-end et permet de savoir de quoi on parle. Pour ma part, je me sens quelque peu frustré, et je pense que je vais me tourner vers le « seven databases in seven weeks » paru chez Pargamatic Bookshelf !

nosql-distilled

Référence complète : NoSQL Distilled, a brief guide to the emerging world of polyglot persistence – Pramod J. Sadalage & Martin Fowler – Addison Wesley 2012 – ISBN : 978 0 321 82662 6

NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence

http://www.goodreads.com/book/add_to_books_widget_frame/0321826620?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Using SANs and NAS, par W. Curtis Preston

Note : 7 ; Le stockage réseau vu par Mr backup !

Comme je viens de le dire plus haut, Curtis Preston est surtout connu en tant qu’expert du backup. Il nous livre ici un ouvrage pour démystifier les SANs et NAS. Et franchement, il fait bien son travail. Tout d’abord la taille du livre limitée à 190 pages (hors annexes), elles-mêmes largement émaillées d’illustrations permettent de ne pas êtres noyés dans la complexité du sujet et de rester clair. Pour rester dans les traits généraux de l’ouvrage, je dois dire que j’ai particulièrement apprécié le style très conversationnel de l’auteur, sa façon très directe et concise d’aborder problèmes et définitions et aussi, chose trop rare, ses prises de positions sur l’ensemble des sujets abordés. Curtis Preston n’hésite pas non plus à nous faire part de son expérience, mais celle-ci doit hélas être appréhendée avec un certain recul car le texte date hélas de 5 ans ! Il serait temps de publier une seconde édition… Parlons maintenant du contenu.

A une exception près (dont je reparlerais plus loin), les chapitres sont assez courts, de 15 à 25 pages : 3 sont consacrés au SAN et 3 sont dédiés au NAS, le premier chapitre est introductif, il met les deux technologies en perspectives et fait état de leurs mérites comparés. Croyez-moi, il permet à lui seul d’y voir plus clair.

Les chapitres 2 et 3, consacrés au SAN, sont respectivement consacrés à l’architecture fibre channel et à la gestion du SAN. Là encore le propos est un modèle de clarté. La pile protocolaire FC et les différents éléments matériels sont expliqués simplement mais précisément. De même toutes les fonctions de gestion (slicing, zoning, multi-pathing et load-balancing, etc…) sont passés en revue avec une remarquable efficacité.

J’en viens au chapitre 4, qui développe le backup au sein d’un SAN. C’est évident, c’est le sujet préféré de l’auteur. Le chapitre approche les 50 pages et contrairement au reste du livre, on s’enlise dans un niveau de détail rébarbatif, même si ils s’avèreront indispensables lors de la mise en œuvre. Bref ce chapitre dénote par rapport au reste du livre et coûte à l’auteur au moins un point de notation.

Les chapitres 5 à 7 traitent du NAS, dans le même ordre des sujets que pour le SAN : architecture, gestion et sauvegarde. On retrouve la qualité et la vigueur du propos, il n’y a rien à y redire. On a un peu plus de chance côté sauvegarde car le chapitre est plus concis.

En bref, voici un excellent livre sur le sujet, qui vous permettra d’aborder le sujet, avant de plonger plus en profondeur si vous en avez le besoin. Il faut prendre un peu de distance technologique car le livre est ancien. Aussi une seconde édition me paraît maintenant indispensable.

using-SAN-NAS

Référence complète : Using SANs and NAS – W. Curtis Preston – O’Reilly & associates 2002 – ISBN : 0-596-00153-3

Using Sans and NAS: Help for Storage Administrators


http://www.goodreads.com/book/add_to_books_widget_frame/0596001533?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Effective Enterprise Java, par Ted Neward

Note : 9 ; Un pur régal ! Book of the year 2005 !

Ce livre mérite bien son titre, car il fait honneur à son grand frère (effective C++), à la fois sur la qualité, la pertinence et la technicité de son contenu, mais également sur le style agréable, vivant et parfois même humoristique (ce qui tire aussi parfois le niveau d’anglais un peu vers le haut). Je ne suis pas vraiment un expert J2EE, mais le livre m’a accroché, car sans être débilitant, il exprime clairement les concepts, mais surtout il s’appuie et développe les principes d’architectures sous-jacents. En fait, le livre aurait pu s’appeler: “effective enterprise applications with J2EE”. Loin d’être un reproche, cela confère de la solidité à l’ouvrage, et même de la pérennité par rapport aux futures évolutions des API. Dans la lignée de “l’effective series” le livre démythifie les API J2EE, et met en perspective la réalité des applications d’entreprise par rapport aux discours commerciaux des vendeurs des serveurs d’application, abordant clairement les aspects que l’architecte “ne peut ignorer” ! Les différentes facettes de l’architecture sont abordées, même celles souvent à peine ou mal évoquées telles que les transactions et la sécurité. Les 75 items du livre sont découpés en 7 volets :

  • Architecture : Traite les sujets tels que répartition données / traitements, gestion des crashs, de la scalabilité et des aspects annexes tels que déploiement, administration et monitoring.
  • Communication : Ce chapitre traite des contextes de communications, allers-retours entre tiers et autres choix de styles de communication
  • Processing : Le traitement de ce chapitre est essentiellement focalisé sur les transactions (techniques et utilisateurs), ce qui comprends les différents types de transaction, d’isolation, ainsi que les points de reprise et es rollbacks
  • State management : Ce sujet englobe les contextes de transaction, mais surtout les sujets afférents à la persistance.
  • Présentation : ce court chapitre traite des clients riches et de la séparation traitement / présentation.
  • Sécurité : Peut-être un des chapitres les plus étonnants, car outre que j’y ai appris pas mal de choses (connaissez-vous le « SQL injection », l’attaque la plus simple et la plus courante qu’un site puisse subir ?), l’auteur met l’emphase d’avantage sur le processus que sur la technique !
  • System : On retrouve ici toute la plomberie bas niveau : garbage collecting, sérialisation, etc…

Au premier abord, le livre est déconcertant, car épais de 450 pages, il ne présente quasiment aucun diagrammes (en présenter quelques uns aurait pu aider), un peu de code (mais cela reste raisonnable et ciblé), mais les craintes s’envolent une fois la lecture commencée. Le style rédactionnel, s’appuyant sur des exemples ne permet pas seulement d’apprendre, mais également de réfléchir et parfois d’anticiper sur la compréhension de la solution. Le livre sert également remarquablement bien de points d’entrée vers d’autres lectures, on peut faire bon usage de la bibliographie commentée.

Voilà un texte qui mériterait sans aucun doute une seconde édition. Car si la substance est bien construite pour résister au temps, celui-ci fait quand même son  œuvre : le livre date de 2005 et beaucoup de choses ont quand même changé depuis. Je prends quand même le risque de vous le conseiller malgré son âge honorable.

effective-enterprise-java

Référence complète : Effective Enterprise Java – Ted Neward – Addison Wesley / Effective software development series 2004- ISBN: 0-321-13000-6

Effective Enterprise Java


http://www.goodreads.com/book/add_to_books_widget_frame/0321130006?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Logiciels de stockage de données, par Guy Chesnot

Note : 3 ; Quelques informations intéressantes dans un ouvrage déjà très vieillissant, affublé de plus d’une approche trop académique.

Ce livre s’intéresse au stockage de données, d’un point de vue des logiciels d’exploitation de bas niveau. C’est certes un choix, mais je regrette personnellement qu’il fasse autant abstraction de l’architecture matérielle sous-jacente, car l’aspect intéressant réside dans le couplage des deux. Mon second grand regret vient de l’évident vieillissement du texte. Celui-ci ne traite absolument pas de la virtualisation du stockage qui est pourtant l’axe de développement le plus important aujourd’hui. L’ouvrage se découpe en 9 chapitres.

Le premier chapitre expose les principes généraux du stockage de données, les caractéristiques qui y sont attendues, etc… Bref, on campe le décors et l’on y apprend pas grand-chose.

Le second chapitre qui traite tout bonnement des systèmes de gestion de fichiers reprend réellement les choses à la base. Les principes d’adossement du système de fichier aux disques physiques y sont abordés. L’objectif n’est pas de traiter en profondeur les stratégies et algorithmes de mapping entre système de fichier et ressources physiques (un sujet qui exigerait au moins un livre à lui tout seul), mais le deal est incontestablement rempli. Aujourd’hui il faudrait aussi parler des SSD, mais nous sommes en 2007…

On passe à la vitesse supérieure avec le chapitre 3 qui aborde les systèmes de fichier répartis. Évidemment on y aborde NFS et ses dérivés. Le traitement du sujet est quelque peu frustrant, car limité aux principes et donc assez abstrait.

Le chapitre suivant (le 4) consacré à l’hétérogénéité aborde le cas des réseaux mixant des systèmes Windows et Unix, entre autres, et partageant leurs ressources de stockage. Un propos hélas destiné à l’obsolescence et justement devenu obsolète.

Dans le chapitre 5, ce sont les systèmes de fichiers partagés, donc les NAS et autres SANs qui y sont abordés. C’est mon sujet d’intérêt principal et il n’est pas abordé de façon assez concrète. On en ressort pas avec une bonne appréhension des architectures SAN, par exemple. Donc exit.

Sauvegarde et restauration sur bande sont traités au chapitre VI. Quand on méconnaît le sujet, comme moi, il s’agit là d’une bonne introduction, présentant fort judicieusement les différentes options et stratégies.

La gestion des hiérarchies de stockage (tels que les stockages secondaires) couverte au chapitre 7 est la continuité logique du chapitre 6. La encore, on apprend pas mal de choses, mais le refus de l’auteur d’aborder la question de l’architecture physique afférente rend hélas ce chapitre insoutenablement abstrait.

Toujours dans le même fil, le chapitre 8 est dédié à l’archivage. Je n’ai pas grand-chose à en dire.

On garde souvent le plus important pour la fin, c’est le cas ici. Le chapitre 9 traite de l’intégration : architecture, gestion des volumes, etc. sont traités ici. C’est seulement un peu court et un peu tard.

Il est dommage qu’un ouvrage ayant choisi un sujet de niche si pertinent soit si décevant. L’auteur n’est pas en mal de connaissance, mais le ciblage de son propos rend celui-ci peu pertinent. Ceci couplé avec un vieillissement prématuré (en 2007, imaginez aujourd’hui …) et un style rédactionnel fort peu sexy me conduit à déconseiller cette lecture.

logiciels-stockage-donnees

Référence complète : Logiciels de stockage de données – Guy Chesnot – Vuibert 2000 – ISBN : 2-7117-8667-6

Logiciels de stockage de données


http://www.goodreads.com/book/add_to_books_widget_frame/2711786676?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Kanban pour l’IT, par Laurent Morisseau

Note : 7 ; Pas là pour rigoler !

Le livre de Laurent Morisseau, référence en France sur Kanban était grandement attendu. Notre attente n’a pas été vaine, car nous avons hérité d’un ouvrage fort complet sur la question. Mais revenons d’abord au livre en lui-même.

Celui-ci est plus court que ce à quoi je m’étais attendu : 215 pages. Qui plus est, Laurent a fait le choix de le découper en de nombreux chapitres : pas moins de 20 ! Je ne peux qu’approuver cette approche, qui aide grandement à rythmer la lecture. Mais j’ai aussi eu la surprise de constater qu’il résiste bien plus à la lecture que ce à quoi je m’attendais. Je reviendrais sur ce point un peu plus tard.

La première partie du livre sert à camper le décor. Au début de chaque partie, Laurent fait un zoom sur la mind-map qui lui a servi à structurer ce livre. C’est original et intéressant, mais bien que pratiquant régulier de la chose je ne m’y attarde pas, préférant lire le texte linéairement et découvrir les choses au fur et à mesure.

Les 3 chapitres de cette première partie sont une introduction en douceur, ce que je considère toujours comme une bonne chose. On y définit les termes, les concepts, ainsi que la place de Kanban au sein des différentes méthodes (Kanban n’étant pas une méthode). Le 3ème chapitre est une introduction directe au reste de l’ouvrage car il introduit le cycle « PDSA », les 5 pratiques et les 3 piliers fondamentaux qui forment la charpente de la présentation de Kanban par l’auteur.

La seconde partie débute par une présentation générale de Kanban, qui est un peu à cheval avec l’objectif de la première partie et une présentation de l’étude de cas qui servira de fil rouge à l’étude de Kanban tout au long du livre. Le principe de l’étude de cas est généralement excellent, et c’est le cas ici : il donne un aspect concret au descriptif et sert de liant entre les chapitres. Pour une raison que j’ai du mal à expliquer, j’ai eu du mal à rentrer dans cette étude de cas et j’ai dû faire pas mal d’effort pour me rappeler du point où l’on s’était arrêté précédemment. Il est temps d’aborder le cycle PDSA qui couvre les chapitres 5 à 19, donc la quasi-totalité du texte !

Concevoir. A elle seule, cette partie courre du chapitre 5 au chapitre 9 ! Cela débute par la découverte de l’élément de travail qui figurera dans le Kanban, quelles sont sa nature et sa granularité. Cela nous guidera vers la découverte du flux de travail. Cela fait, il faut établir les règles du système, celles s’appliquant aux interfaces d’entrée/sortie (sous quelles condition un élément peut-il transiter) et celles inhérentes au système (changement de priorité, escalade, purge, etc…). On souffle un peu au chapitre 7 (tout en apprenant des choses) en nous intéressant à l’aspect visualisation, au niveau du tableau et des cartes Kanban.

L’une des choses qui différencie un Kanban et un simple tableau de tâches est la fameuse limite de travail en cours ou limite de « WIP ». C’est l’objectif du chapitre 8. Il se poursuit au chapitre suivant par son complément naturel, la gestion des cadences et de capacité du système.

Mettre en œuvre. Deux chapitres sont consacrés à cette étape. On s’intéresse d’abord au travail au quotidien : qu’est-ce qui guide la prise en charge des tâches, l’affectation. Comment traite-t-on les cas de blocage. Le suivi de la vie du Kanban est le second volet, on y parle débit et temps de cycle.

Etudier. C’est une partie très lourde, aussi bien sur la couverture du livre, car elle s’étend du chapitre au chapitre 16, que sur la teneur très technique et même mathématique du contenu !

Les chapitres 12 à 14 traitent des différentes typologies de système : on commence par les systèmes globalement saturés, ce qui nous amène sur la théorie des files d’attentes, puis sur la loi de Little. Sachez-le par avance : vous n’allez pas vous marrer ! Les systèmes localement saturés nous font aborder la théorie des contraintes et Laurent Morisseau fait très justement un parallèle avec le problème des bouchons de circulation. Le système Kanban variable nous fait aborder une approche statistique du système concernant les temps de cycle des éléments qui y circulent (motivation du lecteur nécessaire).

Kanban n’est jamais très loin du Lean, le chapitre 15 dédié au problème des limites top hautes nous permet d’aborder la notion de Muda. Enfin le chapitre 16 nous guide vers l’étude de l’impact des changements des limites sur le comportement du système ; capacité et temps de cycle. Beaucoup de diagrammes émaillent ce chapitre qui est toutefois ardu.

Améliorer. Cette phase est couverte par les chapitres 17 à 19. Tout d’abord la découverte des comportements émergents nous permet d’aborder deux notions importantes : les classes de services et les différents modèles de collaboration de l’équipe.

Est-il possible d’arriver à un contrat de service avec Kanban ? L’auteur réponds oui, mais cela repose sur certains préalables de référence, de contrat de service et de standardisation. Ce qui requiert un niveau de maturité élevé.

L’auteur conclut l’ouvrage d’abord par un bilan de l’approche Kanban en le positionnant dans le modèle Cynefin, puis en abordant l’extension du modèle Kanban en abordant l’Obeya Lean.

A titre de synthèse, il y a 3 aspects qui m’apparaissent proéminents dans ce livre :

  • Le contenu est très riche. C’est une surprise, une excellente surprise. Le livre en main pour la première fois, on ne s’attend certainement pas à un tel contenu, eut égard à sa taille réduite et à son contenu apparemment aéré.
  • Il est très abondamment et bien illustré. L’auteur a de toute évidence fait de grands efforts en ce sens. Et si certains diagrammes sont complexes, cela aide beaucoup.
  • Le texte est difficile. L’auteur ne fait pas de concession à la fluidité de lecture. C’est en quelque sorte une lecture qui se mérite. Si cela est justifié en partie par la richesse du contenu, je pense néanmoins qu’il aurait été possible faire mieux de ce côté.

Je suis habitué aux livres en français qui sont, sinon des textes de seconde zone (mais il y en a), du moins des ouvrages qui sont les petits frères des titres de référence de la littérature anglo-saxonne. Il n’en est rien ici. Même si je ne suis pas le mieux placé pour l’affirmer, Laurent Morisseau hisse son livre au niveau des textes de référence du domaine ! C’est inattendu et cela seul devrait vous convaincre de vous y attaquer.

En parlant d’attaquer, l’expression me paraît adaptée à cette lecture. Je l’ai déjà dit, elle est difficile. Une des raisons, je pense, est que Laurent a dû beaucoup s’appuyer sur son mind-map lors de l’écriture et cela transparait par un style très « structuré » qui nuit à la linéarité de la lecture. En lissant un peu plus son texte, Laurent aurait gagné un point supplémentaire à la note que j’ai donnée.

Je ne voudrais pas terminée cette note de lecture par une impression mitigée. Il est temps d’aller supplier votre libraire de vous céder une copie de livre à prix d’or !

kanban-it

Référence complète : Kanban pour l’IT, une nouvelle méthode pour améliorer les processus de développement – Laurent Morisseau – Dunod 2012 – ISBN : 9782100578672

Kanban pour l'IT


http://www.goodreads.com/book/add_to_books_widget_frame/2100578677?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : SAN et NAS, Solutions de stockage par Xavier Bouchet & Henri Gillarès-Calliat

Note : 6 ; Un tour d’horizon clair et agréable à lire, mais attention à l’obsolescence !

Clairement, ce livre remplis bien son office, c’est-à-dire poser les fondations de ce que sont les SAN et le NAS, ce qui n’est pas si évident. Si le premier chapitre est un peu « bateau », il présente quand même l’intérêt de bien faire comprendre l’objectif poursuivit par le SAN, à savoir un réseau dédié au stockage et même la virtualisation de ce stockage. Le reste du livre est découpé en 3 parties.

La première partie est directement consacrée au SAN et lui consacre 6 chapitres. Le chapitre 2, le premier de cette seconde partie est le plus riche d’enseignements car il décrit clairement les différentes typologies de réseaux SAN. A contrario, si dans l’absolu la norme SCSI n’est pas hors totalement hors sujet, le chapitre 3 qui lui est dédié est quand même très technique, et les auteurs auraient pu faire l’impasse dessus. Je soupçonne que c’est le niveau de technicité de l’un des auteurs en la matière qui a guidé ce choix. C’est aussi pour cela, je pense que le chapitre 4 consacré au fiber channel n’est pas moins technique. Mais  comment parler de SAN sans parler de fiber channel, n’est-ce pas ? Le chapitre 5 dédié aux différentes approches de la virtualisation est le second plus intéressant de cette partie. Le tableau dressé est bien plus limpide que celui réalisé dans le « storage virtualization » de Tom Clark. Les deux derniers chapitres sont consacrés aux protocoles montés au-dessus d’IP : iFCP et iSCSI. Malgré le penchant très technique déjà évoqué, ces chapitres sont clairs, mais ils n’évoquent pas la place de ces solutions dans un SAN : liaisons grandes distances, topologies avec gateways, considérations de sécurité…

La troisième partie est dédiée aux NAS et est complètement décorellée de la partie précédente. Il n’y a que deux chapitres dans cette partie, le premier d’entre eux, le chapitre 8 est dédié au SAN proprement dit. Si le sujet est correctement et encore une fois clairement traité, on regrettera que le sujet ne soit pas connecté au sujet précédent. J’ai du mal à croire que personne n’ait pensé à réaliser un NAS (ou un cluster de NASs) au-dessus d’un SAN… Le chapitre 9, consacré à NFS est pratiquement hors sujet. Mais comme on dit : ça ne gêne pas !

La dernière partie traite de sauvegarde, de médias de stockage et de plans de secours. Dans cet ordre. C’est un peu décousu, mais ça complète bien le sujet. J’ai particulièrement apprécié le chapitre consacré à l’archivage sur bande, malgré que l’auteur se réserve, avec un propos particulièrement partisan, aux technologies LTO et AIT. On regrettera aussi que ce chapitre 10 donne si peu d’indication sur la façon dont ces médias s’inscrivent dans un SAN ! Les chapitres 11, 12 et 13 sont consacrés respectivement aux disques durs, aux CD-ROM et aux DVD. Les chapitres 12 et 13 ont vieilli prématurément et apportent peu au sujet, tandis que le chapitre 11, si il n’est pas indispensable au sujet nous donne une vision claire et complète des technologies liées aux disques durs et de leurs implications. Le chapitre 14 consacré aux plans de secours se raccorde certes assez mal au reste du sujet, mais il est clair et bien écrit et donne assez de billes pour inciter à compléter nos connaissances sur le sujet. Je considère donc qu’il remplit son office.

Bref, je n’ai pas regretté ma lecture (lecture aisée, d’ailleurs, car j’ai achevé le texte en 2 jours sans forcer). Je le recommande, avec la réserve toutefois que le livre pourrait utilement être actualisé. Au contraire de l’ouvrage de Tom Clarke, les auteurs ont fait (à juste titre, je pense) le choix de faire référence aux technologies. Hélas, le texte vieillit d’autant plus vite. Il serait temps de sortir une seconde édition !

SAN-NAS-InfraStok

Référence complète : SAN et NAS, Solutions de stockage, sécurité, infrastructure – Xavier Bouchet & Henri Gillarès-Calliat – Dunod 2003 – ISBN : 2-10-005404-X

San Et Nas:  Les Infrastructures Des Réseaux De Stockage


http://www.goodreads.com/book/add_to_books_widget_frame/210005404X?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on