Il recente post di Lucio Liberi riguardante la Listbox mi ha dato lo
spunto per scrivere un piccolo tutorial che possa essere di aiuto a
tutti coloro che si trovano nella condizione di inviare richieste di
aiuto in lista.
Chiarisco subito che Lucio è solo il pretesto per scrivere quanto
segue, ma non per questo lui ricade necessariamente in alcune
categorie di utenti che descrivo dopo.
Semplicemente la richiesta di Lucio era un poco fuorviante e, se
fosse stata espressa meglio avrebbe ricevuto risposta più in fretta e
con meno impegno. Ma per il resto non era affatto sbagliata, anzi,
secondo me ha evidenziato un problema (o una peculiarità) di
REALSQLDatabase.
Quindi Lucio, ti prego di non avertene perchè non è affatto il caso
tuo.
Premesso quanto sopra, devo dire che il testo che segue è la
traduzione con adattamento a REALbasic di un post apparso nel blog di
Scott Stevenson, che è un buon divulgatore oltre che programmatore
Cocoa. Per chi vuole leggersi l'articolo originale ecco il link:
http://theocacao.com/document.page/201
Ed ecco l'articolo:
Come avere risposte alle richieste di aiuto.
Capita spesso che qualcuno chieda aiuto o faccia domande in mailing-
list, ma in pochi scrivono il genere di messaggi che come effetto
genera risposte utili. Ecco alcune linee guida da cui partire.
Mostrare il proprio lavoro.
Quando si fa una domanda in lista, la cosa più importante è
dimostrare che si è compiuto un ragionevole sforzo per trovare la
risposta da soli.
Le persone che frequentano la lista sono più che disposte ad aiutare
dove la documentazione manca o è difficile da trovare. Quello che non
si dovrebbe fare è chiedere ad altri di fare il lavoro per se. E
questo è quello che avviene quando il richiedente non ha fatto un
ragionevole tentativo di risolvere il problema da solo. Il risultato
di simili richieste è generalmente il silenzio o, peggio, derisione e
sarcasmo.
Ecco un esempio fittizio di cosa NON fare:
"Ho bisogno di aiuto a scrivere un programma che possa
editare un video e masterizzare un DVD. Come posso farlo?"
Questo tipo di richiesta tende a non avere molto seguito. Il
richiedente non sembra dimostrare di aver compiuto nessun sforzo
iniziale per comprendere almeno le basi da cui partire.
Rispondere a queste domande non è difficile per uno sviluppatore con
un po' di esperienza, ma scrivere risposte richiede tempo e non è
corretto chiedere ad altri di sacrificare il loro tempo, a meno di
non aver raggiunto un punto morto nella disamina del problema. Essere
un newbie non è di per sè una scusa valida. I più esperti tendono
ad essere piuttosto disponibili nei confronti dei newbies, ma solo se
questi dimostrano di avere reali intenzioni. Ecco un versione
leggermente migliore della richiesta di aiuto precedente:
"Ho bisogno di aiuto a scrivere un programma che possa
editare un video e masterizzare un DVD. Ho pensato che
dovrei usare la classe Movie per la gestione dei video,
mentre per la masterizzazione mi appoggerei al plugin MBS
che offre questa funzione. Come posso farlo? Qualcuno ha
esempi?"
Questo è meglio del precedente perchè il richiedente ha provato di
aver fatto almeno qualche ricerca su come risolvere il problema,
seppure ancora superficiale. Comunque anche una simile richiesta, non
sarebbe recepita molto bene probabilmente. La richiesta è
estremamente vaga e il messaggio essenzialmente richiede un lavoro di
progettazione e analisi da farsi gratuitamente e probabilmente per un
prodotto commerciale. Facciamo un passo avanti:
"Ho bisogno di aiuto a scrivere un programma che possa
editare un video e masterizzare un DVD. Ho pensato che
dovrei usare la classe Movie per la gestione dei video,
mentre per la masterizzazione mi appoggerei al plugin MBS
che offre questa funzione. Ho letto il manuale di RB dove
parla della gestione dei movie. Ho anche esaminato la guida
di riferimento per la classe Movie, EditableMovie e MoviePlayer.
Inoltre ho anche fatto qualche prova sfruttando gli esempi
forniti con RB e con il plugin MBS. Tutto molto utile ma non
riesco a capire come estrarre sezioni di video in altri oggetti
Movie. Nonostante gli esempi non riesco a trovare una soluzione.
Qualcuno può suggerirmi dove cercare altre informazioni o esempi
che possano aiutarmi a capire come farlo?"
Questa è una buona richiesta. L'autore ha speso del tempo a
considerare un'area specifica di problemi (estrarre contenuti), ha
menzionato materiale che ha trovato e ha richiesto una soluzione o
codice esemplificativo rivolto a un compito ben preciso. Una
richiesta di questo genere ha ottime probabilità di ottenere
risposte, perchè l'autore lo ha reso possibile.
Usare l'oggetto del messaggio per dire qualcosa
Bisogna sforzarsi di scegliere una frase descrittiva per l'oggetto
del messaggio. Dovrebbe descrivere in poche parole l'oggetto della
richiesta. E' inutile includere informazioni non pertinenti
("AIUTOOO", "NEWBIE"). Il contenuto della richiesta è invece quello
che serve.
Se si sta formulando una richiesta relativa ad un argomento
specifico, sarebbe sensato menzionarlo. Meglio ancora sarebbe
descrivere la classe specifica a cui si è interessati. Ecco alcuni
buoni esempi:
REALSQLDatabase: documentazione scarsa
Creare una sottoclasse di Canvas
Gestire il disegno di un oggetto Graphics
TCPSocket - problemi con l'evento DataAvailable
Evitare di scrivere oggetti come i seguenti:
Per favore aiutatemi! Importante!
REALbasic
IDE
REALbasic e IDE
Apple
Movie, Video
Come semplice regola generale, può aiutare pensare di includere
nell'oggetto sostantivi e verbi. Questo aiuterà gli altri membri
della lista a capire su cosa si sta lavorando e come.
Chiarezza, Chiarezza, Chiarezza
Oltre a fare richieste ragionevoli, la migliore tattica per ottenere
aiuto è comunicare il proprio problema chiaramente. Bisogna fare
tutti gli sforzi possibili perchè il problema e il contesto in cui
questo è inserito risultino ben chiari a tutti. Una richiesta di tre
pagine senza punteggiatura, pause, con un linguaggio incerto e
inconcludente, non otterrà risposte molto velocemente.
In molti casi, l'ideale sarebbe inserire su un sito web un progetto
di esempio che illustri il problema. Per problemi complessi che
richiedono la conoscenza della struttura del programma, creare un
semplice diagramma, in modo che chi prova a dare una risposta riesca
a comprendere facilmente il contesto.
In molti casi la mancanza di informazioni essenziali è la prima causa
di abbandono della risposta da parte di chi vorrebbe e potrebbe
rispondere. Qualcuno con più pazienza può invece richiedere
ulteriori informazioni. In queste situazioni non è il caso mettere
alla prova la pazienza anche di questi ultimi. Non farsi mai tirare
fuori le informazioni con le pinze.
Riguardo al testo della richiesta, è bene arrivare al punto
immediatamente. Se il problema si verifica in determinato blocco di
codice, postare il codice. Potrebbero esserci problemi con quel
codice di cui non si è a conoscenza.
Non dimenticare mai l'obiettivo finale. In fondo quello che si cerca
è aiuto, quindi perchè rendere difficile questo compito agli altri?
Condividere le soluzioni
Quando si risolve un problema, sarebbe bello renderlo noto in lista.
Questo permette ad altre persone di chiedere la stessa cosa in
seguito. La lista ha un archivio ricercabile e sarebbe buona norma
usarlo prima di chiedere. Oltre ad essere un metodo veloce per
trovare una risposta, si risparmia anche lavoro a chi le risposte le
da e, dopo un po', si stanca di darle quando le domande sono già
state risposte (magari più volte).
Considerazioni finali
Se si chiede un favore a qualcuno e questo impiega il suo tempo per
dare risposte, è buona norma ringraziare ed essere cortesi con chi
aiuta. Quando si avrà nuovamente bisogno di aiuto sarà molto più
facile ottenere risposte per coloro che tendono a mantenere un
ambiente piacevole in lista.
Volendo, ce ne sarebbero ancora da dire ma, anche la sola
osservazione delle regolette sopra esposte, potrebbe bastare.
Ciao a tutti.
Massimo Valle
Chiacchiera con i tuoi amici in tempo reale!
http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com
|