Ce que j'ai appris en 10 ans sur Stack Overflow


Le dixième anniversaire de ma présence sur Stack Overflow approche. Au fil des ans, mon approche de l'utilisation du site et de sa perception a beaucoup changé et je souhaite partager mon expérience avec vous. Et j'écris à ce sujet du point de vue de l'utilisateur moyen qui n'est pas très impliqué dans la vie de la communauté du site ou de sa culture. Ces derniers jours, je n'ai répondu qu'à des questions concernant VS Code, le produit sur lequel je travaille. Cependant, auparavant, j'ai participé activement à la discussion d'un large éventail de sujets. Pendant 10 ans, j'ai posé environ 50 questions et donné 575 réponses , parcouru une myriade de commentaires d'autres personnes.

John Skeet a décrit la culture Stack Overflow beaucoup mieux et avec plus d'autorité que je ne peux jamais le faire. Sa publication a influencé certains chapitres de cet article, bien qu'en général ce soient mes propres réflexions sur mon expérience avec Stack Overflow, ce qui est bon et mauvais sur ce site, et comment il peut être utilisé aujourd'hui. Cette discussion sera plutôt superficielle, sans immersion profonde dans le travail du site ou son histoire.

C'est donc ce que j'ai appris pendant 10 ans d'utilisation de Stack Overflow.

Vous devez pouvoir poser des questions


À première vue, rien de plus simple: entrez quelques mots dans la zone de texte, cliquez sur «Soumettre», et Internet vous aidera comme par magie à résoudre tous vos problèmes! Mais il m'a fallu près de 10 ans pour comprendre quels mots doivent être entrés dans ce foutu domaine pour vraiment obtenir le résultat. En fait, j'apprends toujours cela tous les jours.

La capacité de poser de bonnes questions est une compétence vraiment sous-estimée (tout comme écrire un bon message sur un problème, soit dit en passant). Premièrement, comment déterminer qu'une question est «bonne»? Stack Overflow offre un indice qui répertorie les qualités d'une bonne question:

  • Fait le thème du site.
  • Implique une réponse objective.
  • Pas encore défini.
  • A fait l'objet d'une enquête.
  • Décrit clairement le problème, généralement avec un exemple minimal et facilement reproductible.

D'accord, mais à quoi ressemble la «description claire du problème» dans la pratique? Quelles informations sont pertinentes et lesquelles ne le sont pas? Parfois, vous avez le sentiment que pour poser une bonne question, vous devez d'abord connaître la réponse.

Malheureusement, une petite zone de texte n'aide pas ici. Est-il donc étonnant que tant d'utilisateurs publient des questions de qualité inférieure? Parfois, la seule réponse qu'ils obtiennent est un lien vers une documentation confuse. Et ils auront de la chance. De nombreuses questions de qualité inférieure sont tout simplement négligées en silence, et elles disparaissent dans un flot ininterrompu de questions.

Poser de bonnes questions est une compétence. Heureusement, il peut être développé. J'ai essentiellement étudié en lisant un tas de questions et réponses, en notant ce qui fonctionne et ce qui ne fonctionne pas. Quelles informations sont utiles et lesquelles interfèrent? Bien que vous ayez toujours peur d'utiliser les connaissances acquises dans la pratique et de poser des questions. Essayez simplement d'apprendre du résultat. Je dois admettre que je suis moi-même un peu confus par certaines de mes premières questions ignorantes, bien que cela prouve peut-être que j'ai considérablement accru ma capacité à poser des questions depuis que je suis venu sur ce site.

Mauvaises et pas trop bonnes questions ne sont pas la même chose


Je n'adoucirai pas la pilule: certaines questions sont tout simplement mauvaises.

La question, composée d'une capture d'écran et de la phrase «POURQUOI ÇA NE FONCTIONNE PAS!?!», Est mauvaise. Pourquoi? De toute évidence, l'auteur n'a fait pratiquement aucun effort. Ce n'est pas tant une question qu'une demande: «fais ça pour moi!» Pourquoi devrais-je faire ça? Mon temps est trop précieux pour être consacré à aider quelqu'un qui ne veut pas étudier dès le début et qui n'appréciera pas mon aide. Découvrez en quoi consiste Stack Overflow.

Considérons maintenant la question intitulée «Comment supprimer les bordures bleues sur ma page», composée de plusieurs paragraphes de texte qui parle de la propriété CSS de contourproperty, mais sans mention explicite des mots «CSS» ou «contour». Bien qu'une telle question puisse contredire la plupart des recommandations de Stack Overflow, je ne suis pas d'accord avec cela, ce n'est pas une mauvaise question. L'auteur a au moins essayé de donner quelques informations, sans même savoir quoi donner. La tentative compte, tout comme la volonté de percevoir et d'apprendre.

