Les 5 qualités d’un développpeur très efficace : humilité (1/5)

Voici en cinq parties, la traduction d’un article de Ben Watson publié le 20 janvier 2008 sur son blog : Top 5 Attributes of Highly Effective Programmers. Ma traduction est amateur, mais vous permettra de profiter des idées de Ben Watson dans votre langue maternelle.

Il propose, et développe 5 qualités essentielles qui distinguent le bon développeur du mauvais :

  1. Humilité
  2. Aimer apprendre (2e partie)
  3. Amour du détail  (3e partie)
  4. Adaptabilité  (4e partie)
  5. Passion (5e partie)

—-

Quelles qualités peuvent contribuer à différencier un développeur très efficace d’un banal développeur ordinaire ?

Je ne crois pas que les qualités listées ici soient une finalité, pas plus que je ne crois que vous devez être né avec. Presque tout dans la vie peut s’apprendre, et ces qualités ne font pas exception.

Humilité

L’humilité est la première parce que cela implique les autres qualités, ou au moins, les rend possible. Il y a beaucoup de malentendus sur ce qu’est l’humilité et parfois c’est plus facile d’expliquer ce que cela n’est pas :

  • l’humilité ce n’est pas laisser les autres vous marcher dessus
  • l’humilité ce n’est pas supprimer vos opinions
  • l’humilité ce n’est pas penser que vous êtes un mauvais développeur

C.S. Lewis l’a le mieux décrite, sous l’apparence littéraire d’un diable essayant de subvertir l’humanité :

Laissez le penser à [l’humilité] pas comme un effacement de soi, mais comme une certaine sorte d’opinion (à savoir, une petite opinion) de ses propres talents et caractéristiques…Réparer dans son esprit l’idée que l’humilité consiste à essayer de croire que ces talents sont moins importants que ce qu’il croit qu’ils sont… Avec cette méthode des milliers d’humains ont été amenés à penser que l’humilité signifiait des jolies femmes essayant de croire qu’elles étaient laides et des hommes malins essayant de croire qu’ils étaient idiots.

(The Screwtape Letters, C.S. Lewis)

Ok, donc nous réalisons que l’humilité n’est pas de prétendre être pire que ce que l’on est et ce n’est pas la timidité. Alors, qu’est-ce que c’est ?

Simplement l’humilité est comprendre que le monde ne commence ni ne finit avec vous. C’est accepter que vous ne sachiez pas tout ce qu’il y a à savoir sur WPF, ou Perl ou Linux. C’est une reconnaissance du fait que, même si vous êtes un expert dans un domaine particulier, il y a encore beaucoup à apprendre. En fait, il y a largement plus à apprendre que vous ne pouvez le faire durant une vie entière, et c’est pas grave.

Une fois que vous commencez à penser que vous êtes un expert, à être présomptueux et que vous avez le mot de la fin sur quelque chose, vous cessez de grandir, vous cessez d’apprendre, et vous cessez de progresser. La fierté peut vous rendre obsolète plus vite que vous ne pouvez dire « Java ».

Le fait est que même si vous êtes humble, vous êtes probablement intelligent. Si vous travaillez dans une petite entreprise avec quelques développeurs (ou dans n’importe quelle entreprise avec quelques bons développeurs), il est probable que vous êtes plus intelligent que la majorité d’eux quand on en vient à l’informatique. (Si vous êtes plus intelligent qu’eux à propos de tout, alors vous échouez au test de l’humilité ou vous avez besoin de partir rapidement de cette entreprise). Depuis que vous avez appris à en savoir plus sur les ordinateurs, et sur comment les logiciels fonctionnent, que la plupart des gens, et, depuis que la vie de tout le monde tourne de plus en plus autour de l’utilisation d’un ordinateur, cela vous donne l’illusion que vous êtes plus intelligent que les autres sur tout. C’est habituellement une erreur.

Prenez le Service Marketing/Ventes par exemple. J’ai environ 50 strips de Dilbert accrochés dans mon bureau. Je devine que la moitié se moquent du Service Marketing/Ventes d’une certaine façon. C’est facile, c’est drôle et souvent amplement mérité !

Mais s’ils ne vendent pas votre logiciel, vous ne serez pas payés. Vous avez besoin d’eux autant qu’ils ont besoin de vous. Si quelqu’un vous demande de vendre votre logiciel, comment ferez vous ? Aimez-vous au moins parler aux gens ? Aussi nuls soient-ils sur les réalités du développement logiciel, ils ont des compétences que vous n’avez pas.

Il existe quelques industries où les egos démesurés vous donnent votre place. Je ne crois pas que ce soit le cas le plus courant dans le logiciel, du moins dans les entreprises dirigées par des gens qui comprennent le logiciel. L’ego ne compte pas pour les résultats. Si vous avez un gros égo, vous feriez mieux d’être capable de le retenir. Malheureusement, le problème avec les egos est qu’ils grandissent-par la suite vous ne serez plus capable de le contrôler et les gens le verront.

Le développeur compétent est complètement conscient de l’étendue limitée de ses propres compétences ; c’est pourquoi il considère les tâches de programmation en toute humilité, et par dessus tout il évite les trucs intellos comme la peste. – Dijkstra

Sans l’humilité, vous allez faire des erreurs. En fait, même avec l’humilité vous allez faire des erreurs, mais vous le réaliserez plus tôt. En considérant que vous savez comment résoudre un problème immédiatement, vous pouvez prendre des raccourcis dans le processus de développement. Vous pouvez penser que vous comprenez le logiciel si bien que vous pouvez facilement réparer un bogue avec quelques astuces…mais, vous ne vous rendez pas compte que cette autre fonction là bas est maintenant inopérante. Un développeur humble dira d’abord « Je ne connais pas la manière propre de réparer le problème » et prendra du temps pour l’analyser.

Au final, il est plus agréable de travailler avec des gens humbles. Ils ne font pas de leur supériorité un but. Ils n’ont pas tout le temps la « bonne réponse » (signifiant que tout les autres ont tort, bien entendu).

Laissez votre égo de côté quand vous développez.

Ce n’est pas si important d’avoir tout bon la première fois. C’est extrêmement important d’avoir tout bon au final. – Andrew Hunt and David Thomas

Peut-être que le plus important est qu’un développeur humble peut se former lui-même.

Etes-vous humble, alors ? Avez-vous remarqué cette qualité chez vos collègues ?

2 réflexions sur “Les 5 qualités d’un développpeur très efficace : humilité (1/5)

  1. Sur l’humilté,
    Quand je suis arrivée dans mon entreprise personne n’écoutait ce que je dis; car je parlais avec humilité, en utilisant un vocabulaire simple , je suis informaticienne mais je n’utilise jamais de mots anglais quand je discute, et je ne parle presque pas de mon PC , et je ne connais pas tous les logiciels dont on parle souvent mais qu’on utilise jamais.
    Je sais choisir l’outil adéquat quand je développe et j »utilise ceux que j’ai sous ma mes mains.
    je ne parle pas d’acheter quoique ce soit. j’essaie de résoudre les obstacles par des techniques logicielles.
    Mes collègues pensent que je suis obsolète…mais c’est moi que mes reponsables préfèrent et consutent en cas de besoin.

  2. Merci pour la traduction, mais conçernant cette qualitée elle est souvent absente dans le milieu de developpement d’aprés ma petite experience dans le developpement…

Ajouter mes idées