Uploaded avatar of iHiD

L'Automated Mentoring Support Project

@iHiD
Oltre 7 anni fa

Aggiornamento: siamo felici di annunciare che Mozilla ci ha assegnato un Open Source Support Award per questo progetto. Puoi leggere di più qui.

Questo post segna l'inizio del Progetto di supporto automatizzato al mentoring di Exercism, in cui svilupperemo un framework che analizza in modo programmatico le soluzioni degli utenti, così da migliorare il ciclo di feedback per chi impara e ridurre il carico sui mentori. Nel breve termine, il nostro obiettivo è approvare automaticamente le soluzioni che soddisfano determinati criteri di accettazione e fornire feedback sui miglioramenti più comuni.

Lo scopo di questo post è descrivere il problema che stiamo cercando di risolvere e il piano di massima su come lo affronteremo nei prossimi mesi. Nei post successivi approfondiremo il contesto del problema e la storia dell'analisi automatizzata su Exercism, insieme a maggiori dettagli sulla nostra strategia di implementazione.

Perché un supporto automatizzato ai mentori?

L'ostacolo più grande per Exercism è riuscire a gestire la crescita.

I nostri mentori volontari sono fondamentali per il successo di Exercism. Si occupano di rivedere le soluzioni di chi impara, analizzare se soddisfano i criteri di successo dell'esercizio o se vanno migliorate, capire con empatia il ragionamento di chi impara, fornire feedback incoraggianti e utili e guidare le persone nell'uso degli idiomi del linguaggio. Oggi riusciamo a malapena a stare al passo con la domanda di mentoring. Se vogliamo crescere, ci serve una strategia migliore di «aggiungere altri mentori».

Per gli esercizi principali che costituiscono la spina dorsale di un track di Exercism, stimiamo che circa il 25% delle soluzioni inviate sia abbastanza buono da poter essere considerato completo al primo tentativo. Un altro 55% delle soluzioni inviate ha problemi che rientrano in categorie comuni, che si possono gestire copiando e incollando frammenti di feedback già pronti. Solo il 20% circa delle soluzioni richiede che un mentore sia creativo e attento nel proprio feedback.

L'80% delle soluzioni che non impegna davvero il cervello di un mentore è una perdita di tempo frustrante. Chi offre volontariamente il proprio tempo per aiutare gli altri non vede valorizzate le proprie competenze.

Allo stesso modo, chi impara può aspettare da un giorno a una settimana prima di ricevere feedback e nel frattempo non riesce ad andare avanti nel track. Per chi ha inviato un'iterazione che rientra nel 25% delle soluzioni perfettamente valide, questo ritardo è estremamente frustrante. Per tutti gli altri è, nella migliore delle ipotesi, poco soddisfacente. Chi impara spesso perde lo slancio a causa di questo ritardo e si frustra per il processo.

Sviluppando un sistema in grado di analizzare automaticamente una soluzione e di approvarla oppure di fornire feedback preconfezionato sui problemi noti, stimiamo di poter ridurre drasticamente il carico di lavoro dei mentori eliminando le parti «noiose» e migliorando al tempo stesso in modo significativo l'esperienza di chi impara. In più, le persone riceveranno un feedback più coerente sulle questioni strutturali e stilistiche, il che le mette nelle condizioni di fare conversazioni più interessanti sugli argomenti meno netti.

Come funzionerà?

Il nostro obiettivo a lungo termine è sviluppare algoritmi di deep learning in grado di analizzare gli alberi di sintassi astratta (AST) di quasi un milione di soluzioni inviate da quando Exercism è stato lanciato nel 2013. Uno strumento del genere potrebbe individuare schemi ricorrenti e i commenti dei mentori a essi collegati. Nel breve termine, il nostro obiettivo è usare l'analisi statica per determinare quale feedback si può dare in base agli errori più ripetuti osservati dai mentori.

Il progetto si suddivide all'incirca nelle seguenti aree:

  1. Modifiche al prodotto: dobbiamo capire come questa analisi automatizzata si inserisce nell'attuale interfaccia di mentoring, come comunicare questo feedback (messaggi di sistema, un «bot», ecc.) e poi implementare il tutto per il sito di Exercism.
  2. Infrastruttura: progetteremo e costruiremo un'infrastruttura in grado di supportare in modo efficiente l'esecuzione dell'analisi statica su più linguaggi.
  3. Prototipo di analisi statica: svilupperemo un analizzatore di esempio che approverà automaticamente le buone soluzioni di Ruby / Two-fer, e documenteremo questo processo così che la comunità più ampia possa contribuire.

Puntiamo a lanciare il prototipo iniziale entro la metà del 2019. Una volta poste le fondamenta, prevediamo di estendere il sistema ad altri linguaggi oltre a Ruby e ad altri esercizi oltre a Two Fer. Anche se non avremo il framework pronto per integrare altri linguaggi ed esercizi nel sito finché non avremo fatto progressi sul prototipo, se vuoi iniziare a scrivere analizzatori per i tuoi linguaggi ed esercizi preferiti, non c'è motivo di aspettare! Apri una issue su il repository GitHub di questo progetto e dicci cosa ti piacerebbe fare.

Siamo molto entusiasti di lavorare con altre persone della comunità di Exercism che usano già l'analisi statica per aiutare nel mentoring, come tehsphinx e bitfield, che hanno sviluppato uno strumento di analisi statica per i mentori del track Go. Il modo in cui ha portato il track da una coda enorme a essere uno dei track linguistici più reattivi di Exercism dimostra quanto può essere incisivo il supporto automatizzato ai mentori.

Nelle prossime settimane delineeremo meglio questi primi passi importanti e come funzioneranno le cose.

Saremo felici di rispondere a tutte le tue domande nella sezione commenti qui sotto! :)

Translation missing: it.number.nth.ordinalized Feb 2019 · Ti è stato utile?