Cependant, de nombreux participants à Stack Overflow sont susceptibles de se rapporter aux deux problèmes de la même manière: à blâmer et à fermer. C'est désagréable, cela effraie de nombreux utilisateurs inexpérimentés avant de pouvoir apprendre à poser de meilleures questions et à comprendre généralement le fonctionnement du site.

Les questions vraiment mauvaises ne valent pas le temps. Mais gardez à l'esprit que ceux qui posent des questions pas si bonnes le font involontairement. Ils veulent poser de bonnes questions, ils ne savent tout simplement pas comment. Si vous punissez aveuglément et sans explication les débutants, comment apprendront-ils?

Une bonne question ne garantit pas une réponse


En règle générale, Stack Overflow répond à des questions simples plus rapides auxquelles beaucoup peuvent répondre. Vous avez une question sur la recherche binaire en JavaScript ou HTML? Super! Obtenez cinq réponses en moins d'une heure. Mais plus la question est complexe ou spécifique, moins il est probable qu'elle vous répondra, quelle que soit la qualité du libellé.

La probabilité d'obtenir une réponse diminue également rapidement avec le temps. Lorsqu'une question pénètre quelques pages en profondeur dans le flux, elle est perdue. Après une semaine, il vous suffit de prier pour que quelqu'un qui possède les connaissances nécessaires tombe accidentellement sur votre question (ou clique généreusement dessus).

Vous n'aimerez peut-être pas les bonnes réponses.


Chaque mois, je reçois quelques inconvénients pour les réponses dites impopulaires. Ce sont des réponses qui, en fait, disent: "la raison en est qu'il est ainsi conçu", ou "c'est impossible, parce que ...", ou "c'est un bug qui doit être corrigé en premier". Dans tous ces cas, les auteurs ne reçoivent pas de décision ni même de solution de contournement. Et je soupçonne que lorsque les gens n'aiment pas ce que dit la réponse, ils la minent. Je les comprends même, mais cela ne signifie pas que les réponses sont fausses.

Bien sûr, l'inverse est également vrai: de bonnes réponses ne vous disent pas nécessairement ce que vous voulez entendre. Certaines des meilleures réponses répondent d'abord à la question d'origine, puis décrivent d'autres approches pour résoudre le problème. Parfois, je réponds à la question d'un utilisateur, puis j'écris un grand texte expliquant pourquoi il n'est pas recommandé de le faire.

Chaque fois que l'expression d'une relation est simplifiée pour le pour et le contre ou le bouton similaire, des différences importantes sont perdues. Ce problème se retrouve souvent sur Internet. Combien de réseaux sociaux peuvent distinguer "Je soutiens cela" de "Je pense que c'est bien dit, même si je ne l'aime pas ou je ne suis pas d'accord"?

En général, malgré les inconvénients mensuels, je pense que la communauté Stack Overflow vote objectivement. Nous nous en tiendrons à cette voie.

Je ne demande presque jamais de débordement de pile


Plus j'utilisais ce site, moins je posais de questions dessus. Cela est dû en partie à ma croissance professionnelle. Bon nombre des problèmes que je rencontre au travail sont trop complexes pour être exprimés dans des questions simples, ou trop spécifiques pour que quiconque puisse m'aider. J'ai réalisé les limites du site, donc j'évite de poser des questions auxquelles je n'obtiendrai certainement pas une bonne réponse.

Mais je posais rarement des questions ici, même lorsque j'apprenais un nouveau langage ou un nouveau cadre. Pas parce qu'un tel génie, bien au contraire. C’est juste qu’après des années passées sur Stack Overflow, quand j’ai une question, j’arrive à la profonde conviction que je ne serai probablement pas le premier à la poser. Je commence à chercher et découvre presque toujours que quelqu'un a déjà posé la question il y a quelques années.

L'observation des questions des autres est un excellent moyen d'apprendre de nouvelles choses sur votre produit.


Maintenant, je travaille sur VS Code , j'ai donc pris l'habitude de voir les questions avec la balise vscode. C'est un excellent moyen de découvrir comment mon code est utilisé dans le monde réel. Quels problèmes rencontrent les utilisateurs? Comment améliorer la documentation ou les API? Pourquoi est-ce que je pensais absolument compréhensible cause tant de malentendus?

Les questions sont un signal important qui montre comment votre produit est utilisé. Mais il ne s'agit pas de répondre et de passer à autre chose, mais d'abord d'essayer de comprendre pourquoi une personne a une question. Peut-être que le produit a un problème inconnu pour vous, ou certaines hypothèses que vous avez faites sans le savoir? Les questions m'ont également aidé à découvrir de nombreux bugs et m'ont inspiré à continuer à travailler.

Si vous accompagnez un produit pour les développeurs, ne prenez pas Stack Overflow comme un dépotoir (ou pire, comme un cimetière de questions). Vérifiez régulièrement les questions et réponses. Cela ne signifie pas que vous devez répondre à chaque question vous-même, cependant, les signaux de Stack Overflow sont trop importants pour être ignorés.

Les frontières entre la question, le rapport de bogue et la demande de fonctionnalité sont floues


Un bon nombre de questions sur VS Code on Stack Overflow étaient en fait des rapports de bogues. Et bien d'autres - en fait, des demandes de nouvelles fonctionnalités.

Par exemple, une question avec le titre "Pourquoi VS Code plante-t-il quand je le fais ...?" Est un rapport de bogue. VS Code ne doit pas tomber dans une variété de situations. Répondre aux questions qui sont des rapports de bogues est improductif, car les auteurs peuvent être satisfaits d'une solution de contournement et ils ne rempliront jamais un vrai rapport de bogue. Dans de telles situations, j'écris généralement pour que les utilisateurs remplissent un rapport de bogue sur Github.

Dans d'autres cas, les différences peuvent être moins évidentes. Par exemple, la question "Pourquoi JavaScript IntelliSense ne fonctionne pas dans VS Code?". Selon la façon dont JavaScript IntelliSense ne fonctionne pas exactement, la question peut être classée dans l'une des trois catégories suivantes:

  • S'il s'agit d'un problème de configuration utilisateur, c'est vraiment une question pour Stack Overflow.
  • Si IntelliSense doit fonctionner dans ce cas, mais que cela ne fonctionne pas, il s'agit d'un rapport de bogue.
  • Si IntelliSense ne devrait pas fonctionner dans ce cas, il s'agit d'une demande de nouvelle fonctionnalité.

En fin de compte, pour la plupart des utilisateurs, ces nuances ne sont pas importantes - ils veulent juste que JavaScript IntelliSense fonctionne.

Et bien que pour moi, en tant que responsable du projet, ces différences soient importantes, en général, elles ne devraient pas m'importer non plus. Parce que les questions, les rapports de bogues et les demandes de fonctionnalités sont tous des moyens d'exprimer une idée: l'utilisateur attend quelque chose de mon code et ne le reçoit pas. Si le produit était parfait, les utilisateurs ne poseraient jamais de questions à ce sujet, car ils comprendraient tout et feraient exactement ce qu'ils veulent (ou du moins, expliquent clairement pourquoi il ne le pouvait pas).

Les développeurs sont aussi des gens


Les gens sont émotifs. Les gens sont irrationnels. Les gens sont des crétins. Pas toujours, bien sûr, mais parfois! Et vous ne le croirez pas, mais les développeurs sont aussi des gens.

Il y a une telle invention que nous, développeurs, aimons nous répéter: «Nous travaillons avec des ordinateurs, nous devons donc être rationnels. Nous comprenons les symboles mystérieux, nous devons donc être intelligents. Les programmes ont envahi le monde, nous devons donc être cool! Cool! Allez !!! "

Ce n'est pas le cas. Et s'il en était ainsi, alors Dieu aide les autres. Même sur Stack Overflow, cet outil pour les professionnels, créé comme une base de connaissances objective, même dans mon coin très spécifique de VS Code, je continue de rencontrer toutes sortes de disgrâces: erreurs logiques, insultes, pensée de troupeau, etc.

Ne vous laissez pas berner: vous n'êtes probablement pas aussi parfait que vous le pensez. Mais cela ne signifie pas que nous n'avons pas besoin d'essayer de nous débarrasser de nos lacunes.

Mec, c'est moi qui l'ai créé


Je suis aussi une personne et de temps en temps ce qui se passe sur Stack Overflow m'agace. Par exemple, lorsqu'un utilisateur écrit en toute confiance un non-sens ou donne simplement une réponse erronée à une question liée à VS Code - un produit que j'ai créé et que je connais très bien. Étrange, mais l'impression est que plus la réponse est erronée, plus il est probable que quelqu'un l'appellera un fait incontestable.

Lorsque cela se produit, j'agis comme sur l'image et j'écris la bonne réponse.



Et plusieurs fois cela a conduit à l'émergence de longues branches: malheur à moi d'avoir osé remettre en question leur connaissance de ce que j'ai créé! Arrêtez d'essayer d'avoir raison tout le temps, putain de gars intelligents! Parce que j'ai raison !!!

Il est facile de devenir cynique dans ce désespoir


Face à un flot incessant de problèmes de qualité inférieure, il est facile de devenir cynique. A-t-il déjà entendu parler de Google? Mais imagine-t-il même comment construire des phrases connectées? Qu'est-ce que tu es, chien?

Parfois, je regarde des dizaines de nouvelles questions par jour. En observant constamment tous ces problèmes de mauvaise qualité, vous risquez de tomber dans le mépris ou le cynisme. Ce cynisme peut déborder sur le site, ce qui sera confirmé par quiconque a rencontré un modérateur trop zélé ou a passé quelques heures à rechercher et à compiler une question afin de n'obtenir que des inconvénients et de disparaître dans l'oubli sans aucune explication.

Bien sûr, il y a des utilisateurs qui ne font pas un seul gramme d'effort et qui posent de mauvaises questions. Mais je crois que l'essentiel des problèmes de faible qualité vient de personnes ayant de bonnes intentions (bien que stupides). J'essaie toujours de me rappeler ce que signifie être un débutant. Lorsque vous venez de commencer, vous ne comprenez pas comment tout est vraiment arrangé ici. Dans certains cas, vous ne savez même pas dans quels mots exprimer correctement votre problème. Croyez-moi, c'est difficile d'être dans cette position. Et c'est désagréable lorsque vous versez du slop uniquement pour avoir posé une question.

Bien que Stack Overflow ait beaucoup fait pour aider les débutants, il reste encore beaucoup à faire. J'ai essayé de trouver un équilibre entre le respect des normes acceptées sur le site et l'indulgence envers les utilisateurs inexpérimentés. Cela peut inclure une explication de la raison pour laquelle j'ai voté pour fermer la question ou publier un commentaire invitant l'utilisateur à fournir des informations supplémentaires. J'ai encore de la place pour grandir.

D'un autre côté, je n'hésite pas à supprimer les utilisateurs ayant une réputation de 50 000 personnes qui posent les questions "Le meilleur design pour VS Code pour le développement JavaScript?", Ou qui téléchargent des captures d'écran savonneuses de code au lieu de texte.

Parfois je veux juste te remercier


Le Stack Overflow a une culture d'appréciation peu développée. Je me souviens qu'une fois sur un site les mots «bonjour» et «merci» étaient automatiquement coupés des questions. Peut-être que cela se fait encore, je ne l'ai pas testé.

Aujourd'hui, quiconque a travaillé dans le support client sait bien qu'un excès de politesse peut gêner et même sembler être prétendu. Mais parfois, sur ce site, quelqu'un fait quelque chose de très important pour vous, et la seule façon de le remercier est de mettre un signe plus. Suce.

L'efficacité ne nous oblige pas à devenir des robots sans âme. Le canal latéral peut fournir une communication plus authentique entre les personnes, si les utilisateurs, bien sûr, le souhaitent eux-mêmes.

Parfois, je veux savoir ce qui s'est passé après avoir reçu une réponse


Stack Overflow fonctionne sur le principe des transactions: certaines personnes posent des questions, d'autres répondent. Et que se passe-t-il après avoir reçu une réponse? Qui sait Parfois, je trouve intéressant de le découvrir. Ma réponse était-elle utile? Quel modeste projet a-t-il aidé? Qu'a appris l'auteur de la question?

Bien sûr, cette curiosité ne peut être satisfaite. Obliger les utilisateurs à indiquer comment ils utiliseront les informations reçues serait très problématique même si vous pouviez le faire. Mais y réfléchir est intéressant.

La gamification est efficace ...


... lors de la transformation de processus en jeu.

Je suis toujours un peu inquiet quand je vois une petite icône +10 ou +25 dans la barre d'état. Peut-être que ces petites taches de gamification sont la raison pour laquelle je reviens sur le site depuis 10 ans. Mais au fil des ans, j'ai également commencé à me demander quel genre de jeu Stack Overflow était et ce que cela signifie de gagner.

Je suis sûr que le système a été créé avec les meilleures intentions: récompenser les gens pour leurs questions et réponses utiles. Mais dès que vous ajoutez des notes élevées, la loi de Goodhart entre en vigueur et certains utilisateurs commencent à ajuster leurs actions non pas pour atteindre la valeur maximale, mais pour recevoir des notes maximales. Et c'est important parce que ...

La réputation ne signifie pas ce que vous pensez


