Top 5 – Lectures 2012

J’ai fait plusieurs lectures en 2012 et sur des sujets diverses. Je vous propose ici une compilation Top 5 des meilleurs ouvrages liés au domaine de l’informatique que j’ai lu dans le courant de l’année 2012:

1. Software Architecture for Developers par Simon Brown

Excellent résumé de ce que fait (et devrait faire) un architecte logiciel et comment partager sa structure et sa vision à l’équipe. L’auteur, Simon Brown, nous montre son côté pragmatique dans cette vue d’ensemble. J’ai apprécié particulièrement les parties sur le rôle d’architecte et la façon de concevoir et de communiquer le logiciel.

On y parle aussi de l’agilité et de son impact sur l’architecture ainsi que la notion qu’un diagramme UML n’est pas toujours nécessaire. Noter que ce livre est publié de manière indépendante sur « Leanpub » et est toujours en évolution. Un « Must » à lire pour tout développeur ou un architecte logiciel!

Lien du livre sur LeanPub

 

2. Specification By Example par Gojko Adzic

Gojko Adzic nous a écrit un 2e livre sur les spécifications.  Son premier, Bridging the communication gap, était surtout de nature théorique. Cette fois-ci, on nous présente les expériences de personnes et organismes différents avec l’utilisation de la spécification par l’exemple. En plus de cela, nous voyons comment Gojko a fait évoluer sa pensée sur la spécification et après quelques chapitres, nous allons au-delà des notions de base.

Soit dit en passant, ce livre ne parle pas de code ou d’outils. Seulement des principes et des pratiques utilisées pour communiquer les spécifications dès le début d’un projet logiciel jusqu’à sa fin.
Un des beaux résultats de cette approche est que tout le monde dans une équipe de développement logiciel travaille à avoir une « Documentation vivante » au lieu d’un tas de papiers classés quelque part dans un classeur.

Je recommande cette lecture à toute personne impliquée dans la création de logiciels. En particulier si utilisez les approches suivantes:  Behaviour Drive Development (BDD), Acceptance Test-Driven Development (ATDD), Test-Driven Development (TDD) et le Domain Driven Design (DDD).

Liens commandités du livre sur Amazon : France | Canada | USA

 

3. Techical Blogging par Antonio Cangiano

Si vous êtes sérieux à propos des blogues, ce livre est pour vous. L’auteur, Antonio Cangiano, couvre de nombreux aspects liés à l’écriture de blogue tels que la planification, la création de contenu, la promotion, le référencement, les avantages et les médias sociaux. Certains aspects sont directement liés à l’outil de blogage WordPress, mais la plus grande partie du contenu de ce livre peut être appliqué à n’importe quel type de blogue.

Liens commandités du livre sur Amazon : France | Canada | USA

 

4. Steal like an Artist par Austin Kleon

L’auteur, Austin Kleon, nous donne 10 règles pour développer notre créativité. Ces règles peuvent être utiles à toute personne, artiste ou non. En fait, pourquoi voler comme un artiste ? Parce que rien n’est original finalement… Le livre est aussi magnifiquement illustré et le papier utilisé pour imprimer le livre est de grande qualité. Le résultat: un excellent livre sur la créativité et la productivité qui se lit très bien. Inspirant !

Liens commandités du livre sur Amazon : France | Canada | USA

 

5. Impact Mapping par Gojko Adzic

Un 2e livre de Gojko Adzic dans mon Top 5 (eh oui !). Celui-ci est un peu différent toutefois. En fait, il s’agit plutôt d’un guide qu’un d’un livre en soit. L’auteur nous présente une technique pour mieux comprendre, mesurer et aligner les objectifs de l’entreprise avec la planification de la livraison d’un produit logiciel. Voici le « Impact Mapping » qui est une sorte de schéma heuristique (ou « Mind Map ») pour représenter les aspects suivants: But (pourquoi), Acteur (qui), Impacts (comment) et  le Livrable (quoi). Aussi, le livre est magnifiquement illustré. Je recommande vivement d’obtenir la version papier.

Liens commandités du livre sur Amazon : France | Canada | USA

Agile Tour Québec 2012: Les sessions Partie 1

