mercredi 31 août 2011
T'es pas game...
vendredi 26 août 2011
Fast, Cheap, Good - Choose any two
dimanche 14 août 2011
Les langages spécialisés ou "niche languages"
The mythical man-month
J'ai terminé la lecture de ce classique de la gestion de projets informatiques. Il est étonnant de constater jusqu'à quel point les problèmes essentiels du développement logiciel sont restés, à peu de choses près, les mêmes, depuis les tous débuts. Ce qu'il faut retenir : en développement logiciel, on n'augmente pas la productivité selon un ratio 1:1 en ajoutant un programmeur au projet. En particulier pour les gros projets. La manière la plus optimale de développer est une petite équipe. La petite équipe la plus efficace est la paire. Malheureusement, la plupart des gros projets logiciels sont trop grand et prendraient trop de temps à être réalisés par une si petite équipe. C'est pourquoi, pour bien planifier les plus gros projets informatiques, il faut tenir compte du facteur de la communication. L'auteur mentionne également que pour un maximum de cohérence et d'uniformité, (celui-ci appelle ça l'intégrité conceptuelle), il faut qu'une personne, un architecte ait une vision globale du projet, et possiblement plusieurs sous-architectes, coordonnés par un architecte-chef pour les plus gros projets. Un dernier point intéressant amené par l'auteur : la maintenance. Selon lui, toute réparation tend a détruire la structure et de ce fait, augmente l'entropie et le désordre du systeme. Meme les réparations les plus habiles ne font que retarder l'inévitable chute du logiciel dans un chaos irréparable, a partir duquel, il faut reconcevoir depuis le début. (traduction adlib).
En conclusion, ce livre est une sorte d'essai, réfléchissant et faisant le point sur la profession. Il m'a éclairé et montré une perspective très intéressante qui est, je crois, incontournable lorsqu'on s'intéresse au génie logiciel en 2011.
jeudi 11 août 2011
De la complexité des logiciels
Fascinant ! Probablement qu'un partie de la complexité que je rencontre dans mon travail vient d'une lacune de programmation de l'équipe mais il y a surement une partie qui pourrait être attribuable à un processus d'affaire mal optimisé.
In my experience most of the complexities which are encountered in systems work are symptoms of organizational malfunctions. Trying to model this reality with equally complex programs is actually to conserve the mess instead of solving the problems.
mercredi 10 août 2011
Code kata
How do you get to be a great musician? It helps to know the theory, and to understand the mechanics of your instrument. It helps to have talent. But ultimately, greatness comes from practicing; applying the theory over and over again, using feedback to get better every time.
How do you get to be an All-Star sports person? Obviously fitness and talent help. But the great athletes spend hours and hours every day, practicing.
But in the software industry we take developers trained in the theory and throw them straight in to the deep-end, working on a project. It’s like taking a group of fit kids and telling them that they have four quarters to beat the Redskins (hey, we manage by objectives, right?). In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions. source
Combien ça coûte mourir ?
Question du jour. Tout le monde sait que l'industrie funéraire ira probablement bien dans les prochaines années à cause de la courbe démographique que l'on connait. Étrangement, un peu comme pour l'industrie du mariage, les prix semblent uniformément et artificiellement gonflés. Imaginons que de nouveaux joueurs entraient dans ce marché et faisaient baisser les prix, croyez-vous que cela se passerait sans représailles ?