La réputation n'est pas équivalente à la compétence technique, aux compétences en communication ou à la compréhension du fonctionnement ou du fonctionnement de Stack Overflow.

Je ne veux pas dire que la réputation ne vaut rien. Cela ne signifie tout simplement pas ce que l'administration de Stack Overflow implique ou ce que le mot «réputation» devrait signifier. J'ai réalisé que la réputation est une mesure d'influence. Considérons deux réponses hypothétiques publiées sur le site:

  • Un sur l'opération git commune. En deux minutes, en utilisant Google, j'ai écrit une réponse en trois lignes.
  • Un autre concerne la confusion de la théorie des graphes. Peut-être que seulement une centaine de personnes dans le monde peuvent y répondre. J'ai écrit quelques paragraphes et un exemple de code expliquant l'essence du problème et comment le résoudre.

Pendant cinq ans, ils ont regardé la première réponse 5 millions de fois et ont mis 2000 points positifs. Ils ont regardé la deuxième réponse 300 fois et ont mis deux avantages pathétiques.

Dans une certaine mesure, c'est très malhonnête. Pourquoi récompenser ce qui est au bon endroit au bon moment? (tout n'est pas déterminé par la chance, comprendre les règles du jeu joue un rôle énorme). D'un autre côté, la première question a vraiment aidé beaucoup plus de gens que la seconde. Peut-être vaut-il la peine de reconnaître qu'en un sens, la reconnaissance mène à un tas de «réputation»?

Par conséquent, je considère la «réputation» de Stack Overflow comme une mesure d'influence. La vraie réputation ne se mesure pas avec des points simples, elle se pose dans la communauté. Quels conseils dois-je écouter, qui aide les autres en qui j'ai confiance? Peut-être que toutes ces personnes seront différentes, selon que j'écris en PHP ou sous iOS.

Cela dit, je ne sais pas ce que Stack Overflow devrait faire à cet égard. Les utilisateurs seront-ils tout aussi motivés si, au lieu de «réputation», ils gagnent des «points de vie»? Les utilisateurs seront-ils toujours impliqués s'il n'y a pas de système de points du tout? Je pense que c'est peu probable. Et le mythe selon lequel la «réputation» sur Stack Overflow équivaut à une véritable réputation profite non seulement au site lui-même, mais aussi aux utilisateurs les plus actifs. Eh bien, vraiment, qui n'aime pas améliorer sa réputation?

Non, comme cela se produit le plus souvent dans la vie, afin d'avoir une idée réelle de ce qui se passe, il est nécessaire d'analyser non seulement les chiffres. Si un article a marqué 10 000 points sur Stack Overflow, voyez comment cette personne communique, quelles questions et réponses il publie. Et dans tous les cas, sauf dans des cas exceptionnels, gardez à l'esprit que les scores Stack Overflow eux-mêmes sont peu susceptibles de dire autre chose que la capacité de la personne à utiliser ce site. Et d'après mon expérience, souvent ils n'en parlent même pas.

Mon travail ne serait pas productif sans débordement de pile


Chaque fois que j'ai besoin de faire quelque chose de compliqué dans git, je vais sur Stack Overflow. Chaque fois que j'ai besoin de quelque chose de simple en bash, je vais sur Stack Overflow. Chaque fois que j'obtiens une étrange erreur de compilation, je vais sur Stack Overflow.

Je ne suis pas productif sans IntelliSense, le moteur de recherche et Stack Overflow. À en juger par certains livres, cela fait de moi un très mauvais programmeur. J'aurais probablement échoué à de nombreux tests et pas résolu beaucoup de problèmes sur la carte. Qu'il en soit ainsi. Sérieusement, chaque fois que j'utilise .sort en JavaScript, je dois chercher des informations sur quand j'obtiens -1, 0 ou 1, et j'écris en JS tous les jours, en développant l'éditeur le plus populaire pour cette langue.

Non, Stack Overflow est un outil incroyable. Seul un imbécile n'utilisera pas tous les outils à sa disposition. Alors pourquoi ne pas être un imbécile intérieur comme moi? , , «» ( , , ).

Stack Overflow —


Stack Overflow , , , . , .

Stack Overflow. , , , . , , .

Stack Overflow . - . , - Stack Overflow . , , . , , . , , , — , — . , , , .

PS


, Stack Overflow. (ES5!) JavaScript Eclipse, , 90 % « jQuery, ...». , , . , - , .

, Stack Overflow - : -; ; . , , , . . , Stack Overflow 10 , , . , .

Source: https://habr.com/ru/post/fr481012/


All Articles