Note de lecture : Blade Servers and Virtualization, par Barb Goldworm & Anne Skamarock

Note : 5 ; Un bon guide pour le décideur, toujours intéressant sur les concepts, vieillissant sur les aspects et peu précis sur la techniques et obsolète sur la 3ème partie.

Cet ouvrage est en fait le seul que j’ai pu trouver traitant des serveurs blade. En fait, peut-être n’y a-t-il pas assez à dire pour susciter une littérature assez large ? Quoi qu’il en soit, celui-ci correspond à mes attentes : évoquer les architectures matérielles à base de serveurs blades. C’est donc assez naturellement que sont évoquées la mutualisation d’infrastructure, et notamment la connectivité, mais aussi l’alimentation électrique et le refroidissement.

Ces deux derniers sujets méritent certainement deux mots d’explications. En effet, les centres de calculs sont connus pour poser de gros problèmes de refroidissement, qui s’accentuent avec la puissance croissante des serveurs. Il est également connu que les coûts d’exploitation sont directement corrélés à la consommation électrique (avec un coût de l’électricité lui-même en forte augmentation). Le dernier paramètre étant l’occupation au sol, qui est lui-même lié aux problématiques de câblages et de refroidissement. Les serveurs blades améliorent la situation sur ces différents paramètres, tandis que la virtualisation améliore l’utilisation des serveurs et par là-même le coûts d’exploitation. La première partie du livre est consacrée à l’ évocation de ces points. Il ne s’agit que de 45 pages, la partie suivante, qui en compte 90, rentre au cœur du sujet.

La seconde partie est consacrée à l’évocation des différents aspects des blades et de la virtualisation. Elle fait bien son œuvre, sauf dans la partie dédiée à la connectivité, où d’avantage de précisions, de schémas et d’exemples auraient été bienvenus. Cette partie s’étend même aux problématiques de stockage (donc la relation avec les SANs), à la supervision et au clustering !

La troisième partie ressemble à un « guide d’achat » » : quelles sont les bonnes questions à se poser, les points à vérifier, le tout complété de matrices de comparaisons sur les différentes solutions du marché. Cela a été une présentation judicieuse du paysage à l’époque, mais elle n’est plus d’actualité.

La quatrième partie consacrée aux solutions s’est fanée avec l’âge, comme on pouvait s’y attendre. C’est dommage, car non seulement le tour du marché nous permet d’appréhender celui-ci, mais surtout les retours d’expérience du chapitre 17 sont particulièrement précieux.

Bref, voici un livre plutôt facile à lire, offrant un bon instantané sur la situation du marché et les tenants et aboutissants d’un choix. J’ai quand même été un peu frustré sur les éléments pouvant me permettre de comprendre la connectivité et donc d’établir un choix d’architecture.

L’obsolescence inévitable de l’ouvrage nécessiterait une nouvelle édition, en fait une nouvelle édition tous les deux ou trois ans au moins. Ce n’est pas le cas et c’est dommage.

blade-servers-virtualization

Référence complète : Blade Servers and Virtualization, transforming enterprise computing while cutting costs – Barb Goldworm & Anne Skamarock – John Wiley & sons 2007 – EAN : 978 0 471 78395 4

Blade Servers and Virtualization: Transforming Enterprise Computing While Cutting Costs


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

Note de lecture : Lean Software Development, An agile toolkit, par Mary Poppendieck & Tom Poppendieck

Note: 8 ; L’anti-taylorisme tel que nous l’enseigne l’industrie !

Le « Lean Développement » dont Mary Poppendieck est l’une des figures de proue est l’adaptation au monde du développement logiciel du mouvement « Lean production » issue de l’industrie, pratiqué notamment chez 3M et Toyota. L’ouvrage n’hésite d’ailleurs pas à illustrer les concepts évoqués par des exemples tirés de l’histoire de ces 2 sociétés (et d’autres).