Bien que j’étais un organisateur, j’ai pu assister à plusieurs sessions lors de l’Agile Tour qui a eu lieu le 6 novembre dernier à Québec. Voici donc mes impressions sur ce que j’ai vu dans les sessions du matin (ceux de l’après-midi seront dans le billet Agile Tour 2012: Les sessions Partie 2):

Développement orienté comportement et automatisation des essais d’acceptation (BDD)

par Christian Roy et Jean-François Nadeau

Je connais bien le sujet (Behavior Driven Development ou BDD) et aussi l’outil Specflow que j’ai recommandé et appliqué sur un de mes projets. Specflow est comme une sorte de version .Net de l’outil « Cucumber » qui est utilisé pour automatiser des tests d’acception qui fonctionne avec le langage Ruby. J’étais curieux de voir comment les présentateurs avaient utilisé le tout dans leur contexte. La présentation se divisait en trois parties:

  1. Théorie
  2. Démonstration
  3. Leçons apprises

Présentation très dynamique et amusante au début pour expliquer la théorie. Cela a fait un peu contraste avec la démo, mais bon c’était très intéressant somme toute. Dans la démo, on montrait l’utilisation de Sélénium Web Driver avec Specflow. Le tout était réalisé avec le patron du « PageObject ». C’était très intéressant. Par contre, je reste avec l’impression que c’est toujours un peu lourd de tester la couche graphique, et ce peu importe l’outil. On a peu parlé du TDD et de comment il s’intègre avec le BDD. Je m’interroge toujours un peu sur cet aspect que je trouve important et négligé. Je crois que les tests unitaires ne doivent pas être ignorés même si on a des tests d’acceptation automatisés grâce au BDD. J’aimerais bien voir un bel exemple pratique de tests BDD et de tests unitaires côte à côte dans un projet. Dans les leçons apprises, on a parlé de l’outil Amnesia pour aider l’exécution de tests avec une BD. Je suis intrigué, autre chose à regarder plus tard. Et un aspect que je trouve très important, les développeurs étaient impliqués dans la création des scénarios. En bref, une bonne présentation et de bonnes discussions ont eu lieu.

Références:

Propulsez votre architecture avec les TDD et les Mocks

par Félix-Antoine Bourbonnais

Mon collègue de Agile Québec, Félix-Antoine, n’est pas seulement dynamique lors de nos rencontres, il l’est aussi comme présentateur. C’est donc avec passion qu’il nous présente les différents styles de TDD avec les termes style « Classique/Chicago » ou style « Mock/London ». Je ne connaissais pas trop cette distinction, mais elle est similaire à d’autres termes comme le « State-Based testing » ou basé sur l’état et le « Interaction-Based Testing » centré sur les interactions.

Le TDD doit se voir avant tout comme un outil de découverte et d’aide à la conception de l’architecture logicielle. Les tests qui en résultent sont un peu comme un effet secondaire. Félix-Antoine nous a partagé son expérience en nous montrons ce qui est fondamental avec les tests, soit : Tester les modules en isolation. L’utilisation des mocks est une technique qui aide à cela. Encore faut-il que notre code soit bien organisé pour en profiter sans trop de « douleur ». C’est là, que l’application de bonnes pratiques comme l’utilisation d’abstraction (c.-à-d. les interfaces) , du « Clean Code », les principes SOLID et le « Tell don’t ask » sont très importantes pour réaliser de bons tests unitaires. L’idée est de combiner ces différentes techniques selon ce que l’on veut découvrir (conception ou algorithme). Pour finir, Félix-Antoine nous recommande fortement le livre « Growing Software Oriented by Tests » qui semble s’appliquer, malgré que les exemples sont en Java, aux différents langages orientés-objet.

Références:

La pause est terminée

PlayMon dernier billet remonte à quelques mois déjà…

L’été a passé vite, puis la rentrée scolaire des enfants, des rénovations à la maison, un bébé chien à éduquer. L’habitude d’écrire s’est perdue un peu.  C’est un de mes vieux amis, Laurent, qui me le fait remarqué l’autre jour:

Heille Karl, je me suis abonné à ton blogue, mais je trouve qu’il n’y pas trop de publications ces temps-ci…

Ouch, cela m’a réveillé d’un coup. Mais, au lieu de repartir rapidement, je voulais prendre le temps d’avoir plusieurs idées de billets. C’est là que je suis rendu.

