Sondage Développeurs Québec 2012

Quoi de mieux que de commencer l’année avec un petit sondage pour les programmeurs afin d’en savoir davantage sur le profil de notre profession !

L’idée de ce sondage m’est venue lors de la conférence principale de l’Agile Tour Québec 2011 par Robert C. Martin. Ce dernier, au début de sa présentation, avait fait un sondage éclair à main levée parmi les participants afin d’en savoir plus sur les technologies utilisées et les pratiques connues. La foule n’était pas composée à 100% de développeurs et donc les résultats peut-être un peu faux à ce moment.

Histoire d’en avoir le cœur net, j’ai préparé le court et simple sondage suivant:


Merci d’avance de participer à ce sondage, en particulier si vous avez un des profils suivants ou que vous programmer à l’occasion:

  • Développeur/Programmeur
  • Chef d’équipe
  • Architecte Logiciel
  • Testeur
  • Coach
  • Formateur
  • Entrepreneur

Les résultats du sondage seront publiés sur ce blogue dans quelques semaines. Merci d’y participer.

Mon Bilan 2011 et Mes objectifs 2012

janvier 13, 2012 1 commentaire

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

janvier 8, 2012 2 commentaires

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:

Catégories:Web Tags:,

Le cerveau divisé

Je m’intéresse beaucoup à notre cerveau, comment il fonctionne, se souviens et comment il pense. J’ai eu quelques questionnements on regardant l’excellent vidéo (11min) de RSA Animate "The Divided Brain":

 

Je vous recommande fortement de l’écouter si le sujet vous intéresse. Avec le côté graphique qui suit le discours, c’est divertissant et instructif.

J’ai noté deux passages vers la fin qui je trouve important:

The Intuitive mind is a sacred gift and the rational mind is a faithful servant.
- Albert Einstein

But our society has forgotten the gift and have created a society that honors the servant.
-Iain McGilChrist (présentateur)

 

  • Est-ce qu’effectivement notre société met trop l’accent sur le côté rationnel de notre pensée ?
  • Est-ce que le fait de laisser côté en général notre côté intuitif résulte ainsi une baisse de créativité ?

Je pense comme le présentateur au fait que nous avons besoin des deux côtés pour bien fonctionner.  Des outils comme le Mind Map (schéma heuristique) et  la pensée visuelle sont importants devraient être enseignés et utilisés davantage.

Qu’en pensez-vous ?

Comme d’habitude, les commentaires sont les bienvenus.

Agile Tour 2011: Un beau défi réalisé !

octobre 30, 2011 2 commentaires

IMG_0282

Pour une troisième année consécutive, l’Agile Tour était de retour à Québec mercredi dernier, le 26 octobre. Je m’étonne toujours de la qualité du travail que l’on peut faire pour organiser cette conférence en dépit des circonstances. Par exemple, le fait que personne ne travaille à temps plein là-dessus. Tous les organisateurs ont déjà un premier travail.

Aussi, cette année c’est un peu spécial, car un de mes auteurs préférés de livre, Robert “Uncle Bob” C. Martin, était notre conférencier principal.

J’ai adoré sa présentation, “Clean Architecture”, qui était instructive et divertissante, comme d’habitude dans son cas.

En passant, voici les nouveautés que nous avons amenées cette année:

  • La conférence a lieu dans un hôtel au lieu de l’université Laval
  • Nous avons quatre de salles de conférences + une grande salle pour la conférence principale et les repas.
  • Les conférences sont divisées par thème et par salle afin d’en avoir pour tous les goûts chez nos participants.
  • Un comité de programme a été établi afin d’évaluer et de choisir les soumissions de conférences.
  • 18 sessions différentes, en plus de la conférence principale, étaient offertes aux participants.

Aussi, en tant qu’OSBL (organisme sans buts lucratifs), nous nous efforçons de rendre accessible cet événement au plus grand nombre possible de personnes. Nous avons eu aussi un nombre record de participants (400) et nous avons dû en refuser plusieurs pour cause de logistiques et d’espace dans les salles. L’engouement pour le développement Agile est vraiment en hausse à Québec cette année !

Certaines petites choses sont encore à améliorer, mais ce fut selon moi un très bon événement de grande qualité et pour un prix modique (50$). Ce qui concorde parfaitement avec la mission de la communauté Agile de Québec.

Un gros merci particulier à mes collègues pour qui la plupart c’était la première fois qu’ils organisaient un « Agile Tour » :

  • David Beaumier
  • Félix-Antoine Bourbonnais
  • Patrice Caron
  • Louis-Joseph Foujieu
  • Dave Jacques
  • Amélie Turgeon

Au plaisir de vous retrouver à l’Agile Tour 2012 !

Catégories:Agile/Lean Tags:,

Introduction à un Code Retreat par Corey Haines

août 31, 2011 1 commentaire

Voici l’introduction d’un Code Retreat de Corey Haines que j’ai filmé lors de son passage au Code Retreat Québec 2011 en mai dernier.

J’ai téléchargé le tout sur YouTube en 3 parties pour ne pas perdre la qualité HD.:

Partie 1
Partie 2
Partie 3

Références :

Est-ce que votre code est S.O.L.I.D. ?

août 28, 2011 1 commentaire

CrackDans ce billet, je vais vous décrire brièvement les principes SOLID pour la programmation orientée-objet avec quelques commentaires et vous suggérer quelques ressources pour approfondir ce sujet qui devrait être connu de tous les programmeurs sérieux et professionnels.

Je suis toujours surpris lorsque, la plupart du temps, à chaque fois que je parle de ces principes à de nouveaux collègues, mon interlocuteur hausse les épaules et ne sait pas de quoi je parle.

 

S.O.L.I.D. est acronyme regroupant les principes suivants:

  • Single Responsability Principle (SRP): Une classe devrait avoir une et une seul raison (responsabilité) d’être modifiée.
  • Open Closed Principle (OCP) : Chaque classe devrait être ouverte pour des extensions et fermé autant que possible pour des modifications.
  • Liskov Substitution Principle (LSK) : Les classes dérivées peuvent être substitué de leur classe de base
  • Interface Segregation Principle (ISP) : Nos classes ne doivent pas hériter, via une interface, de méthodes qu’elles n’utilisent pas.
  • Dependency Injection Principle (DIP) : On doit dépendre de classes abstraites et non de classes concrètes

De tous ces principes, le plus important à suivre selon moi est le Single Responsability Principle (SRP). Ne pas respecter ce principe peut apporter plusieurs maux, notamment lorsque l’on fait évoluer le code.  Dans mon équipe actuelle, nous avons fait du SRP le principe de base et le plus important à suivre. De cette manière nous l’avons toujours en tête et il nous sert en quelque sorte de règle de base lorsque l’on se questionne sur la grosseur de classes et de méthodes ou autre.

C’est important aussi de connaitre les autres, mais on y fait référence un peu moins souvent à mon avis.

Pour en savoir plus, sur SOLID, vous pouvez commencer par les deux références suivantes sur Internet :

Pour approfondir SOLID, je recommande fortement le livre suivant (Liens Amazon.ca commandités) de Bob Martin qui se décrit en deux versions, tout dépendant si vous êtes de type Java/C++ ou .Net:

Agile Software Development, Principles, Patterns, and Practices

