Cum se pun întrebări în mod inteligent

De la Wiki.lug.ro
Salt la: navigare, căutare

Traducerea reviziei 3.1 a documentului How To Ask Questions The Smart Way, de Eric S. Raymond şi Rick Moen

Atenţie editori: nu operaţi modificări de sens sau de exprimare în acest articol fără a vă asigura că traducerea rămîne conformă cu originalul în engleză. Pentru cititori: daca va place sa dati linkul altora, incercati http://wiki.lug.ro/mediawiki/index.php/Cum_se_pun_intrebari_inteligente , nu contine diacritice care sa fie URL-encoded.

Introducere

În lumea hackerilor, tipul de răspuns pe care îl veţi primi la întrebări tehnice depinde atât de formularea acestora cât şi de dificultatea elaborării unui răspuns. Acest ghid îşi propune să vă ajute să formulaţi întrebările în aşa fel încât să primiţi un răspuns satisfăcător.

Acum când folosirea open-source s-a răspândit pe scară largă, puteţi obţine deseori răspunsuri şi de la alţi utilizatori mai experimentaţi, nu doar de la hackeri. Ăsta e un lucru bun; utilizatorii tind să fie mai îngăduitori cu greşelile începătorilor. Totuşi, tratându-i şi pe aceştia ca pe hackeri cum e recomandat aici, e modul cel mai uşor de a obţine răspunsuri de la ei.

Primul lucru pe care trebuie să-l înţelegeţi este că hackerilor le plac problemele dificile şi întrebările care le solicită inteligenţa. Dacă nu era aşa, nu ne aflam aici. Dacă ne daţi o întrebare interesantă o să vă fim recunoscători; întrebările bune sunt un stimul şi un cadou. Întrebările bune ne ajută să ne clarificăm cunoştinţele şi adesea ridică probleme pe care nu le-am fi observat, sau la care nu ne-am fi gândit. Printre hackeri, „Bună intrebare!“ e un compliment.

În ciuda acestor lucruri, hackerii au reputaţia că tratează întrebările simple cu ostilitate şi aroganţă. Uneori arată ca şi cum suntem automat nepoliticoşi cu începătorii si neştiutorii. Nu e deloc adevărat.

Suntem de fapt ostili faţă de acele persoane care parcă nu vor să gândească şi nu-şi fac temele înainte să pună întrebări. Astfel de persoane nu sunt decât pierdere de vreme, iau fără să dea nimic înapoi, ne fac să pierdem timpul pe care l-am putea folosi pentru a răspunde la o intrebare mai interesantă sau unei persoane care merită într-adevăr. Îi numim pe aceştia „losers“ (din motive istorice, uneori este scris „lusers“).

Ne dăm seama că sunt mulţi oameni care vor doar sa folosească programele noastre şi nu sunt interesaţi de detaliile tehnice. Pentru majoritatea oamenilor un computer este o unealtă, un mijloc pentru atingerea unui scop; au lucruri mai bune de făcut în viaţă. Realizăm asta şi nu ne aşteptăm ca toată lumea să fie interesată de chestiunile tehnice care ne fascinează pe noi. Totuşi, stilul nostru de a răspunde la întrebări este adaptat celor care au acest interes si sunt dispuşi să participe activ la rezolvarea problemelor. Lucrul ăsta nu o să se schimbe, şi nici nu ar trebui; dacă s-ar întâmpla, am fi mai puţin eficienţi în treburile la care ne pricepem.

Suntem (în cea mai mare parte) voluntari. Ne luăm din timpul nostru pentru a răspunde la întrebări şi uneori suntem depăşiţi de cantitatea lor, aşa că le filtrăm fără milă. În particular, ignorăm întrebările de la persoane care se prezintă ca losers pentru a ne putea folosi timpul mai eficient, cu ceilalţi.

Dacă această atitudine vi se pare enervantă, elitistă sau arogantă, verificaţi-vă ipotezele. Nu vă cerem să faceţi plecăciuni în faţa noastră. Dimpotrivă, cei mai mulţi dintre noi ar prefera să vă trateze ca egali; sunteţi binevenit în comunitatea noastră, dacă depuneţi efortul necesar ca acest lucru să fie posibil. Pur şi simplu, nu este deloc economic să încercăm să ajutăm oameni care nu vor să se ajute singuri. E OK să fii neştiutor, NU E OK să faci pe prostul.

În concluzie, deşi nu este necesar să fiţi un expert pentru a ne capta atenţia, este necesar să demonstraţi o atitudine care în timp duce la competenţă: atenţie, reflecţie, spirit de observaţie şi dorinţa de a participa activ la rezolvarea problemelor. Dacă nu vă convine această discriminare, vă sugerăm să apelaţi la servicii comerciale de asistenţă tehnică, în loc să ne cereţi să vă facem noi treaba gratuit.

Dacă decideţi să ne cereţi nouă ajutorul, nu vreţi să fiţi un loser. Nu vreţi nici măcar să păreţi că sunteţi unul. Cel mai bun mod de a obţine rapid un răspuns folositor este să întrebaţi ca o persoană inteligentă, care are încredere în sine şi unele cunoştinţe, care se întâmplă să aibă nevoie de ajutor cu o problemă punctuală.

Înainte de a întreba

Înainte de a trimite o întrebare tehnică pe email, într-un newsgroup sau forum, faceţi următoarele:

  • Încercaţi să găsiţi un răspuns căutând pe Web.
  • Încercaţi să găsiţi un răspuns în manual.
  • Încercaţi să găsiţi un răspuns într-un FAQ.
  • Încercaţi să găsiţi un răspuns prin analiză şi experiment.
  • Încercaţi să găsiţi un răspuns la un prieten mai experimentat.
  • Dacă sunteţi programator, încercaţi să găsiţi răspunsul citind codul sursă.

Când formulaţi întrebarea, arătaţi că aţi făcut întâi cele de mai sus; astfel demonstraţi că nu sunteţi un puturos care ne face să ne pierdem timpul. Şi mai bine, arătaţi ce aţi descoperit făcând cele de mai sus. Ne place să răspundem celor care demonstrează că pot învăţa ceva din răspunsurile noastre.

Când căutaţi pe Google, introduceţi textul mesajului de eroare pe care-l primiţi (căutaţi şi în Google Groups, nu doar pe web). E foarte posibil să ajungeţi direct la documentaţia referitoare la problemă, sau la un thread pe un mailing list care conţine răspunsul. Chiar dacă nu găsiţi nimic relevant, ajută să puteţi spune „Am căutat pe google după cuvintele următoare dar nu am găsit nimic folositor“ la începutul mesajului prin care cereţi ajutor.

Pregătiţi-vă bine întrebarea, gândiţi-o până la capăt. Întrebările care sună incomplet vor primi un răspuns pe măsură, sau deloc. Cu cât este mai clar că aţi încercat să vă rezolvaţi singur problema, cu atât e mai probabil să primiţi ajutor.

Aveţi grijă să nu puneţi o întrebare greşită. Dacă întrebarea porneşte de la ipoteze greşite, e foarte probabil ca cineva să vă răspundă literal, în speranţa că veţi învăţa ceva primind exact ce-aţi cerut în loc de ceea ce aveaţi nevoie.

Niciodată sa nu consideraţi că aveţi dreptul la un răspuns. Nu-l aveţi; în definitiv, nu plătiţi pentru acest serviciu. Veţi câştiga un răspuns, punând o întrebare cu substanţă, interesantă, care ne dă de gândit, o întrebare care contribuie implicit la experienţa comunităţii mai degrabă decât o cerere pasivă de informaţii de la ceilalţi.

Arătaţi că sunteţi dispus să contribuiţi la elaborarea unei soluţii. „Poate să mă îndrume cineva?“, „Ce lipseşte din exemplul meu?“ şi „Pe ce site ar mai trebui să mă uit?“ au şanse mult mai mari să primească un răspuns, decât „Vă rog să-mi spuneţi exact cum să fac!“ pentru că arată că aveţi doar nevoie de o mică îndrumare în direcţia bună.

Când întrebaţi

Atenţie unde întrebaţi

Folosiţi-vă discernământul în alegerea locului unde puneţi întrebarea. E foarte probabil să fiţi ignorat sau catalogat ca loser, dacă:

  • postaţi întrebarea pe un forum unde este offtopic
  • postaţi o întrebare elementară pe un forum unde se aşteaptă probleme tehnice complexe, sau invers
  • postaţi pe mai multe grupuri simultan
  • trimiteţi un mesaj direct către cineva care nu vă e cunoscut personal sau nu e direct responsabil pentru rezolvarea problemei

Hackerii ignoră întrebările puse în locurile greşite pentru a-şi proteja canalele de comunicaţie de zgomot inutil. Nu doriţi să fiţi în această situaţie.

Primul pas, deci, este găsirea forumului potrivit. Iarăşi, Google sau alte motoare de căutare vă sunt prieteni. Folosiţi-le pentru a găsi pagina de web a proiectului dedicat hardware-ului sau software-ului care vă face probleme. De obicei o să conţină link-uri către o lista de FAQ (Frequently Asked Questions), lista de email a proiectului şi arhiva acesteia. Listele de email sunt ultimul loc unde veţi cere ajutor, dacă prin eforturi proprii (inclusiv citirea acelor FAQ) nu găsiţi o soluţie. Pagina de web a proiectului mai poate descrie o procedură de raportare a bug-urilor. Dacă există, citiţi-o cu atenţie.

Lansarea unui mesaj către o persoană sau forum cu care nu sunteţi familiar e cel puţin riscantă. De exemplu, nu presupuneţi că autorul unei pagini de web informative doreşte să vă fie consultant gratuit. Nu faceţi presupuneri optimiste că întrebarea va fi binevenită; dacă nu sunteţi sigur, întrebaţi în altă parte sau deloc.

Când alegeţi un forum, newsgroup sau listă de email, nu vă luaţi doar după numele lor; căutaţi un FAQ sau regulile grupului pentru a verifica dacă întrebarea dvs. este pe subiect (on-topic). Citiţi o parte din mesajele anterioare înainte de a posta ca să aveţi o idee despre cum se desfăşoară discuţiile. De fapt, e o idee bună să căutaţi in arhivele grupului după câteva cuvinte cheie ale problemei, înainte de a posta. Puteţi găsi chiar răspunsul, sau vă poate ajuta să formulaţi mai bine întrebarea.

Nu trimiteţi simultan mesaje către toate canalele disponibile, e similar cu strigatul şi irită. Luaţi-le pe rând.

Înţelegeţi întâi subiectul! O greşeală clasică este să întrebaţi despre interfaţa de programare Unix sau Windows într-un forum dedicat unui limbaj, unei biblioteci sau unelte portabile pe ambele sisteme. Dacă nu vă este clar de ce asta e o problemă, mai bine vă abţineţi până vă lămuriţi.

În general, întrebările postate pe un forum public bine ales au şanse mai bune să-şi găsească un răspuns decât aceleaşi întrebări pe un forum privat, din mai multe motive: în primul rând, masa mai mare de oameni care pot răspunde. Apoi, mărimea audienţei; hackerii răspund mai degrabă unei întrebări care ajută mai multă lume, decât celor care sunt de folos doar câtorva persoane.

De înţeles, hackerii talentaţi sau autorii de programe foarte cunoscute primesc oricum mai multe mesaje greşit adresate decât norma. Puteţi fi picătura care umple paharul. De mai multe ori, coautori în proiecte cunoscute şi-au încetat participarea, datorită numărului prea mare de mesaje inutile venite pe adresa de mail personală.

Forumurile Web si canalele IRC orientate către începători

Grupul de utilizatori local sau distribuţia dvs. de Linux pot îndruma către forumuri Web sau canale IRC unde începătorii pot primi ajutor. Acestea sunt un bun punct de plecare, mai ales dacă vi se pare că vă loviţi de o problemă relativ simplă sau comună. Existenţa unui canal IRC e o invitaţie deschisă să puneţi întrebări si puteţi primi adesea răspunsul imediat.

De fapt, dacă programul care vă creeaza probleme face parte din distribuţie (cum se întâmplă de obicei), e chiar mai bine să întrebaţi pe liste/forumuri ale distribuţiei respective înainte să încercaţi pe cele ale proiectului. Hackerii lor s-ar putea să vă spună doar „folosiţi versiunea noastră“.

Înainte de a posta pe un forum Web, verificaţi dacă are o funcţie de căutare. Dacă da, încercaţi câteva căutări referitoare la problema dvs; poate ajută. Chiar dacă aţi folosit un motor de căutare pe Web înainte (cum ar fi trebuit), căutaţi şi pe forum; e posibil ca nu tot forumul să fi fost indexat.

Din ce în ce mai frecvent, proiectele oferă asistenţă utilizatorilor pe forumuri Web sau canale IRC, păstrând listele de email pentru discuţii legate de dezvoltare. Uitaţi-vă întâi după primele când aveţi nevoie de ajutor în legătură cu un proiect anume.

Pasul doi: listele de email ale proiectului

Când un proiect are o listă de email, scrieţi pe aceasta, nu direct către programatorii implicaţi, chiar dacă vi se pare că ştiţi exact cine vă poate da cel mai bun răspuns. Uitaţi-vă în documentaţia proiectului şi în pagina de Web după adresa unei liste de email. Iată câteva motive:

  • Orice întrebare suficient de bună pentru unul dintre programatori va fi interesantă pentru întregul grup. Pe de altă parte, faptul că întrebarea e prea stupidă pentru listă nu e o scuză pentru a-i agasa pe programatori personal.
  • Întrebând pe listă permiteţi o mai bună împărţire a muncii între programatori. Un programator individual (în special dacă e vorba despre leader-ul proiectului) poate fi prea ocupat pentru a vă răspunde.
  • Majoritatea listelor de email sunt arhivate şi indexate de motoarele de căutare. Altcineva va putea găsi întrebarea dvs. şi răspunsurile pe web, în loc să întrebe din nou pe listă.
  • Dacă o anumită întrebare se tot repetă, e o indicaţie că documentaţia sau chiar software-ul respectiv se pot îmbunătăţi pentru a fi mai puţin ambigue. Dacă întrebările respective s-ar pune în particular, nimeni nu ar avea o vedere de ansamblu asupra întrebărilor mai frecvente.

Dacă un proiect are atât o listă (sau forum) pentru utilizatori cât şi una pentru programatori (hackeri) şi nu lucraţi efectiv cu codul sursă al programului, întrebaţi pe lista pentru utilizatori. Nu presupuneţi că sunteţi binevenit pe lista de dezvoltare, unde probabil că întrebarea va fi tratată ca zgomot.

Bineînţeles, dacă sunteţi sigur că întrebarea nu e trivială şi nu primiţi răspuns pe lista pentru utilizatori timp de mai multe zile, încercaţi şi cealaltă listă. Ar fi indicat să monitorizaţi o perioadă lista, pentru a fi familiar cu obiceiurile grupului (o idee bună pentru orice listă privată).

Dacă nu găsiţi o listă de email pentru un proiect şi aveţi doar adresa autorului (maintainer), scrieţi-i acestuia. Chiar şi aşa, nu presupuneţi că nu există o listă. Menţionaţi în mesajul dvs. că nu aţi găsit-o. De asemenea, menţionaţi că nu aveţi nimic împotrivă să vă fie retrimis mesajul către alte persoane. (Mulţi consideră că mesajele private, chiar dacă nu conţin nimic secret, trebuie să rămână private. Dându-vă acordul pentru retransmiterea mesajului dvs. îi permiteţi să aleagă el modul de tratare a cererii).

Folosiţi linii de subiect relevante

Pe listele de email, newsgroups sau forumurile Web, linia de subiect vă dă ocazia să captaţi atenţia experţilor, în circa 50 caractere. Nu o irosiţi cu sintagme de genul „ajutor“ (ca să nu mai vorbim de „AJUTOR!!!!“; mesajele cu un astfel de subiect vor fi ignorate din reflex). Nu încercaţi să ne impresionaţi cu dificultăţile dvs; folosiţi acel spaţiu pentru o descriere concisă a problemei.

O convenţie utilă pentru linia de subiect, folosită de multe organizaţii de asistenţă tehnică, este forma „obiect - deviaţie“. „Obiect“ desemnează acel lucru care are o problema, iar „deviaţie“ descrie abaterea de la comportamentul aşteptat.


Stupid 
AJUTOR! Placa video nu funcţionează cum trebuie!!
Inteligent 
XFree86 4.1 forma cursorului incorectă, chipset Fooware MV1005
Şi mai inteligent 
XFree86 4.1 cursorul mouse-ului, chipset Fooware MV1005 - desenat incorect


Redactarea unui subiect de forma „obiect - deviaţie“ vă va forţa să gândiţi problema în detaliu. Ce anume este afectat? Doar cursorul mouse-ului, sau şi restul graficii? Se întâmplă doar cu XFree86? Doar cu versiunea 4.1? Se întâmplă doar cu chipset-ul Fooware? Doar cu modelul MV1005? Un hacker care vede un astfel de subiect poate înţelege imediat cu ce anume aveţi probleme şi care sunt acelea.

Imaginaţi-vă că vă uitaţi la index-ul arhivei de întrebări, care vă arată doar liniile de subiect. Faceţi în aşa fel încât subiectul să reflecte întrebarea suficient de bine încât următoarea persoană care va căuta în arhivă răspunsul la o întrebare similară cu a dvs. să o găsească uşor şi să nu întrebe din nou acelaşi lucru.

Dacă puneţi o întrebare într-un răspuns (reply la un email anterior), schimbaţi linia de subiect pentru a se vedea că puneţi o întrebare. Un subiect ca