Donc, vous verrez dans les prochaines semaines de nouveaux billets. Je vais aussi faire un sondage sur les sujets de mon blogue qui vous intéressent le plus, histoire de mieux cibler mes efforts.

Mon objectif est de publier environ une dizaine de billets d’ici le reste de l’année.

Les habitudes viennent et repartent. C’est à nous d’être vigilant et voir lesquelles garder, reprendre ou abandonner.  C’est donc important de revoir régulièrement ses objectifs.

Refonte de mon blogue

OpenPour commencer, quelques statistiques sur mon blogue:

  • 72 billets rédigés, quelques pages et plusieurs commentaires
  • 2 ans sur WordPress et six années au total pour mon blogue.

Après tout cela, une petite refonte s’imposait…

Alors, je vous souhaite la bienvenue dans mon nouveau blogue !

Voici en gros les quelques changements

Et voilà !

Qu’en pensez-vous ?

Référence :

Mon Bilan 2011 et Mes objectifs 2012

1335434_new_year_3Je crois qu’il est bon de faire notre bilan une fois par année et de mettre nos objectifs en ligne. Cela nous donne une petite pression intérieure pour les accomplir. C’est le but du présent billet et j’espère que cela vous donnera aussi l’idée de vous fixer des objectifs et d’en parler à votre entourage ou de les énoncer publiquement dans votre blogue par exemple.

J’aime bien commencer par un petit bilan histoire de bien positionner mes objectifs. 2011 fut une grosse année, et épuisante par moment, sur plusieurs volets. Néanmoins, je suis fier des résultats et 2012 sera sûrement une bonne année aussi.

Mes réalisations en 2011:

Emploi actuel:

  • Dans mon emploi, j’ai participé à un bon projet de plus de 4000 j-p à titre d’analyste organique et qui regroupait plusieurs technologies dont VB6, VB.Net, TFS, SQL et Oracle. Ce fut un projet fort intéressant et j’ai beaucoup appris sur plusieurs aspects, humains et technologiques.

Communauté Agile de Québec:

  • Devenu président du CA.
  • Nous avons organisé avec brio la conférence Agile Tour 2011 avec Bob Martin comme conférencier principal et 400 participants, rien de moins ! Ce fut un bel effort d’équipe. D’ailleurs j’en ai déjà parlé dans un autre billet.
  • Nous avons aussi organisé des rencontres mensuelles et des “Code Retreat” ou Retraite du programmeyr.
  • Cela nous a pris beaucoup d’effort afin de bien s’organiser entre nous. À se doter de meilleurs outils en 2012.

Lectures:

  • 15 lus, 2 en cours.  Objectif de 12 atteint et dépassé. Super !

Mes objectifs en 2012


 

 

 

