Note de lecture : Making Sense of NoSQL, par Dan McCreary & Ann Kelly

Note 4 ; NoSQL plus ou moins décrypté pour le manager

Voici un ouvrage « à priori » destiné aux managers. En tout cas son objectif est de donner une image du paysage NoSQL sans nécessité de voir une ligne de code. Dans le principe, le livre atteint son objectif : il couvre les différents types de bases NoSQL, avec toutefois un biais marqué vers les bases XML (qui ne sont généralement pas considérées comme des bases NoSQL), ces dernières ayant droit à leur propre chapitre contrairement aux autres ! Mais le texte me laisse quand même un sentiment d’inachevé, il ne permet pas vraiment de comprendre les patterns d’usage des différentes bases par manque de parti pris.

L’ouvrage est assez conséquent pour une introduction. Il compte 275 pages réparties sur 12 chapitres. Ceux-ci sont eux-mêmes regroupés en 4 parties. La première d’entre-elle est une introduction, courte d’un peu plus de 30 pages et de deux chapitres. Le premier répond au « pourquoi » en exposant succinctement quelques cas d’études des grands du Web, c’est hélas très superficiel. Le second s’attaque aux concepts : documents, sharding, théorème de CAP, cache, etc… C’est un peu brouillon et j’aurais préféré y voir une bonne exposition des typologies de bases.

Continuer à lire « Note de lecture : Making Sense of NoSQL, par Dan McCreary & Ann Kelly »

Note de lecture : GIS for Web Developers, par Scott Davis

Note : 5 ; Un survol plaisant, mais aussi frustrant

Je pense l’avoir souvent dit, mais je le redis : « pragmatic bookshelf » est un excellent petit éditeur et j’en achète la plupart des titres sans regarder plus avant. C’est ce que j’ai fait pour celui-ci. De plus, bien que les GIS ne soient pas un de mes sujets du moment, ils provoquent chez moi des réminiscences de mon passé de géologue…

La caractéristique de ce livre de 240 pages que l’on remarque aussitôt est son impression quadrichromique (c’est certainement pour cela qu’il est imprimé en Chine). Il faut dire que l’ouvrage est émaillé de nombreuses cartes en couleur. Lorsque l’on en débute la lecture, la seconde chose que l’on remarque est sans aucun doute le style particulièrement vivant et agréable de l’auteur. En fait, il me rappelle celui de Scott Meyers (mais ce dernier garde un petit avantage). Le livre se veut une initiation au GIS pour les développeurs ne connaissant pas encore le domaine. L’auteur y consacre 9 chapitres.

Les 4 premiers chapitres sont consacrés aux standards géographiques : représentations vectorielles ou raster et surtout les différents types de projections et de conversion. Un des aspects particuliers du GIS est l’importance primordiale des sources de données et de la possibilité de les combiner. Sur l’aspect des standards de référentiels spatiaux et des conversions, je regrette cependant que l’auteur ait fait l’économie de diagrammes explicatifs. Les explications textuelles restent difficiles à conceptualiser…

Continuer à lire « Note de lecture : GIS for Web Developers, par Scott Davis »

Note de lecture : Stand Back and Deliver, par Pollyanna Pixton & al.

Note : 7 ; Du modèle de valeur au modèle de leadership.

Pas facile de classer ce livre de prime abord. Finalement, c’est du côté du « Product management » qu’il a le plus sa place. La première chose qui surprend dans ce livre, c’est le titre ! Les auteurs s’en expliquent dans la préface : le point clé du « process », c’est de mettre ensemble les acteurs clés, puis de se tenir en retrait ! La seconde chose qui surprend un peu, c’est la taille de l’ouvrage : seulement 150 pages, qui ne nécessitent guère plus de 7 chapitres.

Le premier chapitre ne compte que 9 pages. C’est une introduction au reste du texte, on y présente dans les grandes lignes les 4 éléments du framework qui feront l’objet des chapitres suivants. Justement le chapitre 2, avec ses 30 pages a trait au premier élément : le « purpose alignment model ». Celui-ci permet de qualifier les éléments d’un portefeuille de projets par rapport aux axes différentiateurs de l’entreprise. Bref, un bel exemple de discrimination par la valeur. Mais surtout un modèle pleinement utilisable tous les jours. Certainement le plus utile du livre !

Le chapitre 3 a trait à la collaboration, c’est l’aspect « stand back » du titre. Ici les auteurs, au long des 25 pages de ce chapitre, nous proposent 3 outils :

Continuer à lire « Note de lecture : Stand Back and Deliver, par Pollyanna Pixton & al. »

Note de lecture : Use Cases : Requirements in Context, par Daryl Kulak & Eamonn Guiney

Note : 6 ; Bonne mise en pratique du cycle itératif et de bonnes idées, mais pas entièrement concluant.

Ce livre présente les cas d’utilisation dans le cadre d’un processus itératif, en fait celui d’Unfied Process. A ce titre, il propose une approche incrémentale pour la spécification des cas d’utilisation, basée sur celle de Craig Larman. Cet ouvrage taille aussi un short à la gestion des exigences, par rapport auxquels les auteurs préfèrent la spécification des règles métier, même si en fait c’est surtout la production de gros documents de spécification monoblocs qui est remise en cause. La description des spécifications incrémentale est réellement valable et concrète, et de plus desservie par des exemples concrets en annexe.

La construction du livre est un peu curieuse, car les annexes forment la moitié de l’ouvrage, le texte principal ne comptant que 170 pages structurées en 11 chapitres. Le premier d’entre-eux consacre ses 18 pages à l’identification des problèmes liés à l’approche classique. La prose manque un peu d’élan lyrique, mais s’efforce néanmoins de bien synthétiser ces points d’achoppement. Disons que le boulot est fait.

Le second chapitre s’étend sur 32 pages, il s’agit d’une introduction aux cas d’utilisation d’inspiration très « Gery Schneider ». On y aborde plutôt efficacement les basiques de la représentation des cas d’utilisation et les bonnes règles de conduite. Plus globalement on y traite aussi des cas d’utilisation dans l’environnement UML. Un chapitre rondement mené.

Continuer à lire « Note de lecture : Use Cases : Requirements in Context, par Daryl Kulak & Eamonn Guiney »

Note de lecture : Managing Software Requirements, par Dean Leffingwell & Don Widrig

Note : 7 ; Les exigences selon RUP, avec beaucoup d’éléments sur les pratiques, mais aussi un manque de matière sur la mise en œuvre.

Ce livre traite de la gestion des exigences vue par Rational Unified Process. Les auteurs ont d’ailleurs travaillé sur l’outil Requisit Pro. La lecture en est plaisante, le découpage en nombreux chapitres assez découplés bien que complémentaires y aide beaucoup. Comptez 385 pages pour ce volume qui comprend en sus près de 90 pages d’annexes ! Les 35 chapitres que les auteurs ont concoctés sont divisés, non en parties mais en 8 « skills », une petite subtilité, mais assez intelligente !

En une trentaine de pages comptant quand même 3 chapitres, la première partie fort opportunément appelée « introduction » est vite passée ! Si on s’intéresse aux grands classiques du « pourquoi » des exigences, c’est à dire le coût des exigences erronées, on arrive vite à la définition de ce qu’est une exigence au chapitre 2. C’est ici aussi que l’on introduit la pyramide problème / besoin / solution que j’aime tant ! L’auteur n’oublie pas que le développement logiciel, même dans l’ingénierie des exigences, est une affaire d’hommes et de femmes, il consacre le chapitre 3 à l’équipe et aux compétences. Bref, une première partie tout à fait sympathique.

Ce sont 3 chapitres (sur environ 40 pages) qui sont également consacrés à la seconde partie « Analyser le problème » qui est le premier « team skill » du livre. Nous voilà rentrés dans la matière. L’auteur nous propose 5 étapes pour définir le problème. Les choses sont rarement aussi simples que l’on puisse suivre une telle séquence de manière immuable, mais nombre d’analystes devraient s’inspirer de ce que l’on trouve ici : identification des acteurs, définition du périmètre du système et de ses contraintes et surtout, surtout : l’analyse causale ! La matière proposée concernant l’analyse métier est bien moins convaincante, mais on peut bien excuser de petites faiblesses… Le dernier chapitre de cette partie met surtout en musique ce que nous avons vu avec l’étude de cas du livre : HOLIS. Fort intelligemment, il ne se contente pas de reprendre la matière du chapitre 4, on y ajoute quelques petits éléments comme l’elevator statement.

Continuer à lire « Note de lecture : Managing Software Requirements, par Dean Leffingwell & Don Widrig »

Note de lecture : Architecting Enterprise Solutions, par Paul Dyson & Andy Longshaw

Note: 7 ; Un excellent “pattern language” d’approche très Alexandrienne. Dommage que l’aspect solution me laisse un peu sur ma faim.

