Crédit photo st3f4an FlickR Creatives Commons http://www.flickr.com/photos/st3f4n/
Les gens qui ne sont pas développeurs ne comprennent pas une chose en nous observant : nous sommes de grands enfants. Nous demandons beaucoup d’attention, nous voulons un feedback régulier, nous nous lassons rapidement de nos jouets, et nous sommes capables de piquer des colères en jetant nos jouets sur le sol… Cela dit il y a un domaine où j’apprends chaque jour en regardant le fonctionnement de la communauté open-source : comment se débrouiller lorsque ton dernier jouet est cassé ? Plus clairement, comment poser correctement une question sur une liste de diffusion ? Comment éviter de passer pour le boulet de service qui vient de découvrir l’usage de l’email ? Visite guidée.

C’est un fait : un jour vous serez bloqué face à un problème avec cette #@$* de librairie open-source ou ce #@$% de framework Web. Et là, votre premier réflexe est différent selon votre âge. Si vous êtes dans la catégorie « 35 ans et plus« , vous avez été élevé à la dur, sans Internet. Vous allez chercher un moment seul, quitte à faire des choses stupides comme décompiler des classes Javas, pour finalement trouver sur Google un semblant de réponse à votre problème. Si vous êtes dans la tranche « 30-34 ans » j’imagine que vous ne codez plus. Et oui, on vous a donné la responsabilité d’une équipe/d’un projet/d’une bande de tarés et donc, comme vous êtes temporairement orphelin de clavier, vous n’avez pas ce genre de soucis.
Si vous êtes dans la tranche « moins de 30 ans« , voici ce que vous faîtes : tout d’abord vous demandez aux jeunes « chef-de-projet-architecte-intermittent-du-spectacle » qui vous envoie bouler, et qui vous demande de demander « à l’architecte », le gars +35 ans qui semble super occupé sur Google depuis une heure…. Là en règle générale, comme une souris qui a prit une décharge, vous avez compris que la recherche de la réponse s’effectuera plus rapidement avec votre réseau.
Et vous allez parler avec vos collègues, avec vos anciens collègues, avec vos voisins. Vous postez un message sur votre page Facebook. Vous twitter la question sur Twitter. Vous postez la question sur 31 mailing-listes comme « google collections », « parisjug », « spring user group mailing list », « Pays Basque JUG », « Anciens Eleves de l’ESIAEEEA », « Amitiés Ukrainiennes », « Apache Commons », « Wicket », « StarWars 7 » et aussi « Modes et Travaux » au cas où.
Bref vous êtes massivement dépendant du monde entier, même votre mère est au courant qu’il y a une exception dans ce @#$% de framework que vous ne comprenez pas. Je passe rapidement sur la petite amie/le petit ami qui bien entendu vous a souhaité bon courage ce matin en partant au travail, pour terrasser ce gros Bug, la larme à l’oeil, une tasse de café à la main.


Où en étions-nous ?

Soyons sérieux. Je voulais vous parler de quelques techniques d’anthropologie qui pourraient vous servir afin de poser correctement une question sur une liste de diffusion. Rangez les cotillons, nous redevenons sérieux. Avant tout, au bon endroit ta question tu poseras. Lorsque j’ai un souci avec Spring, ce qui arrive, je vais chercher et poser ma question sur les forums de Spring. J’aurai pu faire du mauvais esprit en disant que je vais sur les forums de JBoss car, eux, ils savent répondre, mais ce serait jouer la facilité.

Ensuite, utiliser Google tu feras. Prenons le cas improbable où vous ne savez pas itérer une Map en Java. Si vous me posez la question, voici comment je vais vous répondre : http://tinyurl.com/ycb8f2u. Faites-vous plaisir, cliquez sur le lien et regardez cette démonstration. Bon, nous avons appris à faire une recherche avec Google. Quoi d’autre ?

Lorsque vous venez ensuite à poster votre question dans un forum, soyez clair, simple et précis. Idéalement, lisez un peu le forum afin de comprendre qui répond en général, et le ton à utiliser. Soyez factuel : lorsque j’ai fait ceci avec cette version dans ces conditions, il s’est produit cela alors que j’attendais ceci. Les messages qui nous font part de votre état d’âme ne sont pas intéressants. Que vous soyez furieux, triste ou dépité de ne pas avoir réussi de nous aidera pas à répondre à votre problème. Lorsque vous rédigez un email ou un message sur un forum, essayez de trouver un sujet précis. Evitez le classique « HELP ! je suis bloqué » ou le très intelligent « J’AI UN PROBLEME« . Oui vous avez un problème, sinon vous ne seriez pas là. Les sujets aident énormément les contributeurs principaux à repérer les questions. Cela peut vous sauver de longues heures d’attente, voir même, vous sauver la vie (ou pas, si votre projet n’est pas si important).

Soyez précis sur la version, votre plateforme ou les détails d’installations. Lorsque vous posez une question, il est primordial de préciser un ensemble de détails qui aident précieusement les personnes qui vont vous répondre :
– version de la librairie
– plateforme
– configuration utilisée
– la version de Java
– votre système d’exploitation
– base de données
Vous pouvez compléter avec d’autres détails comme vos mensurations, le numéro de votre carte de paiement ou une photo de votre chien, mais en général, la liste précédente est suffisante.

Evitez la voyance. Evitez de dire « je pense » ou « à mon avis« . Si vous êtes venu chercher de l’aide, croyez-moi, c’est que vous êtes bien bloqué. Et il est donc évident que si vous commencez à donner votre avis, vous allez passer pour celui-dont-on-ne-doit-pas-dire-le-nom, plus communément appelé « Le Boulet« .

Lorsque vous débarquez pour la première fois sur une liste, ne clamez pas « J’AI TROUVÉ UN BUG« .
Imaginez la réaction d’un gars comme Emmanuel Bernard, en vous voyant arriver comme un Jacky au volant de sa 205 Tuning, et hurlant « J’AI TROUVE un BUG dans HIBERNATE, RULEZ, LordZZZ ! I’m the KING« . En général, vous serez le 235ème bonhomme à trouver le même bug, pour peu qu’il s’agisse d’un Bug. En général vous n’aurez pas trouvé un bug. Donc humilité et simplicité, pas de jantes alliages, pas de Klaxons.

Si vous trouvez tout seul la réponse, soyez sympa pour vos camarades : postez la réponse ou l’explication. Combien de messages restent orphelin ? Sans réponses ? Evitez aussi la désagréable habitude de « upper » votre message dans les forums, pour le faire passer en première page. Si personne n’a répondu au bout de 5 mois, vous êtes un extraterrestre qui a un souci impossible à résoudre, arrêtez l’informatique.

Conclusion
Voilà… Un peu comme Nicolas Hulot qui se dit qu’il vient de sauver 34 arbres grâce à son émission, je m’en vais et je me dis que j’aurai sauvé quelques électrons inutiles. Avec un peu de chance, la question de SuperBoulet ne sera finalement pas posée, et il aura trouvé sa réponse sur Google, comme un vieux. Ou il aura demandé à un de ses potes, comme un jeune.

A lire absolument : http://www.catb.org/~esr/faqs/smart-questions.html

Crédit photo :
St3f4n http://www.flickr.com/photos/st3f4n Licence Creative Commons.