Professionnel

  • Écrire davantage de blogues (voir autre billet dans les références)
  • En m’inspirant de Frédéric Harper (voir liens dans les références), je vais sortir de sa zone de confort de temps à autre pour y apprendre les technologies suivantes:
    • Développement d’application pour iPhone et le langage Objective-C
    • Apprendre davantage le Ruby, RoR et ses amis (RSpec, Cucumber, …
    • Autres petits projets de code et me servir de Git comme gestionnaire de code source

Agile

  • Avec la Communauté Agile de Québec: continuer de m’impliquer pour une dernière année probablement
  • Aussi continuer de me mettre à jour dans l’agilité avec des lectures ou autre, notamment sur le Lean et le Kanban que je veux approfondir.

Lectures

  • Je hausse la barre à 20 livres à lire cette année. C’est 5 de plus, mais j’en ai quelques-uns à finaliser, donc c’est réaliste.
  • De plus, je me suis procuré un Kindle Touch, ce qui me permettra de traîner mes livres un peu partout. Je me sers du site « GoodReads » pour suivre mes progressions de lecture.

 

Références:

Blogue de Frédéric Harper:

Mon Blogue:

Autres:

Bilan 2011 avec WordPress

J’aime bien faire le bilan annuel de mon blogue, histoire de voir un peu ce qui s’est passé. WordPress est très aidant en nous faisant parvenir un beau sommaire des faits saillants au début de l’année. Voici donc les points forts de mon blogue :

  • 20 billets produits en 2011 au lieu de 52 souhaités. Malgré tout c’est une bonne progression par rapport à 2010 où j’en avais composés 13. Conclusion: j’aime bien écrire des billets, mais parfois avec beaucoup de travail au boulot et avec la famille, le temps est parfois difficile à trouver.
  • Les visites en hausse à 3600  (1400 l’an dernier). Très bonne progression. Autre fait intéressant et qui prouve qu’annoncer ses nouveaux billets sur les médias sociaux fonctionne, regardez qui se retrouve parmi les sites référents principaux :
    • twitter.com
    • linkedin.com
    • fr.wordpress.com
  • Les pays principaux des visiteurs sont la France, le Canada et la Suisse.
  • Certains visiteurs sont venus par des recherches, la plupart avec les mots clefs suivants: gtd, pomodoro logiciel, code retreat, gestion visuelle, et getting things done.

Autre point intéressant, ma série de billets sur les outils de productivité semble avoir été fort populaire. D’ailleurs, on en retrouve plusieurs dans mon top 5 des billets les plus lus et commentés en 2011:

  1. Outils de productivité partie 2: La Technique Pomodoro
        (le plus populaire en 2011 !!!)
  2. C’est quoi un Lean Startup ?
  3. Outils de productivité partie 1: GTD
  4. Outils de productivité partie 5: Les utilitaires
  5. Outils de productivité partie 4: Zen et Focus

Voici mes objectifs en 2012 en ce qui a trait à mon blogue:

  • Rédaction de 30 billets en 2011 (52 était un peu trop, on va y aller progressivement).
  • Refaire une légère refonte de mon blogue (thème et autre)
  • Faire page "À propos de moi"
  • Faire une série de billets sur un sujet en particulier

Référence:

Diète de l’information

MP900321066

J’aime bien lire un paquet de trucs sur différents sujets liés de près ou de loin au développement informatique. Par contre, je me rends bien compte qu’il y a beaucoup trop d’information disponible et je suis en train de subir un genre de  "information overload". Sans compter les moments pris à vérifier mes courriels, regarder twitter et mon nouveau iPhone4…

Inspiré des livres Focus et The 4-Hour Workweek(4HWW), j’ai décidé de faire une semaine de diète de l’information pour voir un peu ce que cela donne.

Je me sers de Google Reader pour lire les blogues que je suis. Il est pratique, car je peux les lire peu importe l’ordinateur que j’utiliser. Par contre, avec mes abonnements, j’ai environ billets 200-300 à voir chaque semaine:

image

C’est certain que je ne les lis pas tous. Seulement ceux d’intérêt. Par contre cela me prend de temps pour parcourir la liste. En révisant tous mes abonnements, j’en ai éliminé une vingtaine d’abonnements et réduit mon nombre de billets en une semaine à environ 100-150:

image

Et le temps de les parcourir et lire les intéressants: 20 minutes environ. Bonne amélioration ici !

Pour Twitter, j’ai aussi fait un ménage dans la liste de mes abonnements. Il y en avait plusieurs qui étaient des comptes de compagnie qui dans le fond envoyer de la pub. J’ai alors seulement gardé les pertinents. Et certains comptes aussi ne semblaient pas avoir eu de twit depuis un certain temps. J’ai donc réduit ma liste d’une vingtaine d’abonnements. Pas si mal. Faut surtout contrôler le temps passé à lire twitter.

 

Vérification des courriels

Là, je me suis discipliné. Je regardais mes courriels personnels un peu trop régulièrement à mon goût. Même si des fois cela me prends que seulement 30 secondes pour vérifier, la perte de mon focus courant est importante. Je me suis donc imposé l’horaire suivant:

  • 12h00
  • 15h30
  • 20h00

Et voilà, seulement trois fois dans la journée ! Et cela marche très bien. Il faut travailler quand même fort contre cette habitude de toujours vérifier nos courriels au cas où on manquerait quelque chose. Ah cette peur irrationnelle !

Pour mes courriels de mon travail, je me dois quand même de les regarder régulièrement, car cela fait partie de mon travail. Soit que je me programme un pomodoro pour faire uniquement le tri de mes courriels et mes tâches ou je les consulte entre deux pomodori.

Est-ce que vous avez des trucs différents pour gérer efficacement l’information provenant d’internet ?

 

Références: