dimanche 22 juillet 2012

Le patron de conception "Dependency injection"

Samedi, ou quelques jours avant en fait, j'ai eu une conversation avec Alex sur l'utilité du framework Spring.  Pour moi, mon souvenir de Spring c'est essentiellement son mécanisme pour implémenter le patron de conception Dependency Injection et la configuration des classes dans un fichier xml.  Je repensais à notre utilisation de Unity.  Au bureau, je pense, qu'on est 2 ou 3 sur une équipe de 7 programmeurs à vraiment comprendre pourquoi nous utilisons ce pattern.  Je faisais remarquer à la blague à un autre ami consultant que dans la plupars des équipes, il devait y avoir seulement 2-3 personnes qui savaient pourquoi il fallait utiliser le patron "Dependency Injection".  Il n'a pas nier qu'effectivement, ce n'est pas la majorité qui sait pourquoi on utilise ce patron. Mais comment peut-on produire du bon code avec un bon design si la majorité ne sait pas pourquoi on doit configurer les classes dans le fichier xml.  Expérience à l'appuie : on ne peut pas.

Je suis toujours surpris de constater jusqu'à quel point avoir une discussion sur un sujet peut m'aider à clarifier ma pensée et ma compréhension de celui-ci.    

Management 3.0

Je suis encore en train de lire Management 3.0 (de Jurgen Appelo) et à mesure que j'avance, je découvre de très beaux extraits.  En voici quelques-uns qui me touchent particulièrement :

Laozi, 2600 ans av. J-C
Intelligent control appears as uncontrol or freedom.  And for that reason it is genuinely intelligent control.  Unintelligent control appears as external domination.  And for that reason it is really unintelligent control.  Intelligent control exerts influence without appearing to do so.  Unintelligent control tries to influence by making a show of force.
Jurgen Appelo


What you are less aware of is that micromanagement - even if you intend it to be temporary - often prevents the workers from being able to self manage or otherwise show that they could handle more authority.  So they continue to work in a dependent way (...)

Jurgen Appelo expliquant "The hidden Power of Social Networks"


They found that people's expertise is not the most important indicator of their performance.  Instead, what actually makes a difference is their connectivity in the organization.


Cockburn


Given that much of the knowlege used in projects is tacit knowledge (undocumented and hard to transfert), the people in an organization need to share it through "osmotic communication" and working together.  And therefore it is imperative that our software teams consist of people who want to share and work together.


dimanche 15 juillet 2012

Acheter de l'art

Ceux qui me connaissent savent que j'ai toujours été intéressé par l'art.  Récemment, je passais dans une galerie dans le Vieux-Montréal et j'ai pu admirer la dernière collection d'Arcade Latour.  La dame responsable de la galerie m'a expliqué brièvement qui est le monsieur et je lui ai parlé de cette idée récente de se servir de l'art comme investissement long terme.  Parait-il, me dit-elle, qu'on peut obtenir des déductions d'impôt pour acheter de l'art au Canada. Vraiment ? J'ai vérifié.  Sans rentrer dans les détails qui me sont vites apparus compliqués, si l'on est une entreprise et qu'on achète une oeuvre d'art dans le but d'obtenir des revenus, alors la dite oeuvre peut faire l'objet d'une déduction fiscale amortie sur plusieurs années.  Acheter une oeuvre d'art dans le but d'obtenir des revenus ? Ça signifie que l'oeuvre doit être placée dans un endroit où les clients pourront la voir et celle-ci pourra alors augmenter le prestige de la compagnie et donc, contribuer à convaincre des clients d'acheter dans notre entreprise.  Donc pas question de demander une déduction si l'oeuvre d'art n'est pas en vue des clients.  C'est intéressant, mais comme je n'ai pas d'entreprise, cette déduction ne m'est d'aucune utilité.  C'est vraiment dommage. 

Par contre, j'ai entendu parlé d'une idée qui me parait vraiment utile cette fois.  Plusieurs amateurs d'art, ayant les mêmes goûts, peuvent se mettre ensemble et partager leurs oeuvres.  De cette manière, on peut sans frais supplémentaires changer le décor et ne pas se lasser de l'oeuvre.  J'aime bien.  À investiguer.

mercredi 11 juillet 2012

La théorie de la complexité et la société

J'ai commencé à lire le livre Management 3.0. À date, c'est très intéressant. Je suis à la section expliquant la théorie de la complexité et les nuances entre quelque chose de complexe, compliqué, simple et simplifié. Vraiment, je vois un peu où ça s'en va et j'adore.

Cela m'a fait faire le lien avec une autre information que j'entendais ce matin à Radio-Canada. Un bon nombre de scientifiques nous informent qu'une catastrophe écologique planétaire est imminente si l'on ne change pas nos habitudes de vie radicalement. Cela fait longtemps que nous le savons mais oui, le temps passe et cela commence à se faire de plus en plus pressant, c'est évident. Je faisais donc le lien entre la théorie de la complexité dans les organisations, corporations et autres dont il est question dans le livre. Je me suis dit qu'au fond, les humains vivant sur cette planète, doivent certainement se comporter globalement comme un immense système complexe.