Le Lean Développement, comme la plupart des méthodes agiles, ne propose pas un cadre prescriptif pour la construction logicielle, mais un ensemble de 7 principes et de 22 pratiques.

  • Eliminer le déchet : c’est l’un des principes fondamentaux du Lean développement (et des méthodes agiles en général). Il s’agit de se débarrasser de ce qui est inutile et ne participe pas à la chaîne de valeur, en utilisant deux outils que sont le repérage du gâchis et le « value stream map ».
  • Amplifier l’apprentissage : le développement d’un système informatique n’est pas une activité de production, mais un travail de développement (comme son nom l’indique), où la découverte et l’expérience jouent un rôle prépondérant. Ce principe est supporté par des outils tels que le feedback, les itérations, la synchronisation des acteurs et le « set based développement » qui privilégie la communication basé sur les contraintes (qui permet de laisser les options ouvertes) plutôt que celle basée sur les choix (qui ferme ces options).
  • Décider aussi tard que possible : Ne pas s’enfermer dans le choix de certaines options tant que l’on peut garder les options ouvertes ! Ce principe est soutenu par des outils tels que « l’option thinking », le « dernier moment raisonnablement possible » par l’utilisation d’abstraction d’interfaces ou de paramètres lors de la conception
  • Délivrer aussi rapidement que possible : cette pratique dont le nom est auto explicite s‘appuie sur des outils tels que le « pull system », où le travail est tiré, choisi au moment où l’on peut l’effectuer plutôt que d’être assigné à l’avance de façon autoritaire ; une approche directement héritée des « kanban » , la « théorie des queues », le « coût des délais ».
  • « Team empowerment » est un des fondements des méthodes agiles, mais aussi de ce que l’on appelle parfois le « Toyotisme ». Il s’agit ici de descendre le pouvoir de décision au niveau de ceux qui réalisent le travail, une approche servant-based management en rupture totale avec le taylorisme. 
  • L’intégrité : Ce principe se décline en « intégrité conceptuelle » dans laquelle les principes centraux du système fonctionnent de façon cohérente, et en « intégrité perçue » dans laquelle le système assure le bon équilibre entre fonctionnalités, ergonomie, fiabilité et critères économiques.
  • Voir l’ensemble : ce principe nous invite à améliorer le processus de développement en le considérant dans sa globalité plutôt que par optimisations locales, en utilisant des outils tels que les mesures ou les contrats.

Cet ouvrage est à mon avis hautement instructif, pratique et éclairé, il considère le développement logiciel comme une activité exploratoire, donnant la part belle à l’initiative, à l’organisation émergente et au leadership, par opposition aux processus prescriptifs, gérés par le contrôle de la conformité aux plans. Le texte rompt l’idée préconçue que le processus de développement doit être identique au processus de production et que le taylorisme est la réponse ultime de l’organisation, alors même que cette illusion a pris fin depuis plus d’un demi-siècle.

Ce livre n’évite aucun sujet épineux et traite même des aspects contractuels de la réalisation de projets, qui est un sujet hautement problématique des méthodes agiles. Les apports de la logistique industrielle que nous offrent les auteurs sont originaux et particulièrement instructifs, le plus souvent en rupture avec les idées préconçues que nous pouvons avoir sur le sujet.

La compacité du texte (186 pages) sera, j’espère, un argument supplémentaire pour vous décider à en aborder la lecture. A dévorer sans réserve !

lean-soft-dev-toolkit

Référence complète : Lean Software Development, An agile toolkit – Mary Poppendieck & Tom Poppendieck – Addison Wesley / ASD series 2003 – ISBN: 0-321-15078-3

Lean Software Development: An Agile Toolkit for Software Development Managers


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

Note de lecture : The Art of Lean Software Development, par Curt Hibbs, Steve Jewett & Mike Sullivan

Note: 3 ; Tour d’horizon superficiel du développement agile .. sans vision particulièrement « lean » !

J’ai l’habitude d’apprécier les livres succincts. Ils ont le bon goût d’aller à l’essentiel et ainsi de distiller efficacement une information utile. J’étais curieux de voir ce qu’il en allait être de cet ouvrage à la fois particulièrement court (120 pages) et pas spécialement bon marché ! Une autre source de curiosité était la juxtaposition des mots « Lean » et « développement ». Si le sujet est à la mode et que l’on développe largement la pensée « lean » dans la communauté agile, j’avoue avoir encore du mal à cerner en quoi le lean influence les pratiques de développement popularisées par les méthodes agiles.