8 réflexions sur « De l'art de savoir poser une question ou de se débrouiller comme un grand »

  1. Bien évidemment ces conseils peuvent s’appliquer aussi bien aux demandes sur des projets externes qu’en interne.

    C’est même chaudement recommandé !

  2. Tellement vrai ….
    Les assistés nous envahissent …
    Ils sont parmi nous …
    Combien de fois voit-on des questions super simples qui pourraient être trouvées par une simple recherche Google et quelques efforts !!!

    Je rajouterai aussi ce conseil (de plus en plus valable hélas) : écrivez correctement !!!
    Lire du SMS écorche les yeux.
    Personnellement, je refuse de répondre à des questions si c’est écris en mode SMS.

  3. Ah oui, bien vu, et tellement vrai.

    A l’opposé je trouve aussi qu’il y a sur le web finalement trop de lieux pour poser ce genre de questions sur, typiquement, des problèmes de développement ; çà peut paraître étonnant comme remarque, mais le regroupement de certaines volontés pourraient faire du bien (et la disparition de certains sites tous moisis comme « experts-exchange.com », Dieu que ce site m’exaspère quand je tombe dessus, avec ces milliards de bandeaux de pubs).

    Oui Google aide souvent beaucoup pour s’y retrouver, notamment pour les recherches super précises (genre stacktraces), mais dans certains cas (problèmes un peu généraux ou difficiles à décrire avec une expression précise, ou utilisant des mots trop génériques (« threads bloqués », etc.), on ne sait jamais trop où chercher, le nombre de forums / sites spécifiques / mailing lists est trop important (même si bien sûr il faut parfois des lieux ciblés ou spécifiques à un sujet précis / pointu), avec des activités variables …

    Au final un des sites les plus pertinents / réactifs / bien fichu que je connaisse, c’est StackOverflow (et ses dérivés) (http://stackoverflow.com/) (en anglais).

  4. Allé, je vais être sympa et je vous fais part d’une astuce d’un gars qui fait partie de la catégorie « 35 ans et plus ».

    Il y a 5 ans je me suis créé un compte Gmail spécial mailing list. Je suis abonné à 153 mailing list (essentiellement des fwk open source mais aussi commerciaux) ce qui fait un total de 437197 mails (j’ai même dû upgrader mon compte Gmail à 20Go). Ca fait une sacrée base de données de mails techniques que j’accède à partir d’un seul point, c’est à dire Gmail. Autant vous dire que ça m’enlève qques épines du pied et répond à pas mal de mes problèmes.

  5. En plus de nous rappeler au quotidien cette attitude à adopter en cas de blocage, cela est toujours utile de le lire surtout pour les personnes comme moi qui se rangent plutôt du côté des assistés même si je me soigne.

    Merci pour ces précieux conseils si bien développés!

  6. il n’y a pas longtemps je voulais une precision sur une syntaxe des requetes JPA concernant les Map (HashMap).
    Le seul souci c’est que chercher sur internet quelque chose de super precis sur le sujet des Map concernant les framework de « mapping »… c’est chercher du aiguille dans une botte de foin… Jamais trouve la reponse.

    deuxio : souvent on cherche au mauvais endroit. Si ca fait une NPE ici c’est parce que la connexion a la base deconne, parce qu’une colonne de la base est Not Null au lieu de null, par exemple . Vous voyez ce que je veux dire.
    Donc souvent on croit trouver un bug (dans richfaces par exemple) alors qu’en fait en changeant un peu son code ailleurs , le fameux tag richfaces tout bugge en fait il marche tres bien.

    Souvent, il faut du nez.
    Et surtou, surtout, surtout, lire la stacktrace. Elle ne ment que tres rarement. On comprend sa signification qu’a la fin.

    tout ca n’a rien a voir avec le sujet ceci dit 😀

  7. C’est pour cela qu’il faut faire des assistés des assistants.

    Il ne faut pas les envoyer chier, mais pas non plus leur donner la réponse sans explication.

    Surtout si c’est dans la vraie vie (open space), expliquez votre démarche, ce qui a permis de trouver la réponse (ou une piste), voir rechercher avec eux.

    Genre, je ne sais pas, je ne connais pas trop ce sujet, mais je dirais qu’on peut peut être regarder le message d’erreur ainsi que comparer la syntaxe avec celle d’un autre projet ou ils utilisent la même techno. Ensuite, on peut taper le code d’erreur sur google, et comme « mapping » est un mot trop utilisé, on va écrire le nom du framework même si c’est limitatif afin de cerner le sujet, puis blablabla…

    2, 5, 10 fois comme ça et peu à peu ça entre, et on devient autonome

    C’est du vécu (en tant qu’apprenti d’abord).

Les commentaires sont fermés.