Le titre de l’ouvrage est assez évocateur à cet égard: Il s’agit là de décrire le style architectural des systèmes d’information Internet à l’aide d’un pattern language, à la Christopher Alexander. Digne représentant de la « software design patterns series », cet ouvrage expose sur 290 pages découpées en 12 chapitres formant 3 parties des architectures de déploiement dédiées aux applications Internet. Bien sûr, vous allez me dire que le texte va accuser son âge, surtout dans le domaine où les plus grands progrès ont été faits au cours des 10 dernières années ! Si ce point est indéniable, il n’est pas aussi marqué que l’on pourrait le craindre car il se focalise bien plus sur les principes d’architecture que sur les solutions techniques !

Je passe sur le premier chapitre qui ne nous apprend rien pour aborder la première partie « Architecture, Patterns and Internet Technology » qui comprend 4 chapitres sur 60 pages. Le premier d’entre-eux (donc le second chapitre) « system architecture » mérite que l’on ne passe pas trop vite dessus. Ses 15 pages sont consacrées aux propriétés non-fonctionnelles des architectures. Intéressant. Le point sur les technologies de l’Internet que nous propose le chapitre 3 sur 17 pages est un peu superficiel, mais pas aussi démodé que l’on pourrait le croire. Mais il apporte peu. Le chapitre 4 est en quelque sorte la table des matières patterns du livre. C’est un incontournable pour ce genre d’ouvrage. Pour clore cette première partie, les auteurs présentent l’étude de cas fictive sur laquelle ils ont choisi de s’appuyer. On y fait le tour des propriétés non-fonctionnelles que l’on avait énumérées au chapitre 2. C’est bien fait.

Avec 167 pages, la seconde partie est le gros de la troupe du bouquin, et de loin ! Il faut dire que cette partie qui ne compte pourtant que 4 chapitres s’intitule « The Patterns ». Et l’on commence fort logiquement au chapitre 6 par un chapitre « fundamental patterns » de 18 pages. Il présente deux patterns, le très classique « application server architecture » encore largement majoritaire aujourd’hui et un moins convainquant « péripheral specialist elements » dont la symétrie est questionnable du fait de la BDD unique… Le chapitre 7 nous offre un gros morceau avec les « system performance patterns » qui couvrent 45 pages. Les patterns architecturaux de ce chapitre sont particulièrement intéressants et bien décrits dans leur essence (load balancing, redondance, failover, appliance, replication, resource pooling, cache, offlining), il ne manque guère que le sharding des bases NoSQL ! Les diverses variantes de ces stratégies sont abordées ainsi que des considérations d’équilibrage de charge CPU, etc… Bref un chapitre riche qui justifierai le livre à lui tout seul !

Continuer à lire « Note de lecture : Architecting Enterprise Solutions, par Paul Dyson & Andy Longshaw »

Note de lecture : Pragmatic guide to GIT, par Travis Swicegood

Note : 5 ; Globalement efficace mais parfois frustrant

Le principe de cet ouvrage est excellent : 130 pages, un format de poche et 44 « taches » qui sont autant de recettes longues de 2 ou 3 pages réparties en 8 chapitres. On est sensé avoir là de la matière concrète pour utiliser Git au jour le jour, non selon la description de la ligne de commande, mais rapport aux cas d’usage !

Heureusement le tout est organisé en 8 chapitres correspondant à autant de cas d’usage. Le premier d’entre-eux a trait à l’installation et au setup de Git. De ce point de vue les 4 recettes constituant ce chapitre sont un peu courtes par rapport au sujet traité.

Le second chapitre regroupe 8 recettes gravitant autour des tâches locales du développeur est mieux adapté au format des tâches. Il permet de s’y retrouver avec les tâches courantes : ajout de fichier, suppression, déplacement, pull, etc..

Les 6 tâches évoquées au chapitre 3 permettent d’organiser et réorganiser un répo et ses branches en les créant, les mergeant ou via un rebase. La plupart de ces recettes ont le bon goût d’être illustré d’un petit schéma. L’auteur aurait pu étendre cette pratique avec profit à nombre d’autres tâches décrites dans l’ouvrage. Mon regret avec ce chapitre est qu’il traité de l’organisation du repo sous forme de tâches, c’est à dire sous l’angle de ce que Git peut faire, et non sous l’angle pattern / stratégie qui aurait un peu élevé le niveau de réflexion.

Continuer à lire « Note de lecture : Pragmatic guide to GIT, par Travis Swicegood »

Note de lecture : Essential Scrum, par Kenneth S. Rubin

Note : 8 ; La référence sur Scrum, à la hauteur des ouvrages de Mike Cohn

Le nom de l’auteur ne m’évoquait rien jusqu’à présent. Mais Kenneth Rubin n’est pas seulement un vieux routier de l’informatique et de l’agilité, il fut aussi le premier chairman de la Scrum Alliance ! La motivation de l’auteur était, pour cet ouvrage, de réaliser un texte de référence sur Scrum, que l’on puisse prendre avec soi et qui suffise lorsque l’on se pose une question sur la mise en œuvre de Scrum. Je vais certainement casser le suspens, mais c’est pour moi mission accomplie. En prenant un peu de recul, on peut constater que les points abordés tombent dans 3 catégories.

  • Les éléments et pratiques qui font partie du cœur de Scrum. C’est ce que l’on va trouver dans le Scrum Guide, par exemple, ou dans les 3 ouvrages de Ken Schwaber.
  • Les pratiques généralement admises dans la mise en œuvre de Scrum, mais qui ne font pas partie du framework officiel. Ce sont par exemples les pratiques empruntées à l’Extreme Programming. A ce titre, c’est ce que nous pourrons rencontrer dans l’excellent « Scrum from the Trenches » de Kniberg ou le livre en Français sur Scrum de Claude Aubry.
  • Les pratiques avancées qui peuvent compléter Scrum. Nous pouvons penser au Management 3.0 de Jurgen Appelo ou au Lean Startup…

Ce livre vise à couvrir complètement les deux premiers aspects et une bonne partie du 3ème. C’est un vrai texte pratique qui ne se limite pas à ce que l’on doit faire, mais surtout développe le « comment ». On s’appuie ici sur une prose de bonne qualité (je l’ai comparé à Mike Cohn tout à l’heure), mais aussi sur une abondante illustration. Le tout pèse benoitement ses 400 pages, c’est le prix à payer ! Au niveau du contenu, il faut compter avec 23 chapitres regroupés en 4 parties principales.

Continuer à lire « Note de lecture : Essential Scrum, par Kenneth S. Rubin »

Note de lecture : Unix, utilisation administration système et réseau, par Christian Pélissier

Note : 5 ; Unix pour les bénédictins, mais néanmoins très utile !

Je n’ai encore jamais croisé un bouquin sur Unix qui soit une franche tranche de rigolade. Celui-ci ne fait pas exception. En fait son style est franchement monacal. Je ne vais pas passer en revue les 37 chapitres composant les 750 pages de ce pavé. Et rester au niveau des 3 parties serait trop succinct.

Si l’aspect premier est rébarbatif, en y regardant de plus près, l’ouvrage est plutôt bien fait, à mi-chemin entre le manuel de référence et le guide de l’utilisateur, avec une prédominance pour ce dernier aspect. Tout d’abord le texte a le bon goût d’être finement découpé : 37 chapitres, c’est en moyenne une vingtaine de pages par chapitres. Le style est très sibyllin, mais il se débarrasse ainsi des circonvolutions qui rendraient l’ouvrage moins efficace. Il y a au moins 3 choses que j’apprécient :

  • Les exemples clairs de la ligne de commande. Cela ne se limite pas à la syntaxe, mais à l’usage réel que l’on peut en faire dans une séquence type.
  • Les variantes BSD et Système V sont présentées. Ce choix paraitra évidemment aujourd’hui un peu désuet.
  • Les commandes connexes sont évoquées : ainsi sur la création de répertoire, on parle de la façon de les supprimer, etc…

Continuer à lire « Note de lecture : Unix, utilisation administration système et réseau, par Christian Pélissier »

Note de lecture : Cross-Platform GUI Programming with wxWidgets, par Julian Smart et Kevin Hock avec Stefan Csomor

Note : 4 ; Pas un truc qu’on lit pour le fun !

Les frameworks IHM en C++ ne sont pas mort ! Et ce volume de 540 pages (hors annexes) compte bien nous en faire la preuve avec wxWidgets. Le bestiaux compte 20 chapitres, il faudrait aussi y ajouter presque 100 pages d’annexes.

Les deux premiers chapitres (assez courts) sont là d’une pour nous présenter très brièvement l’historique de wxWidgets, puis un « hello world » qui nous montre déjà une certaine ressemblance avec MFC…

Dès le chapitre 3 on rentre dans le dur avec la gestion des évènements. Je trouve la prose et les explications assez sèches. D’un autre côté, la petite taille des chapitres aide…

En comparaison, le chapitre 4 « Windows basics » fait plutôt mouse costaud avec ses presque 100 pages ! La prose me semble assez décousue et si la présence de nombreux tableaux de référence semble rassurante, elle fait ressembler ce chapitre d’avantage à un manuel de référence qu’à un tutorial.

Continuer à lire « Note de lecture : Cross-Platform GUI Programming with wxWidgets, par Julian Smart et Kevin Hock avec Stefan Csomor »