Globalement, ce livre est hélas une déception. Il constitue certainement une bonne approche pour sensibiliser des managers aux grands principes du développement agile : il reste au niveau des grands principes et fait le tour d’horizon des pratiques agiles en expliquant leur utilité. Ainsi 6 chapitres sur les 9 que compte l’ouvrage sont dédiés aux principales pratiques de développement déjà promues par Scrum, XP ou les pragmatiques programmeurs :

  • Scripter les builds et utiliser un gestionnaire de version, plutôt que de compter sur une procédure interactive pour rendre un « build » répétable.
  • Automatiser les tests, au niveau des tests de développements ou des tests comportementaux (tests d’intégration ou de recette). Ce chapitre présente d’ailleurs un condensé plutôt réussi du sujet, même s’il reste un peu superficiel.
  • Mettre en place une intégration continue.
  • Optimiser le volume de code, en ne gardant que le code utile. Ce qu’on appelle le YAGNI (you ain’t gonna need it) dans XP.
  • Petites itérations. Inutile d’épiloguer, le titre parle de lui-même.
  • L’implication continue de l’utilisateur, en l’impliquant dans la boucle de feedback de l’itération. Ce que les auteurs appellent aussi le « CRACK customer » (Collaborative, Representative, Authorized, Commited, Knowledgeable).

Finalement, seul le chapitre 9 approche les pratiques Lean et leur application au développement logiciel. Les auteurs évoquent ici les ateliers Kaizen et le value stream mapping essentiellement et mentionnent les autres pratiques Lean (ainsi que des approches complémentaires comme la théorie des contraintes). 

L’intérêt de sortir un livre de sensibilisation sur les pratiques de développement agile en 2009 alors que le sujet est déjà bien couvert m’échappe un peu, je dois dire. Je mettrais celui-ci au niveau du livre de Craig Larman (agile and iterative development, a manager’s guide) pour ce qui est du public visé, avec un très gros point en faveur de ce dernier ouvrage. Enfin, le titre du livre est assez trompeur, comme j’ai pu le dire.

Sans doute pourrais-je proposer de lire cet opuscule à un développeur ou à un manager désireux d’acquérir une compréhension de premier niveau des principales pratiques agiles. La brièveté du texte sera là une réelle qualité.

En conclusion : un livre bien trop cher eut égard au contenu et dont l’intérêt est peu probant par rapport à la bibliographie existante. Il reste toutefois une petite niche de lecteurs potentiels auxquels je pourrais même conseiller l’ouvrage. Le passionné n’y trouvera pas son compte.

art-of-lean-agile-dev

Référence complète : The Art of Lean Software Development – Curt Hibbs, Steve Jewett & Mike Sullivan – O’Reilly 2009 – EAN : 978 0 596 51731 1

The Art of Lean Software Development: A Practical and Incremental Approach


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

Note de lecture : UML Distilled 3rd edition, par Martin Fowler

Note : 9 ; Une édition encore meilleure (si c’est possible) d’un ouvrage qui ne cesse de me surprendre par sa qualité et se concision.

On est toujours en droit de se demander si une nouvelle édition n’est pas un simple lifting, surtout quand il s’agit comme ici d’un best seller. J’en veux pour témoin l’habillage résolument clinquant de la jaquette, on croirait Elvis Presley à sa grande époque !

Ce livre présente UML2, et ce fut l’un des premiers. Outre la présentation précise et efficace d’UML2, les points de différence avec UML1 sont soulignés. Le livre reste toujours aussi agréable à lire. Il est intéressant de noter, tout comme la seconde édition mettait un coup de projecteur sur Unified Process, ce sont ici les méthodes Agiles qui sont mises en lumière. Cela induit un petit travers dans la présentation de la notation dont je me serais bien passé. Il est préférable dans ce type d’ouvrage, de présenter la notation pour elle-même, mais c’est résolument le point de vue adopté par l’auteur : filtrer de la norme UML ce qui est utile et important à utiliser dans le cadre d’un projet. N’attendez donc pas une description exhaustive d’UML 2.0 !

J’ai souvent remarqué que les très bon livres utilisent les pages internes des couvertures comme « cartes de référence ». C’est encore le cas ici : Les éléments constitutifs de la notation sont présentés sous forme graphique, regroupés par type de diagramme, avec le renvoi vers la page descriptive. Vraiment très pratique !

