Je compare fréquemment le développement logiciel aux grandes expéditions navales des temps anciens qui reliaient l’Europe et l’Amérique. Il y a des hauts et il y a des bas. L’équipage se fait brasser à tous les vents. Il peut être même certain que votre patience sera éprouvée à certains moments les plus intenses de l’aventure.
Ce qui fait que le bateau arrivera à bon port sera relié aux qualités individuelles des individus constituant l’équipage. Les maillons de la chaîne, pour faire bref.
Les occasions de s’arracher les cheveux sont moins probables lorsque le ciel est bleu et que la mer est calme. C’est lorsque la tempête se pointe le bout du nez qu’il faut savoir où se positionner pour prendre les meilleures décisions possible.
Ce que je vais énumérer ici n’est pas un guide pour le gestionnaire qui sommeille en vous. Loin de là. Il s’agit de principes qui vont guider les orientations des décisions que vous aurez à prendre envers vous et vis-à-vis les autres. Il faut le voir un peu comme le Sextant qui vous permettra de vous orienter.
Avant tout, il est important de toujours se rappeler que, en tant que développeur, il est très rare qu’il y ait uniquement nos propres intérêts à considérer. Même si la nature du travail est relativement singulière, une très grande partie du travail est d’interagir avec des êtres humains. Le respect des autres est une qualité excessivement importante dans ce métier.
Respect
Le développement logiciel est, avant tout, une question de collaboration et d’échange entre individus avant d’être une question de programmation, à mon avis.
Faites l’exercice pendant une journée typique. Comptez le temps que vous passez à échanger avec des collègues par courriel, messagerie instantanée ou même… de vive voix.
Une grande partie de la crédibilité que vous allez acquérir est par le respect que vous allez donner aux relations que vous aurez sur le plancher. Vos compétences techniques y seront pour très peu de ce côté.
L’équipe avant l’individu
La question de l’équipe revient souvent dans les discussions que j’ai avec des développeurs. Qu’est-ce qui fait qu’une équipe « marche »?
Bien souvent, nous n’avons pas la chance de choisir avec qui nous allons travailler. Il faut apprendre à connaître nos proches collaborateurs et profiter au maximum de ce qu’ils peuvent nous apporter. Il est très rare que ces relations aillent à sens unique. Il peut y avoir du positif dans tout, il faut savoir où le trouver.
Un tout, est la somme des unités qui le composent. Pour faire simple, rien de cela ne serait possible sans l’apport de tous.
Humilité
Ce point, je le nomme souvent : « apprendre à perdre » ou même « s’entendre sur notre désaccord », si vous êtes du genre à ne pas aimer perdre, justement.
Ici, il n’est pas question de se mériter le privilège de pouvoir dire « je te l’avais dit! » une fois le temps venu de la rétrospective. Non.
Il s’agit plus de faire preuve d’humilité et d’accepter entièrement la décision d’équipe.
Réalisme dans la mise en place de solutions
L’herbe est toujours plus verte chez le voisin. Ce qu’on ne sait pas tout de suite, c’est que le voisin se fait chier intensément à la garder verte sa pelouse.
Ce que j’essaie de dire ici, c’est que la tentation de vouloir intégrer les technologies les plus récentes et les plus avancées dans son projet est toujours forte. J’ai toujours supposé que c’était une caractéristique propre aux développeurs.
L’effet de l’adoption d’une technologie qui n’a pas encore totalement fait ses preuves a souvent des effets pervers. Plus souvent qu’autrement, ces effets se font sentir plus tard dans le projet, car le manque de connaissance sur la technologie va influencer certaines décisions techniques. Malheureusement, pas souvent pour le mieux.
Depuis un certain moment, j’essaie d’opter pour une approche conservatrice sur ce point. YAGNI, comme ils disent!
Le mérite vient avec l’effort
Professionnellement comme dans le sport, il faut mériter son temps de jeu. Pour le mériter, il faut travailler fort. C’est aussi simple.
Vous êtes tous capables de pointer du doigt un collègue qui est de tous les combats. Celui qui ne recule pas, peu importe la tâche en question. En comparaison, vous êtes probablement aussi capable de pointer celui qui est le contraire.
Force est d’admettre qu’il n’y a rien de plus épuisant que d’avoir l’impression de traîner quelqu’un à bout de bras à travers les différents projets. Bien souvent, en combinaison avec des points énumérés plus haut, il faut réussir en équipe à trouver un rôle motivant pour que chacun puisse y trouver son compte.