Type .Net (C#/VB)

Type Java/C++

Dans ce livre, l’oncle Bob nous explique les pratiques agiles, on y voit un peu de modélisation et aussi de nombreux chapitres sont dédiés aux principes orientés-objet. Ce livre d’environ 700 pages fait un très beau livre de référence à mettre sur son bureau pour le lire au complet ou le consulter à l’occasion.

En passant, nous aurons la chance de recevoir Bob Martin en tant que conférencier principal lors de l’Agile Tour Québec 2011. Les inscriptions devraient commencer en septembre. Pour info sur l’Agile Tour : http://at2011.agiletour.org/fr/at2011_Quebec.html

Autres articles intéressants avec exemples d’application de SOLID:

Référence pour l’image utilisée:

http://www.sxc.hu/photo/954598

Catégories:.NET, Agile/Lean, Dev, Livres Tags:, , , ,

C’est quoi un Lean Startup ?

août 21, 2011 5 commentaires

En gros, c’est un mélange de développement Lean et Agile avec une bonne dose d’entrepreneurship. Le but est d’éviter le plus possible de faire du gaspillage  et de livrer un produit innovateur avec succès. On y dénote les principes suivants:

  • Les entrepreneurs sont partout (Entrepreneurs are Everywhere)
  • L’entrepreneurship c’est aussi de la gestion (Entrepeneurship is Management)
  • L’Apprentissage est validé (Validated Learning)
  • L’innovation doit être comptabilisée (Innovation Accounting)
  • Construire-Mesurer-Apprendre (Build-Mesure-Learn)

Eric Ries est à l’origine de ce terme et il en parle depuis quelque temps. Je trouve sa démarche forte intéressante et cela m’a incité à me tenir informer sur ce sujet. En passant, le concept de Lean Startup peut aussi bien être appliqué à l’intérieur d’une compagnie existante que pour une entreprise en démarrage. Pour en savoir davantage sur Eric Ries, je vous recommande le vidéo suivant d’une de ses conférences qu’il a données récemment :

 

D’ailleurs, son livre sur le Lean Startup sera publié en septembre. J’aime beaucoup le graphique suivant qui montre le cycle de développement dans un Lean Startup:

25255_387440405880_387431575880_4176788_6681867_n (1)

On peut aussi se poser la question suivante, en quoi le Lean Startup est différent du développement Agile ? Le tableau suivant  de Joshua Kerievsky résume fort bien les différences et les similitudes entre le développement Agile et le Lean Startup:

Agile Lean Startup
Product Roadmap Business Model Canvas
Product Vision Product Market Fit
Release Plan Minimal Viable Product
Sprint Kanban
Sprint Review Pivot or Persevere Decision
On-Site Customer “Get Out Of The Building”
User Story Hypothesis
Backlog “To Learn” List
Definition of Done Validated Learning
Red-Green-Refactor Learn-Measure-Build
Customer Feedback Customer Validation
Acceptance Test Split Test
Velocity AARRR
Mock Object Feature Fake
Continuous Integration Continuous Deployment
Certified Scrum Master Customer Success Manager

 

Est-ce que vous pensez que ce genre de modèle peut réussir ici au Québec ?

Est-ce qu’il y a vraiment des entrepreneurs un peu partout ici ou c’est seulement réservé à nos voisins du sud ?

Est-ce que vous connaissez des exemples de compagnies d’ici qui ont appliqué ce modèle ?

 

Références:

La place des Business Objects dans le MVP

Où doit-on placer nos composants d’affaires (i.e Business Objects) lorsque l’on utilise les designs patterns du genre Model-View-Presenter (MVP) ou Model-View-Controller (MVC) ?

C’est une bonne question et  je la retrouve régulièrement dans les projets auxquels j’ai travaillé.

Mais avant de poursuivre, voici une conversation forte intéressante que j’ai observée sur twitter il y a quelque temps entre Robert “Uncle Bob” Martin et Martin Fowler à ce sujet:

Image@unclebobmartin Views should have no knowledge of business objects. Presenters should create data structures from business objects & views should use them.
Image@martinfowler @unclebobmartin disgree. It’s both traditional and effective for views to see domain objects
Image(1)@RonJeffries @unclebobmartin i’d wanna see one or more examples showing why views shouldn’t see domain objects but instead … what, “views “of them?
Image@unclebobmartin @martinfowler The problem is that views become coupled to business logic. Changes to BOs imply changes to views.
Image@martinfowler @unclebobmartin I think the relationships between view, model and other elements is too context-specific for a general rule
Image(2)@GBGames @unclebobmartin @martinfowler To be clear, I know MVC, but it seems there’s debate about what the V knows about the M?
Image[4]@martinfowler @GBGames @unclebobmartin There are many forms of MVC with different trade-offs. I said more at http://martinfowler.com/eaaDev/uiArchs.html
Image@unclebobmartin @peter_bugge BOs change for reasons of business logic. Views need not be affected.
Image@unclebobmartin @sebasmonia A change to the BO will often cause change to presentation logic, but hopefully not to the views.
Image@unclebobmartin An object has private state and public methods. A data structure has public data and no methods. Getters and setters make data public.
Image@unclebobmartin @MahasenBandara Views are concrete. Models are abstract. Views should depend on Models.
Image@unclebobmartin Business interactions are also business objects. Controllers should invoke interactions not _be_ interactions.

En résumé, Uncle Bob mentionne que pour éviter le couplage, le presenter devrait se refaire de nouveaux objets et les passer à la vue. Martin Fowler nuance un peu le tout en mentionnant que ce n’est pas vrai tout le temps et que cela dépend du contexte.

Le fait de se refaire de nouveaux objets pour la vue peut amener certains problèmes. Exemple, j’ai vu très souvent ce genre de code qui, pour moi, est un beau cas de duplication:

 public ViewObject ConvertObject(BusinessObject objectFromModel)
        {
            var viewObject = new ViewObject() ;
            viewObject.Name = objectFromModel.Name;
            viewObject.Adress = objectFromModel.Adress;
            viewObject.PhoneNumber = objectFromModel.PhoneNumber;
            viewObject.City = objectFromModel.City;

            return viewObject;
        }
    }

