Le proverbe nous apprend qu'il n'y a pas de mauvais artisan, mais qu'il n'y a que de mauvais outils, et c'est également vrai en informatique. Il y a beaucoup de gens qui utilisent sans le savoir les mauvaises méthodes, les mauvais outils, et qui font du mauvais travail, ou du moins du travail pénible et peu efficace.

Ce n'est pourtant pas la pléthore de solutions disponible pour chaque utilisation qui aurait put créer un « vide technique » autour de la profession ; il existe énormément de logiciels plus ou moins bien conçus, libres et/ou gratuits, pour répondre aux problématiques quotidiennes d'un informaticien « généraliste » [1].

Le problème, c'est souvent que les gens ne savent pas qu'ils sont ignorants à propos des outils existants et des méthodes de développement. C'est quelque chose que je constate avec mes camarades à la fac, et que je retrouve dans les jeunes communautés OpenSource. Ils utilisent donc des outils qui ne sont pas vraiment adapté pour répondre à des problèmes qu'ils ne se seraient peur être pas posés en s'organisant autrement.

Le point le plus dramatique le plus souvent, c'est que ces derniers refusent également les nouveaux outils qu'on leur propose ou qu'on leur impose, ils ne veulent pas reconnaître non plus la qualité d'un des individus du groupe pour mettre en place et apprendre aux autre à se servir du nouvel outil. Il arrive même que ces derniers s'entêtent dans une solution alternative à la leur, mais qui est aussi alternative à la votre, alors qu'elle pose plus de problème que la votre sur de nombreux points. C'est prétentieux de prétendre détenir la vérité par rapport aux bons outils et aux bonnes méthodes, mais la valeur de l'expérience est trop souvent sous estimée, si elle n'est pas tout simplement ignorée.

Les jeunes communautés ont toujours deux attitudes antagonistes :

  • Se démarquer des autres communautés en utilisant d'autres outils, en changeant de méthode, bref en essayant d'autres voies, ce n'est pas un mal en soi si ces voies sont praticables
  • Ou alors coller à 100% aux autres communautés, plagiat leurs méthodes, leurs outils, mais sans l'expertise des autres, et bien souvent le résultat c'est que les outils n sont pas maîtrisés, et le travail s'embourbe dans des procédures qui ne sont pas adaptées à la taille de la communauté.

Je suis sans doute très critique, mais il y a des moments où vraiment je dis stop, je ne supporte plus par exemple :

  • Que l'on refuse les outils de gestion de version avec code public (ou privé développeurs) pour travailler sur un projet de code, ou un projet où la valeur ajoutée est incrémentale (on améliore constamment, c'est pas « one shot »)
  • Que l'on utilise un forum comme bug tracker
  • Que l'on utilise un forum comme gestionnaire de tâches
  • Que l'on utilise un forum pour de la revue de code (!)
  • Que l'on utilise un forum pour de la documentation plutôt qu'un wiki (ouvert ou fermé d'ailleurs)
  • Que la roadmap est inconnue, sauf du leader du projet
  • Qu'il n'existe pas de portail privé pour les membres du projet, avec un accès direct à l'ensemble des outils
  • Que l'on ne me fasse pas confiance (pourquoi je ferais confiance au responsable du projet s'il ne me fait pas confiance ?)
Pour conclure, voici quelques pistes de logiciels à explorer pour ceux qui veulent changer leur manière de travailler :
  • Outils de gestion de versions : Subversion, Git, Mercurial
  • Outils de report et de traitement des bugs : MantisBT, Bugzilla
  • Outils de travail collaboratif : Dokuwiki (documentation), OpenCollab (Coordination)
  • Outils « Tout-en-un » : Trac (wiki+bug tracker+gestionnaire de tâches+synchro svn, git, etc), Redmine (wiki+tracker+gestion de projet+synchro svn, git, etc+forums+diagrammes de GANTT+machine à café)

Notes :

  • [1] Je parle ici de concept de généraliste, mais il est différent de celui des médecins généralistes, en effet on pourrait penser que pour moi l'informaticien généraliste est celui qui vient vous installer windows et vous réparer votre ordinateur quand vous en avez besoin, mais ce n'est pas ce que je considère comme un informaticien généraliste. Même s'il m'arrive d'envier les connaissances techniques de ces personnes avec les système d'exploitation grand public, et la connaissance qu'ils ont du matériel qu'ils installent, ce ne sont à mon sens que des techniciens, pour moi un informaticien généraliste est un informaticien qui a des connaissances larges, à la fois techniques mais aussi des connaissances sur les concepts abstraits et fondamentaux de l'informatique, bref une personne un peu « touche à tout », mais avec un seul domaine de prédilection, comme tout le monde. Je me considère comme un généraliste, à ma façon.