J’ai souvent fait remarqué la concision et la clarté de la prose de Martin Fowler. Il est ici au sommet de son art. On a même peine à croire, la dernière page refermée que tout tient en moins de 200 pages, annexes comprise, le texte étant par ailleurs largement aéré par les nombreux diagrammes illustrant le texte. C’est un tour de force, d’autant qu’au grée des éditions et des normes successives d’UML ajoutant de nouveaux éléments, le volume du livre n’a pas augmenté d’une seule page.

Je ne vais pas détailler le contenu du livre. De manière globale, Martin Fowler a vétillé le volume consacré à chaque sujet en fonction de l’importance relative dans un usage réel au sein d’un projet. Ainsi le diagramme de classe se taille la part du lion. Le diagramme de séquence et le diagramme d’objet (et le diagramme de communication qui est son complément naturel) sont aussi très correctement traités. A l’autre extrémité, le diagramme de déploiement, d’interaction, de temps ou les collaboration sont abordés très succinctement en seulement 2 pages. Pourtant en 2 pages seulement l’auteur concentre l’essence de l’information sur ces digrammes et le lecteur intéressé y trouvera déjà de quoi les utiliser concrètement. De toute manière d’autres livre plus massifs existent pour traiter cette matière plus en profondeur, ce n’est pas le créneau de ce livre.

UML est un bon outil. Pas seulement pour le spécificateur, mais aussi pour le développeur ou toute personne au sein des projets pour simplement communiquer de manière efficace. Mais tout le monde ne peut ou ne veux investir beaucoup de temps à comprendre cet outil. UML distilled est sans contestation possible le livre idéal pour cela. Mon conseil ? Faites figurer ce livre de force dans toute bibliothèque d’un projet. Il contient le substantifique moelle de la notation UML qui peut être acquise avec un investissement de temps complètement optimisé. Ce serait dommage de passer à côté.

UML-distiled-3edt

Référence complète : UML Distilled, a brief Guide to the standard Modeling Language, Third edition – Martin Fowler – Addison Wesley / O.T. series 2003 –ISBN: 0-321-19368-7

UML Distilled: A Brief Guide to the Standard Object Modeling Language


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

Note de lecture : The Joy of Patterns, par Brandon Goldfedder

Note : 3 ; Un workshop pour Design Patterns vraiment léger  !

Cet ouvrage est dans la même lignée que “Design Patterns Explained”. Ce livre aborde les patterns pour les nouveaux venus, mais avec perspicacité. Il mise beaucoup sur l’apprentissage par l’exemple et 3 gros exemples en Java, C++ et Visual basic y sont développés.

L’ouvrage débute par ce que sont les patterns, leur nature et leur structure, avec un petit détour vers les patterns language. Plus surprenant, le chapitre dédié aux concepts de base de l’orienté objet. Je pense que cibler les nouveaux venus à l’objet pour un ouvrage, même d’introduction, aux patterns est assez questionnable.

Globalement, même s’il est agréablement écrit, cet ouvrage est quand même un peu léger, avec ses 110 pages hors annexes (volumineuses, qui contiennent le code source), et même 65 pages si je ne compte que ce qui est vraiment le cœur du livre !

Du côté des bonnes nouvelles, le texte est concis et l’auteur excelle à expliquer ses raisonnements. Beaucoup de diagrammes UML émaillent l’ouvrage, en taille « pour aveugles » mais ils n’aident pas tellement à l’exception des quelques diagrammes de séquence qui sont bienvenus.

joy-of-patterns

Référence complète : The Joy of Patterns: Using Patterns for Enterprise Development – Brandon Goldfedder – Addison Wesley / Software Patterns Series 2001 – ISBN: 0-201-65759-7

The Joy of Patterns: Using Patterns for Enterprise Development


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

Note de lecture : Maîtrisez votre gestion de configuration logiciel, par Dominique Jacquin

Note : 2 ; Lourdingue !

Cet ouvrage ne vous aidera pas à comprendre ce qu’est la gestion de configuration. Pas vraiment, même si il prétend le faire. En fait le point focal de ce livre est l’aspect qualité, donc processus de la gestion de configuration. En principe, cela recouvre 3 thèmes : la gestion de version, la gestion de configuration et la gestion des changements. La gestion de version, et plus globalement la gestion des espaces de développement est appelée ici « gestion de la production » (on se demande bien pourquoi), et n’est traitée que succinctement. Ce sont les 2 autres thèmes qui constituent la matière première.