Ce qui m'amène à penser qu'il y a un problème de taille à l'horizon si l'on veut changer les comportements et les habitudes en place. Il faut gérer cette complexité mais malheureusement, ceux qui gèrent n'ont pas clairement établi qu'ils mettaient leurs efforts dans la direction qui pourraient nous aider. De plus, ceux qui nous gèrent, n'ont pas un gestionnaire central qui établi la vision. Finalement, on peut imposer des lois, mais cela ne changera pas la manière de penser des gens et ceux-ci tenteront de les contourner ou finiront par se révolter. Il faut plutôt une combinaison de lois et des campagnes de sensibilisation à l'échelle de la planète. Ce qui m'amène à la conclusion suivante. Étant donné qu'une grande majorité de gens ne voit pas la nécessité de changer radicalement ses habitudes de vie (moins d'auto, moins d'avion, moins de consommation, etc), ils n'éliront pas de politiciens qui changeront significativement les choses (ex: de grandes campagnes de sensibilisation verte, adaptation des programmes des d'éducation). De plus, étant donné que les lobbies anti-changement et capitalistes sont très influent, les choses risquent encore moins de changer puisque les politiciens auront déjà un mandat faible de changer les choses.

J'en profites au passage pour rappeler que l'actuel gouvernement canadien est un des pires qu'on puisse avoir pour changer les choses, il nous fait même régresser. On aurait pu croire qu'en cette période sombre, il y aurait une tendance généralisée vers le vert, mais non, les lobbies anti-environnementaux doivent être trop fort. Pour balancer, je tiens à souligner tout de même que seulement environ 30% de la population canadienne a voté pour le parti qui est au pouvoir, le système britannique parlementaire à 1 tour de scrutin permettant ce genre d'abbérrations.

Tout cela étant dit, avec des gouvernements et des pays aussi peu alignés dans la direction souhaitable, et pas les moindre (les États-Unis en tête de file), il me parait loin le jour ou l'on va éviter la catastrophe. En fait, je ne crois pas qu'on va l'éviter. Nos enfants vivront sur une planète bien différente de celle que nous avons connue au début de notre vie. C'est malheureux mais il faut l'accepter. Je ne dis pas qu'il faut baisser les bras, au contraire, chaque geste compte toujours et chaque mot que l'on dit peut avoir une influence sur les autres, il ne faut jamais l'oublier. Et comme le dit si bien Laure Warridel d'Équiterre, acheter, c'est voter ! Donc continuons d'acheter de manière consciente et d'en parler autour de nous. Mais je ne crois pas que parce qu'on a pris conscience du problème, qu'il faille moralement se consacrer à une vie d'activisme ou de politique. On peut lutter toute sa vie pour tenter de convaincre les gens de changer leurs habitudes sans réussir. On ne peut pas forcer les gens à changer, il faut laisser la plante pousser et cela peut prendre du temps. Les activistes sont des impatients qui n'acceptent pas et ne respectent pas le rythme des autres. Ils pourraient même nuire à la cause en tentant de brusquer des gens à changer leurs croyances. Malheureusement pour nous, la seule solution, je crois, réside dans l'acceptation de la situation, c'est à dire, que la catastrophe écologique arrivera. Mais il faut continuer d'agir consciemment dans la bonne direction lorsqu'on peut influencer les gens et le pouvoir. Et il faut également garder espoir. Tant qu'il y aura des enfants, il y aura de l'espoir.

mardi 10 juillet 2012

Se sentir connecté

Ce midi, je me sentais déconnecté.  Curieusement, ce n'était pas un sentiment de coupure par rapport aux relations humaines, c'était plus profond.  J'ai décidé d'aller  marcher dans le champ de mais en face de ma job.  J'étais au soleil, seul, à marcher dans la terre sèche, entouré de végétation et j'entends le vent dans les feuilles des arbres. Là, j'ai resenti quelque chose que je n'avais pas senti depuis très longtemps : je ressentais l'existence.  J'ai presque cesser de penser.  J'ai compris que ce qui me manquait, c'était cette connexion.  Cette conscience de ce qui est plus grand que nous.  Il est si facile de se perdre dans les détails de notre vie et d'oublier qui l'on est et où l'on se trouve.  J'ai également fait du yoga avec Émilie hier, cela m'a fait également un effet similaire. Je suis résolu à présent, je ne veux plus perdre de vue ces choses là, je le conscientise dès aujourd'hui, maintenant !

mardi 17 avril 2012

La ligne du cycle de vie