Hmm, redondant n’est-ca pas ?

Si les objets sont pratiquement semblables, je suis d’accord avec le point de Martin Fowler et que ce genre d’objets peut être visible au niveau de la vue.

Par contre, s’il y a quelques différences ou des champs non utiles qui sont tout de même transférés à la vue, je crois qu’il vaut mieux y aller avec de nouveaux objets comme le mentionne Uncle Bob.

Bref, la règle à suivre selon moi est de toujours voir selon les besoins du contexte.

Et vous, qu’est-ce que vous faites dans ce cas avec les Business Objects ?

Lectures à la plage

Lectures2011

J’aime bien me faire une nouvelle sélection de livre à lire pour l’été. Et ce, même si je mets de côté certains déjà entamés…

Et oui, c’est les vacances pour les lectures en cours aussi !

Donc, je vous présente ma sélection de lectures pour l’été:

Rework par Jason Fried et David Heinemeier Hanson: Livre des deux fondateurs de la compagnie 37signals. On y parle de comment ils ont bâtit leur compagnie en ne respectant pas les manières standards de faire. Très pragmatique et Lean dans leur approche, l’ouvrage semble intéressant à lire. C’est d’ailleurs David Heinemeier Hanson qui est derrière le framework web Ruby On Rails (RoR) qui a été utilisé pour bâtir un de leurs premiers produits: Basecamp. Ils ont fait par la suite de RoR un framework Open source.

Enchantment par Guy Kawasaki: J’aime bien cet ancien d’Apple et sa manière de présenter les choses. Quoi de mieux que de lire son dernier livre pour en apprendre davantage sur lui. On y parle ici de comment “charmer” les gens, de manière positive bien sûr, pour changer les choses, offrir ses services, vendre un produit, etc.

The Well Grounded Rubyist par David A. Black : Ayant récemment terminé un tutorial sur Ruby On Rails, je voulais poursuivre en apprenant davantage la base du langage Ruby. Ce livre semble bien fait pour cela. Par contre, je ne pense pas lire les quelques 500 pages pendant l’été. Passer à travers quelques chapitres serait déjà un bon pas d’effectué.

Et d’autres moins sérieuses pour se divertir, car c’est important aussi pendant les vacances. Étant un bon amateur de bandes dessinées ou Comics Books, voici ma sélection:

Dark Tower – The Gunslinger Born : J’ai toujours voulu lire la série “Dark Tower” de Stephen King. En voici l’occasion avec le premier volume de cette adaptation en bande dessinée qui me semble très bien réussi.

Justice League International: J’aime bien cette série des années 90 où l’humour est omniprésent chez un groupe international de super-héros. Hilarant.

Et vous, est-ce que vous avez des lectures particulières pour cet été ?

En passant, n’hésitez-pas à consulter mon profil et me suivre sur Goodreads:
http://www.goodreads.com/profile/karlmet

Catégories:Livres Tags:
Suivre

Get every new post delivered to your Inbox.