Franchement, si vous ne connaissez pas le sujet, vous serez perdus ! Le texte est une somme de descriptions prescriptives et n’est nullement explicatif (je n’évoque même pas les exemples de fin d’ouvrage, ils sont pathétiques). Quelques illustrations complètent le texte : des transparents Powerpoints tellement basiques et creux que l’on se croit revenus à l’école primaire, les diagramme SADT et les organigrammes sont aussi ennuyeux qu’on est en droit de l’escompter. Bref, on nous propose de faire des choses, on ne sait guère pourquoi, à croire que l’objectif de l’auteur était simplement de démontrer l’étendue de son savoir ! L’aspect normatif ISO 9000 et ISO 10000 est le seul aspect original (je n’ose dire intéressant) du texte. Il apparaît en fil rouge au fil de l’ouvrage et un chapitre spécifique lui est dédié. Je ne suis pas sûr que, même si la certification ISO vous intéresse, le livre vous soit d’un quelconque intérêt, mais je sais répondre par la négative dans le cas contraire ! Des plans types sont fournis en fin d’ouvrage et en complément de certains chapitres, ils ont l’intérêt d’être commentés. Sait-on jamais, cela peut servir.

Maitrisez votre gestion de configuration logicielle

Référence complète : Maîtrisez votre gestion de configuration logiciel, une étape pour la certification ISO 9000 – Dominique Jacquin – Masson 1996 – ISBN : 2-225-85424-6

Maîtrisez votre gestion de configuration logicielle

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

Note de lecture : Effective Java, second edition, par Joshua Bloch

Note : 8 ; Il fait honneur à la lignée « effective »

Le titre du livre ne laisse guère planer le mystère : il se veut le pendant Java du désormais célèbre « Effective C++ » de Scott Meyers. Eh bien, on peut l’avouer, le contrat est plutôt bien rempli. Il expose 57 items au long de 232 pages découpés en 10 chapitres. La présence d’un tel ouvrage afin de stigmatiser les bons usages du langage était sans nul doute nécessaire, car si Java  (au contraire du C++) passe pour un langage facile, il n’en est de ce fait que plus aisé (et d’ailleurs plus fréquent) de mal l’utiliser !

Le style du texte est sensiblement différent de celui de Scott Meyers. D’abord on n’y retrouve pas la pointe d’humour qui fait le charme de l’ouvrage C++. Il focalise également un peu moins sur le code de bas niveau, même si nombre d’items sont spécifiquement dédiés à ces aspects. Enfin, l’auteur qui fut « chief architecte » d’une bonne partie des librairies Java oriente souvent son propos par rapport à une vision développement de librairies, alors que c’est un biais somme toute marginal, par rapport au développement d’applications !

Malgré ces petits reproches, il ne fait nul doute que ce livre est un incontournable de toute bibliothèque Java un tant soit peu sérieuse, ne serait-ce que pour utiliser correctement les redéfinitions des méthodes dérivées de la classe Object, comprendre convenablement les « nested classes », certains principes de bases inhérents aux exceptions ou à la sérialisation. Le chapitre consacré aux threads est évidemment plus ardu et également moins pointu que le livre de Doug Lea consacré à ce sujet (et qui fait toujours référence).

Parmi les choses que j’apprécie particulièrement dans le texte : le style très clair, même narratif dirais-je car l’auteur nous guide réellement dans l’explication de l’item tel un conteur. Des fragments de code illustrent le texte et sont particulièrement bien pesés : avec assez de contexte pour donner du sens mais assez concis pour ne pas noyer le lecteur ni être ennuyeux. Globalement j’aime le style très « punchy » avec lequel l’auteur aborde chaque problématique pour nous faire tomber des nues sur tel ou tel comportement du langage, qu’il soit justifié ou non.

Cette seconde édition compte 300 pages pour 68 items. Vous aurez vite fait le calcul sur la taille moyenne de chaque item en nombre de pages ! De toute façon, c’est une lecture à laquelle on prend plaisir tout en apprenant.

Le texte fait de nombreuses références au manuel de référence du langage qui est un complément indispensable à ce livre.

effective-java-2edt

Référence complète : Effective Java, second edition – Joshua Bloch – Addison Wesley / Java Series 2001 – ISBN : 0-201-31005-8

Effective Java(tm) Programming Language Guide


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

Note de lecture : C++ Coding Standards, par Herb Sutter & Andrei Alexandrescu

Note : 7 ; N’écrivez plus vos règles de développement sur vos projets C++ !

Quand j’ai besoin de mettre en place des règles de développement en C++, j’ai l’habitude de ressortir mon mètre linéaire d’ouvrages sur le C++, ainsi que mon édition quasi complète de C++ report, et de m’efforcer de dégager nombre de règles impératives, expliquées et détaillées, en fournissant nombre de références bibliographiques. Travail harassant (bien que passionnant), si il en est ! Bien sûr, avec les ans, j’ai amélioré la chose, et je ne repars plus de zéro, mais …. Mais voilà, CE livre est arrivé et a fort heureusement rendu mes efforts obsolètes !

Le livre de Sutter et Alexandrescu couvre plutôt efficacement les grandes lignes des choses à ne pas faire (mais en excluant les choses vraiment trop basiques). 101 règles, c’est plutôt solide, mais on pourrait aussi trouver cela insuffisant. Je pense, moi, que c’est un bon compromis. Si certains aspects doivent être mieux couverts dans votre projet, ou si le niveau de l’équipe nécessite des règles plus basiques pour blinder le développement, ajoutez-les à ce matériel de référence ! Agissez de même pour illustrer les points de l’ouvrage avec des exemples issus de votre domaine de travail. Mais le gros de la matière est là et bien là.

Pour rapport aux ouvrages de Meyers ou de Sutter, celui-ci se positionne différemment : au lieu de développer les items de façon pédagogique, on se contente de développer chaque item sur 1 ou 2 pages (parfois 3), avec des explications claires, mais sans le développement en profondeur de Sutter, ni l’approche pédagogique de Meyers. L’efficacité est privilégiée, et c’est très bien adapté à la finalité de ce livre (manuel devrai-je dire).

Les règles sont rangés sous plusieurs volets qui forment autant de chapitres :

  • D’abord des règles organisationnelles : gestion de version, niveau de warnings, etc… Les bases pourrait-on dire.
  • Des règles de conception, qui ne sont pas spécifiques au C++. Elles recoupent ce que l’on pourra trouver dans le « Designing Object-Oriented C++ Applications » de Robert Martin.
  • Le style de codage : usage des constantes, déclarations des variables, etc..
  • L’usage de fonctions et d’opérateurs.
  • Les règles d’usage et d’implémentation de l’héritage. Cela paraît curieux mais il y a effectivement beaucoup de subtilités possibles en C++.
  • Constructeurs, destructeurs et opérateurs de copie.
  • Utilisation des namespaces.
  • Utilisation des templates.
  • Gestion des exceptions.
  • L’utilisation de la STL couvre deux chapitres, pour les conteneurs d’abord puis pour les algorithmes.
  • Utilisation des opérateurs de cast modernes.

Si vous avez de la bouteille en C++, vous n’apprendrez rien. En fait, le but n’est pas d’enseigner des choses, mais de poser un socle solide de règles pour construire des développements en C++. Je recommande chaudement, bien entendu.

c++-coding-standard

Référence complète : C++ Coding Standards: 101 rules, guidelines, and best practices – Herb Sutter & Andrei Alexandrescu – Addison Wesley / C++ in depth series 2004 – ISBN: 0-321-11358-6

C++ Coding Standards: 101 Rules, Guidelines, and Best Practices

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

Note de lecture : Beginning SQL Server 2005 for Developpers, par Robin Dewson

Note: 7 ; LE livre pour bien débuter avec SQL Server 2005

Attaquer une « grosse » base telle que SQL Server 2005 quand on n’a pas l’expérience de tels environnements n’est pas évident. Paramétrage, gestion des bases, exploitation et administration sont autant de sujets à découvrir autant sous l’aspect du « quoi » que sous l’aspect du « comment ». Ce livre répond parfaitement à cet objectif. En tout cas, il a bien marché pour moi. Il fait un tour d’horizon complet de la base de données en introduisant chacune de ses facettes, en expliquant par l’exemple comment faire, aussi bien avec les outils interactifs qu’avec le T-SQL. Bref, on est mieux armé à la sortie, et l’on sait dans quelle direction aller sur chacun des sujets, prêt à approfondir plus avant chaque sujet dont on a le besoin.

Les deux premiers chapitres présentent l’architecture de la base, ses options d’installation et le « management studio » qui est l’outil interactif permettant d’accéder à la plupart des fonctionnalités de la base.

Le chapitre trois nous guide pour ce qui est de la création des bases, les différentes options possibles et donne des clés pour configurer une base optimale en termes de performances.

Le chapitre 4 est consacré à la sécurité et à la gestion des utilisateurs. Il présente clairement les différents modes d’authentification et donne des conseils pragmatiques quand aux configurations à adopter, surtout pour les bases d’exploitation. Un sujet habituellement aride, traité ici avec pragmatisme et intelligence.

Les chapitres 5 et 6 sont dédiés au design des bases : création de tables et d’index. Là encore, on a une information détaillée et précieuse, même si le chapitre 6 ne s’avère pas si clair que ça.

Le chapitre 7 est consacré à l’administration : les procédures de backup et de maintenance. On y trouve juste ce dont on a besoin : Les clés pour assurer la mise en place de procédure de gestion classiques de sauvegarde et de maintenance. Indispensable !

Avec les chapitres 8 à 13, on aborde le gros de la troupe : travailler avec T-SQL. Même si le langage a été abordé avant pour la mise en œuvre des différentes fonctions dans ce langage, c’est de manipulation de données dont il est question ici ! Le chapitre 8 nous donne le bagage de base pour traiter les données : select, update et delete avec les différentes clauses de base. Le chapitre 9 traite d’un sujet plus pointu : les vues. Hélas ce n’est pas le meilleur chapitre du livre. Les procédures stockées (comment y échapper ?) sont couvertes par le chapitre 10. Même s’il manque pas mal de briques pour faire tout ce que l’on souhaiterait, on a de quoi démarrer. Les chapitres 11 et 12 terminent le tour d’horizon du T-SQL d’abord en le balayant en largeur, puis en abordant les aspects moins usités du langage. J’avoue avoir largement décroché au chapitre 12 (et aussi un peu au chapitre 11). Le chapitre 13 clos l’affaire avec les triggers et des conseils fort pertinents quand à leur usage.

Un peu en décalage, le chapitre 14 aborde Reporting Service. Il nous permet de désirer en savoir plus, car le traitement qui en est fait ici est vraiment superficiel.

Bref, voilà un ouvrage qui, en 400 pages, nous permet d’avoir une vue globale de l’outil, et m’a permis de porter mon attention sur ce qui était mal fait ou pas fait sur la façon dont nous l’utilisions. Sous cet angle, il a déjà dix fois justifié son achat, et je sais qu’il continuera encore à me rendre service.

Le problème inhérent aux livres liés à des technologies particulères est qu’il vieillissent à la vitesse de celles-ci. Cet ouvrage a déjà connu deux mises à jour, pour SQL Server 2008 puis SQL Server 2012 (que je n’utilise pas encore). La troisième édition a d’ailleurs enflé jusqu’à 700 pages ! Cela voudra certainement dire une petite mise à jour dans un avenir certainement pas trop lointain.

beginning-sqlserver2005-dev-apress

Référence complète : Beginning SQL Server 2005 for Developpers, from novice to professional – Robin Dewson – Apress 2006 – ISBN : 1-59059-588-2 ; EAN : 978 1 59059 588 6

Beginning SQL Server 2005 for Developers: From Novice to Professional


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

Note de lecture : Gestion de projet agile, avec Scrum, Lean, Extreme Programming, par Véronique Messager-Rota

Note : 5 ; Un point de départ pour le chef de projet débutant, complété par des évolutions mineures, au fil des éditions.

Il est certainement une chose plus difficile que donner une note et un avis sur un ouvrage auquel on a participé : c’est se livrer au même exercice sur un livre dont on est l’auteur ! Je n’en suis pas là, mais cet exercice reste bien assez difficile pour moi.

Ce livre n’est pas une bible de la gestion de projet agile. Je doute d’ailleurs qu’une telle chose puisse exister. Il s’adresse plutôt à un publique junior ou en tout cas nouveau venu dans l’agilité et adresse deux questions essentielles :

  • Quelles sont les activités que doit mener ou maîtriser le chef de projet : Ce sujet est traité tout au long du livre, car les différents chapitres traitent chacun un aspect spécifique des disciplines à maîtriser : ébauche de la vision, gestion des besoin, suivi des hommes et pilotage du projet. Il manque hélas une partie consacrée aux tests, et je regrette de mon coté que la facette plus technique du projet ne soit pas abordée, car je considère le rôle du chef de projet comme davantage holistique.
  • Quel style aborder pour gérer les projets ? Le titre du livre réponds à cette question, bien que parfois le texte ne nous laisse pas clairement comprendre quelle approche est la bonne. Toutefois mettre les approches classiques et agiles en perspective est un bon exercice.

L’une des particularités du livre est certainement de laisser une part importante aux retours d’expériences (y compris ceux de votre serviteur) pour éclairer le propos. Sans être réellement aride ni académique, celui-ci est souvent un peu trop formel à mon goût.

Ce livre en est maintenant à sa 3ème édition. Que dire des évolutions entre la première mouture et le dernier rejeton ?

Tout d’abord que ces deux nouvelles éditions répondent en premier lieu au « business model » d’Eyrolles consistant à publier très régulièrement de nouvelles éditions de ses best-sellers. Donc il s’agit d’un best seller ! Comme chacun sait, cela n’est pas synonyme de qualité, mais en l’occurrence ce texte atteint bien sa cible (celle que j’ai évoquée plus haut) et le succès du livre en est témoin.

Dans la seconde édition, l’auteur a profité de l’occasion pour rafraîchir sa prose, même si c’est de façon mineure. Cela se voit dès la pagination, le volume total passant de 230 à 250 pages (hors annexes). Il s’agit surtout d’ajouts à l’intérieur des chapitres existant, le texte de base me paraissant inchangé. Ainsi le chapitre 2 qui exposait déjà de manière synthétique et avec brio les différentes méthodes agiles, ajoute « Lean » à sa panoplie. Le chapitre 3 se voit étoffé d’un court comparatif entre les users stories et les cas d’utilisation. Utile en soi, ce comparatif est je pense matière à débat. En clair : il faut qu’on en reparle, Véronique ! Le chapitre 7, consacré à l’adoption des méthodes agiles est celui qui bénéficie le plus d’ajouts : mesure de l’adoption et accompagnement de la conduite du changement.

L’apport le plus important à l’ouvrage est la section consacrée aux apports du coach (toujours dans le chapitre 7). Ces quatre pages supplémentaires ciblent les apports du coach par rapport à l’équipe et au management sur le « savoir être ». Il s’agit d’une prémices du prochain livre de Véronique !

La troisième édition qui n’apporte à nouveau que des bribes de nouveautés. On notera ainsi :

La section dédiée aux organisations agiles, au chapitre 2, qui permet de valoriser les idées avancées par Jérôme Barrand. Le chapitre 4, se voit lui, gratifié d’une page consacrée au pomodoro, ce qui est un ajout original et sympathique. Au chapitre 6, un petit ajout est fait sur le thème de la facilitation.

Sans avoir réellement vieilli, le livre voit son public se restreindre d’année en année : s’il adressait un public d’early adopter lors de sa sortie, il s’agirait maintenant plutôt de late adopters, pas forcements enclins à aller rechercher activement de l’information. Véronique Messager ne semble guère souhaiter poursuivre la politique de retouche mineures du texte et c’est à son honneur.

Si vous débutez en gestion de projet et vous posez la question de l’adoption d’une approche agile, ce livre est pour vous. Il vous permettra de poursuivre plus facilement votre apprentissage par des textes plus avancés ensuite.

Gestion de projet agile avec Scrum, Lean et XP

Référence complète : Gestion de projet agile, avec Scrum, Lean, Extreme Programming, 3ème édition – Véronique Messager-Rota – Eyrolles 2010 – EAN : 978 2 21212750 8

Gestion de projet agile avec Scrum, Lean, eXtreme Programming...


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