Je me suis réintéressé à la fameuse ligne du cycle de vie du logiciel. Celle de Boehm, c'est celle montrant que la correction d'une erreur dans le logiciel coûte exponentiellement plus cher à mesure qu'on avance dans le projet. Celle de Beck, c'est la ligne montrant qu'en gardant le code toujours propre, toujours flexible, toujours bien entretenu, le coût n'augmente pas avec l'avancement du projet. Je ne sais pas si c'est mon abattement devant la vision d'un chemin encore long à parcourir mais je suis en train de douter que la ligne de Beck existe ! A-t-on seulement déjà mesuré cette fameuse ligne horizontale dans de véritables projets ? Y-a-il des programmeurs qui ont déjà eu la sensation que tout le code de leur projet permettait cela? Je gagerais que non. Bon, peut-être que j'ai mal compris la théorie. Peut-être que ce que Beck dit c'est que SI le code était toujours impeccable partout, ALORS une modification à n'importe quel moment ne coûterait jamais plus cher. Question suivante ? Qu'est-ce que du code impeccable ? Comment ça se mesure (si ça se mesure) ?

Supposons que c'était possible de mesurer parfaitement tout le travail de plusieurs équipes, peut-être pourrions-nous définir ce qu'est du code impeccable, en faisant du "data mining" sur l'ensemble des différents codes source et en en extrayant les particularités communes. Je réfléchi tout haut. Je crois que nous connaissons déjà les caractéristiques générales du "beau" code. Bon. À approfondir...

vendredi 13 avril 2012

Toute l'histoire du monde

Je viens de recommencer à lire le livre "Toute l'histoire du monde, de la préhistoire à nos jours". Il s'agit d'un livre de poche écrit par Jean-Claude Barreau et Guillaume Bigot à l'intention de ceux qui n'ont pas eu la chance d'étudier un ouvrage complet et chronologique de l'histoire du monde. C'est complètement mon cas, j'ai l'impression d'avoir toujours reçu des cours d'histoire en pièces détachées. Oui j'ai bien dessiné une ligne du temps en secondaire 2 mais ça fait longtemps et ce n'était tellement pas la même chose que de lire un livre d'histoire écrit chronologiquement. Mais bref, ça doit être la 4e fois que j'entreprends la lecture de la plus belle histoire, celle du monde. Il y a à chaque fois des détails que j'oublie et que j'espère me rappeler cette fois-ci...

Il y a dans ce livre, de petits bijoux de phrase que j'adore comme :

Qu'est-ce que l'homme ? Un être qui sait qu'il va mourir et qui a besoin de se raconter des histoires. Se raconter des histoires pour supporter cette idée insupportable de la finitude, pour conjurer la nécessité inéluctable de la mort. Se raconter des histoire pour se rapprocher de ses semblables, se réchauffer de leurs paroles, former avec eux une humanité.

Je trouve cela magnifique. L'auteur en vient à parler de ça parce qu'il était à expliquer les conséquences de l'invention du langage : la névrose de l'avenir. Parce que pouvant anticiper le futur, l'homme peut anticiper sa propre mort et celui-ci développe l'angoisse de mourir. C'est que, toujours selon l'auteur, la névrose humaine est originelle.

dimanche 8 avril 2012

Nouveaux blogs stimulants

Je viens d'ajouter deux liens à la liste de blogs que je recommande : A developer life et Épicurien du logiciel. Ce sont deux blogs écrits par des programmeurs super stimulés et stimulants, dont les idées sont au niveau dont j'ai besoin pour progresser. Ce n'est pas toujours évident de trouver des gens qui sont exactement au bon niveau pour avoir une conversation intéressante. J'aime m'entourer de gens qui ont une culture générale similaire à la mienne car cela nous permet d'avoir des conversations stimulantes et variées. En ce qui concerne les discussions en rapport avec ma spécialité, j'aime pouvoir discuter sans pour autant avoir à tout justifier. Avoir à justifier la base a ses bienfaits (par exemple, lorsqu'on encadre un jeune ou un débutant) mais cela ne me comble pas. Pour revenir aux nouveaux blogs, je terminerais en disant que ceux-ci sont un heureux complément à mes discussions de travail et me permettent de rester focalisé et informé sur d'autres pratiques qui évoluent dans l'industrie.

mercredi 15 février 2012

L'absolu

C'est troublant. Être submergé par des idées et une manière de penser complètement différente de celle à laquelle je suis habitué ? Sortir de sa zone de confort pendant toute une semaine ! Wow, ça c'est la vie comme je l'aime. Une formation d'équipe temps plein, c'est la meilleure façon d'apprendre. Je ressens un peu cette sensation étrange de confusion que j'avais quand j'étais à Cuba, en pleine immersion. Tout était un peu étrange, je ne comprenais pas grand chose de l'espagnol et j'étais forcé de parler anglais à tous les autres étudiants. En plus, le formateur est super brillant, il comprend merveilleusement bien la psychologie humaine ET le développement logiciel. Certaines choses dont il faudra que je me rappelle après la formation : parler au JE, porter une attention particulière au sens des mots et éviter de parler en terme d'absolu. L'absolu est faux. L'absolu simplifie, généralise, modélise. C'est pour ça qu'il est faux. Le réel est beaucoup plus complexe.