Visualizzazione post con etichetta InfoGenerali. Mostra tutti i post
Visualizzazione post con etichetta InfoGenerali. Mostra tutti i post

martedì 31 agosto 2021

Consigli di una studentessa che ha avuto difficoltà con l'esame di Reti di Calcolatori

(Novembre 2021: aggiunto esempi in coda a questo post)

Riporto qui sotto alcune considerazioni di una persona che ha fatto due appelli piuttosto male, si è ripresentata dopo molti mesi ed ha superato l'esame tranquillamente con un buon voto.

Considerazioni fatte su mia richiesta e riportate qui con il suo permesso, anonimizzate.

Spiegano benissimo e con parole diverse dalle mie ciò che dico spesso: una grande difficoltà dell'esame di Reti di Calcolatori è che ci sono moltissime dipendenze tra gli argomenti; sono praticamente tutti incastrati tra loro. 

Premetto che l’esame di Reti di calcolatori ha costituito per me uno scoglio, sia per il fatto di non aver mai affrontato tale materia durante gli studi della laurea triennale in ... o in altri corsi che ho seguito, sia per il fatto che in generale, non ritengo di essere propriamente un’appassionata del settore.

Nonostante questo, sono rimasta affascinata nel conoscere un sistema così complesso ed eccezionale nel suo funzionamento.

Rispetto alle prove che ho sostenuto e che purtroppo hanno avuto esito negativo, penso che il problema più grande per me sia stato non avere una visione complessiva della dinamica di funzionamento del sistema. Ho avuto difficoltà nel collegare tra loro i vari argomenti trattati e inizialmente li ho inquadrati soltanto singolarmente.

L’ atto di rifare gli esercizi già svolti forse mi aveva fatto entrare in un automatismo che considerava il tema dell’esercizio fine a sè stesso.

Dal momento che il mio livello di preparazione si era dimostrato inadeguato, per prepararmi all’appello del ... ho innanzitutto ripreso bene dall'inizio la teoria (soltanto teoria!). Ho ripreso le slide e gli appunti delle lezioni e ho cercato di capire meglio il ragionamento alla base del funzionamento client – server. Successivamente, ho cercato di collegare ogni argomento successivo al primo, quindi ricollegandomi sempre al funzionamento client-server, ripetendo per ogni passaggio la sequenza di procedure invocate rispettivamente dal client e dal server.

Anche per il DNS, ho cercato di ragionare partendo dai casi più semplici visti a lezione e facendo delle prove, simulando di creare nuove zone e configurando i rispettivi Name Server, cercando di condurre un ragionamento che andasse oltre all’assegnazione mnemonica dei RR per ciascun Name Server, ma cercando di capire come questi potessero assicurare il vero e proprio funzionamento corretto del sistema.

Una volta aver studiato bene la teoria, ho applicato lo stesso metodo agli esercizi svolti, ragionando sui vari passaggi e ipotizzando di fare delle variazioni rispetto a quanto richiesto dal testo, proprio per non rischiare di ricadere nell'automatismo dello svolgimento di esercizi che ormai conoscevo. Per superare questo esame credo sia indispensabile avere una buona conoscenza teorica degli argomenti e, solo dopo aver capito il funzionamento complessivo del sistema, applicarlo agli esercizi facendo un ragionamento step-by step, immaginando di avere un sistema reale da far funzionare in modo corretto.

AGGIORNAMENTO DOPO PROVETTA 1 NOVEMBRE 2021

Vediamo cosa diceva la studentessa che aveva avuto problemi: "...ho innanzitutto ripreso bene dall'inizio la teoria (soltanto teoria!). Ho ripreso le slide e gli appunti delle lezioni e ho cercato di capire meglio il ragionamento alla base del funzionamento client – server. Successivamente, ho cercato di collegare ogni argomento successivo al primo, quindi ricollegandomi sempre al funzionamento client-server, ripetendo per ogni passaggio la sequenza di procedure invocate rispettivamente dal client e dal server."

Cerchiamo di applicare il suo metodo.

Vediamo quali azioni esegue un nodo che invia una richiesta DNS al mail server:

*) apro una connessione verso un server (il mail server) di cui devo conoscere indirizzo IP e numero di porta;
*) devo inviare una richiesta in quella connessione;

hhhmmmm....l'indirizzo IP ce l'ho ma il numero di porta qual'è? un mail server sta in ascolto sulla porta SMTP (25) e sulla porta POP (110); come faccio ad inviargli una richiesta DNS (53)? Anche se non mi ricordo i valori numerici, è evidente che sono diversi.

hhhmmm....le richieste sono sequenze di byte; il server deve parlare il mio stesso protocollo altrimenti non ci intendiamo; come faccio ad inviare una richiesta nel protocollo DNS ad un server che parla il protocollo SMTP o POP?

Facile rendersi conto che inviare richieste DNS ad un mail server non ha senso;

Applichiamolo ad una richiesta DNS inviata al proxy:

*) apro una connessione verso un server (il proxy) di cui devo conoscere indirizzo IP e numero di porta;
*) devo inviare una richiesta in quella connessione;

hhhmmmm....quale numero di porta? un proxy sta in ascolto su una porta che di default è 80 (infatti verso il browser si comporta da server HTTP); spesso è 8080; come faccio ad inviargli una richiesta DNS (53)? Anche se non mi ricordo i valori numerici, è evidente che sono diversi.

hhhmmm....le richieste sono sequenze di byte; il server deve parlare il mio stesso protocollo altrimenti non ci intendiamo; come faccio ad inviare una richiesta nel protocollo DNS ad un server che parla il protocollo HTTP?

Facile rendersi conto che inviare richieste DNS a un proxy non ha senso;

Applichiamolo alle richieste DNS generate da un browser che naviga attraverso un proxy (una quantità deprimente di persone ha scritto che il browser risolve il nome del sito web).

1) browser apre una connessione con il proxy;
2) browser invia una richiesta HTTP al proxy in quella connessione;
3) proxy apre una connessione con il server specificato nella richiesta HTTP;

per il punto 1 al browser serve indirizzo IP e numero di porta; l'indirizzo IP lo trova risolvendo il nome del proxy;

per il punto 2 non si genera traffico DNS: il browser costruisce la richiesta e la spara nella connessione; 

per il punto 3 il proxy trova nella richiesta HTTP il nome del web server; al proxy serve indirizzo IP e numero di porta; l'indirizzo IP lo trova risolvendo il nome del web server, il numero di porta è 80;

Facile rendersi conto che un browser che naviga attraverso proxy non risolve i nomi dei web server.

mercoledì 17 luglio 2019

Consigli per chi non ha seguito le lezioni

Le chiedo un consiglio su come è meglio preparare l'esame. Come le dicevo, non ho seguito e quindi temo di andare a concentrarmi su parti dove non ha dato enfasi e viceversa. Di solito i docenti a lezione danno indicazioni di questo tipo (formule particolarmente complesse che non vale ricordare a memoria, passaggi prolissi, ecc).

Fornire indicazioni di questo genere non è facile, purtroppo. Ho riflettuto molto e penso che quanto segue sia molto importante ed evidente solo a chi ha seguito le lezioni. Non so se sia esaustivo (se qualche studente ha altri suggerimenti mi faccia sapere e li aggiungo).

  • Tutte le slide sono importanti. Dalla prima all'ultima. Una percentuale significativa di studenti, ad esempio, manifesta buio quasi completo sul primo file di slide, quello contenente (anche) lo pseudo-codice di client e server.
  • Fare molta attenzione alle (poche) slide con sfondo azzurro: descrivono gli errori gravi e relativamente comuni.
  • Approfondire le slide su testi o siti Internet è pericoloso. C'è il forte rischio di perdersi nei dettagli e di imparare cose potenzialmente utili in generale ma inutili per l'esame. C'è anche il forte rischio di confondersi in quanto alcuni degli argomenti del corso sono trattati in modo diverso da come sono nella realtà.
  • Capire cosa viene chiesto e rispondere a cosa viene chiesto. Rispondere ad una domanda diversa da quella richiesta è nel migliore dei casi inutile (fornisce zero punti) e molto spesso dannoso (se si scrivono imprecisioni o errori, questi sono tenuti in conto). In generale, valuto molto negativamente svolgimenti in cui le informazioni richieste dalla domanda non ci sono oppure sono riportate in minima parte ma sono "integrate" da moltissime altre informazioni non richieste ("quello che mi hai chiesto non lo so ma ho studiato tanto e te lo dimostro").

    Vedi anche:
  • Fare gli esercizi senza consultare gli appunti/slide. E' il solo modo per rendersi conto delle proprie lacune. Se non ci si riesce allora significa che non si è ancora pronti per fare gli esercizi e si deve studiare gli appunti/slide nuovamente. Cercare di sfruttare al massimo gli esercizi svolti che sono disponibili.
  • Evitare assolutamente risposte "narrative", in particolare quando viene chiesto di descrivere del traffico. In questi casi è praticamente impossibile essere esaurienti e non ambigui per mezzo di descrizioni narrative: usare elenchi di messaggi, o tabelle o cose del genere.
  • Ogni volta che si scrive un messaggio, analizzare ogni singola parte del messaggio e chiedersi "come ha fatto il mittente a conoscere questa informazione?" Questo controllo (semplice in teoria ma non semplice da mettere in pratica) permette di rilevare molti errori e quindi molte lacune nella preparazione.
  • Le cose da imparare a memoria ci sono ma sono poche, credo. Elenco non esaustivo: procedure socket, numeri di porta dei protocolli studiati, richieste e risposte SMTP e POP, header HTTP discussi nelle slide, elementi HTML fondamentali (quelli visti nelle slide ad eccezione di tabelle e CSS).
  • Leggere e digerire questo post:  Presentarsi ad un esame (e consegnare uno scritto).
Altre informazioni che possono essere utili:
  • E' molto raro che chi non ha seguito le lezioni superi l'esame al primo tentativo. Non è impossibile, ogni tanto succede ma è raro. Non so quale sia il motivo, ma mi pare una informazione utile.
  • A partire dall'a.a. 2019/2020 valuterò la possibilità, in via sperimentale, di rendere disponibili le registrazioni audio delle lezioni. L'abbiamo fatto nel corso di "Reti di Calcolatori II e Principi di Sicurezza Informatica" e gli studenti lo hanno ritenuto molto utile. Vedremo se farlo anche a Reti I: diffondere registrazioni audio è una cosa delicata; farlo in un corso con circa 30 studenti (Reti II) non è lo stesso che farlo in un corso con circa 160 studenti (Reti I).

lunedì 26 novembre 2018

Test "a crocette": sarà presente in ogni esame

Nella prima provetta 2018/2019 ho inserito nello scritto un insieme di 14 domande "vero"/"falso".

Ho distribuito molte versioni diverse dell'insieme, in modo da non alimentare la tentazione di copiare (tentazione che credo sia già abbastanza bassa, ma quest'anno la densità nell'aula era talmente alta da impormi misure straordinarie).

Questo insieme di domande costituiva quello che chiamo "Esercizio Zero": esercizio semplice che ha l'unico scopo di verificare che chi partecipa all'esame abbia una preparazione di base adeguata. Svolgere l'Esercizio Zero in modo adeguato non fornisce nessun bonus: solo il diritto di proseguire l'esame.

Per inciso, ribadisco a scanso di equivoci che ho analizzato ogni singolo Esercizio Zero più volte. Non ho assegnato giudizi in maniera automatica in base al numero di errori, ho tenuto conto della tipologia di ogni errore, ho cercato di tenere conto di possibili interpretazioni diverse di alcune domande. Nessuna domanda da sola ha avuto un impatto decisivo sul giudizio finale. Fine inciso.

E' stata la prima volta che ho inserito un insieme di molte domande vero/falso. Ritengo che questa tipologia di esercizio sia molto utile ed ho deciso di adottarla in maniera sistematica:

  1. Ogni provetta (compresa la seconda provetta 2018/2019) ed ogni appello ufficiale di Reti di Calcolatori comprenderà un insieme di 10/15 domande vero/falso.
  2. Questo insieme di domande non sarà solo un Esercizio Zero ma potrà anche fornire un bonus.

Inserire in un esame scritto 10-15 domande su molti argomenti diversi tra loro mi pare utile per tutti, sia per gli studenti sia per me.

Sinora gli esami scritti consistevano di due scenari, ognuno composto da "molti esercizi". I due scenari potevano coprire solo una parte minima del programma ed erano sempre di tipologie simili tra loro. In questa situazione, ogni incertezza, imprecisione, errore o svista non può che avere un impatto elevato. A meno di non fare poi un esame orale per dimostrare la propria preparazione. Ma fare un orale con me è una esperienza abbastanza rischiosa. Chi può lo evita.

Inserire nell'esame scritto 10-15 domande su molti argomenti diversi, invece, permette allo studente di dare una prima dimostrazione della propria preparazione di base. Ciò mi permetterà di fare esercizi un pochino più leggeri (come è già accaduto nella prima provetta) e di essere meno drastico nel valutare imprecisioni ed errori (idem).

Appendice

In aggiunta allo sperabile vantaggio in sede di esame, l'uso delle domande vero/falso ha un altro aspetto positivo: quello di stimolare gli studenti a considerare con attenzione il significato delle parole. Ad esempio:

In assenza di caching DNS, un email inviato da un dominio email che termina con .it ed indirizzato verso un dominio email che termina con .org transiterebbe necessariamente da un name server della root zone.

E' difficile da credere, ma ci sono state persone che hanno risposto "vero". Poiché nessuno può neanche lontanamente pensare che un email possa transitare da un name server, è ovvio che l'errore è stato provocato dalla scarsa abitudine a leggere con attenzione ed a fare attenzione alla precisione del linguaggio.

Se la domanda fosse stata scritta in questo modo non l'avrebbe sbagliata nessuno:

In assenza di caching DNS, un email inviato da un dominio email che termina con .it ed indirizzato verso un dominio email che termina con .org transiterebbe necessariamente da un name server della root zone.

Idem per questa:

Un email può transitare da un name server?

Un laureato triennale deve assolutamente avere la capacità di leggere e comprendere un documento tecnico: un datasheet, un brevetto, un manuale di configurazione, un manuale di una libreria etc etc etc. Bisogna fare attenzione al significato delle parole ed alla precisione del linguaggio.

lunedì 20 novembre 2017

Importanza dell'italiano

A parte gli errori, sviste ed imprecisioni "normali", ho rilevato l'amplificarsi di un fenomeno molto preoccupante: molte, molte persone hanno evidenti problemi di comprensione del testo. Mi riferisco all'italiano, non alle reti di calcolatori.

O non capiscono il testo, o capiscono e poi ritengono che una risposta più o meno in tema sia adeguata, o leggono solo per farsi un'idea generale di cosa è richiesto, non lo so. Il fatto è che sono molto poche le persone che di fronte alla domanda "A" rispondono alla domanda "A"; di solito rispondono ad altro.

Se rispondessero ad "A" e poi rispondessero anche ad altro andrebbe bene, il fatto è che non rispondono ad "A". Per fare una analogia, alla domanda: "Che ore sono?" si vedono risposte come

  • "Bello il mio orologio, vero?"
  • "Si, penso che sia un pò tardi"
  • "Io uso sempre lo smartphone per vedere l'ora"

e cose simili. Trovate molti esempi specifici nel blog post con gli errori.

Questo fenomeno mi pare un effetto collaterale di un altro fenomeno preoccupante: la scarsissima attenzione alla precisione nel linguaggio.  Se uno deve comunicare il concetto di verde, deve usare la parola "verde". Non la parola "caldo" o "giallino" o "automobile" o "erba". Se uno scrive "l'oggetto A è verde" non può scrivere due righe più sotto che "l'oggetto A è marrone" oppure "l'oggetto A è a palline verdi e gialle". Anche per questo trovate molti esempi specifici nel blog post con gli errori.

Molte persone ritengono che comunicare una idea approssimata di quello che hanno in testa sia tutto ciò che serve. Non è così. La precisione nel linguaggio (chiamare "pere" le pere e dire tutto ciò che è necessario dire) è fondamentale in ogni professione.

E' possibile che quando ho detto "dovete dimostrare al lettore di avere capito" io abbia contribuito ad incoraggiarvi a comunicare in maniera approssimata. Se è così, sgombriamo il campo dagli equivoci: la precisione nel linguaggio è fondamentale. Fondamentale. In ogni professione. Poi se uno non ricorda tutto, se svolge un esercizio in un modo realistico ma diverso da quello in cui dovrebbe essere svolto, pazienza.

Poiché c'è scarsa attenzione a comunicare con precisione il proprio pensiero, c'è anche scarsa attenzione a comprendere il pensiero degli altri. Da qui, forse, il problema a cui mi riferivo all'inizio di questo post.

Invito tutti a riflettere su quanto sopra.

giovedì 19 ottobre 2017

Tentare l'esame più e più volte

Premessa: non leggete questo post con l'atteggiamento "il solito docente noiosissimo che ci dice cose inapplicabili e lontanissime dal modo con il quale ragionano gli studenti"; leggetelo con l'atteggiamento "se questa persona che fa questo lavoro da più di vent'anni ed il cui stipendio non dipende dal tempo che sta impiegando nello spiegare gli errori agli studenti, allora forse ha ragione lui e dovrei cercare di capire cosa intende dirmi".

Alcuni studenti si presentano all'esame senza avere studiato tutto il programma approfonditamente, sperando in un colpo di fortuna o una amnistia generale. Altri studenti studiano in maniera pattern-based: prendono gli esercizi svolti, studiano le soluzioni, di fronte ad un nuovo esercizio cercano di ricondurlo ad uno degli esercizi già visti.

Sconsiglio fortemente di usare approcci di questo genere perché la probabilità di successo è molto bassa.

In Reti di Calcolatori basta modificare di un epsilon la formulazione di un esercizio per ottenere uno scenario radicalmente diverso da quello originario. Di conseguenza, cercare di applicare una soluzione già vista in precedenza per un esercizio apparentemente simile, comporta l'enorme rischio di scrivere una stupidaggine. Costruire la soluzione richiesta nel caso specifico senza avere capito la cosiddetta "teoria" è molto difficile.

Inoltre, in Reti di Calcolatori ci sono forti dipendenze tra numerosi argomenti diversi. Lo svolgimento di un esercizio tipicamente richiede la conoscenza di molti argomenti. Riuscire a svolgere gli esercizi proposti avendo buio completo su alcuni argomenti è possibile ma occorre davvero molta fortuna.

Oltre ad avere bassa probabilità di successo, l'approccio "studio un pò e provo / studio sugli esami precedenti" ha il rischio di entrare in una spirale dalla quale è molto difficile uscire:
  1. si fraintendono alcuni concetti di base, si fraintende il modo di ragionare richiesto dalla materia, si fraintende l'approccio da usare negli esercizi;
  2. l'esito dell'esame è fortemente negativo;
  3. la materia diventa sempre più noiosa e studiarla diventa sempre più faticoso;
  4. i fraintendimenti si consolidano e diventano sempre più difficili da rimuovere;
  5. si prova e si riprova l'esame senza successo: talvolta senza avere studiato molto e tanto per provare, ogni volta facendo sempre più fatica.
Purtroppo ho visto molti casi di persone entrate in questa spirale: il superamento dell'esame ha richiesto molti tentativi ed un grande dispendio di tempo ed energie.

Quando un esame non viene superato dopo un certo numero di tentativi, bisogna modificare radicalmente il modo di studiare o la preparazione; provare e riprovare senza modifiche radicali è una strategia sbagliata.

Suggerimenti di una studentessa che ha avuto difficoltà con l'esame di Reti di Calcolatori sono disponibili a questo link. 

Questi suggerimenti possono essere utili per tentare di risolvere il problema. Ma la cosa di gran lunga migliore è cercare di prevenirlo. Quindi, ripeto, sconsiglio caldamente l'approccio "studio un pò e provo / studio sugli esami precedenti".

Suggerimento specifico per chi si presenta alla prima provetta avendo seguito e studiato assiduamente ma ha avuto un esito insufficiente: non smettere di seguire e studiare.

Se uno non è riuscito a superare la provetta nonostante abbia studiato molto allora significa che questo insegnamento, per qualche motivo, gli crea problemi particolari. E' proprio in questi casi che bisogna persistere nell'impegno e non mettere da parte questa materia. Se un esame su parte del programma ha creato problemi pur avendo frequentato le lezioni, è ovvio che un esame su tutto il programma senza avere frequentato tutte le lezioni creerà ancora più problemi. Il rischio di entrare nella spirale sopra descritta, tra l'altro, diventa più grande.

martedì 22 novembre 2016

Come si deve fare un esame scritto (ma non solo)

Visto l'esito dell'ultima provetta, raccolgo qui varie informazioni sparse che ho già fornito più e più e volte. Spero che raccogliendole siano più efficaci.

Rispondere alla domanda del testo senza inventarsi una domanda diversa.

Inventarsi una domanda diversa è un fenomeno che accade molto più spesso di quanto ci si possa immaginare (vedi ad esempio i commenti numero 4, 14, 23 e 25 in questo post).

Se viene chiesto di fornire una certa informazione allora deve essere fornita esattamente quella informazione. Non fornire l'informazione richiesta significa non avere svolto l'esercizio. Non perché io sia pignolo: perché questo è un requisito basilare di ogni professione. Se chiedo ad un imbianchino di pitturarmi una camera di verde allora lui deve pitturarmi una camera di verde. Punto. Che prospettive di lavoro può avere un imbianchino che pittura la cucina invece della camera? O che pittura la camera di bianco?

Fornire informazioni che sono diverse da quelle richieste, inoltre, rende manifesto che uno non è neanche in grado di comprendere il testo di un esercizio ed attenersi ai requisiti. Una impostazione mentale di questo genere è radicalmente in contrasto con la natura dell'ingegneria. Se viene chiesto di fare un ponte allora si deve fare un ponte. Non si deve fare un frigorifero perché si ha voglia di fare un frigorifero, perché siamo più bravi a fare i frigoriferi, perché i frigoriferi sono interessanti, perché se dimostro di sapere fare un frigorifero allora è ovvio che saprò fare anche un ponte, perché basta che produca qualcosa che più o meno ha a che fare con i frigoriferi (caso frequentissimo). Come si deve valutare un elaborato di un aspirante ingegnere che non è neanche in grado di attenersi ai requisiti ma produce ciò che vuole lui?

Talvolta gli studenti si inventano una domanda diversa consapevolmente ("quello che mi è stato chiesto non lo so, però ho studiato"). L’approccio di scegliere da solo l’argomento di cui parlare, svicolando abilmente la domanda, può essere utilissimo in altri contesti (ad esempio in politica) ma è completamente negativo nell’ingegneria per gli stessi motivi sopra discussi.

Talvolta gli studenti inseriscono molte più informazioni di quelle richieste (per dimostrare di avere studiato o perché non si rendono conto che sono inutili). Ciò è molto pericoloso: informazioni inutili hanno valore pressoché nullo se sono corrette e valore negativo se sono sbagliate. Scrivere informazioni inutili, inoltre, è una perdita di tempo prezioso.

Leggere correttamente il testo di un esame è fondamentale anche per i motivi descritti in questo post.

Mai descrivere traffico o tabelle in forma narrativa / discorsiva

Quando viene chiesto di descrivere una qualche forma di traffico (applicativo, pacchetti o frame), è pressoché impossibile che uno svolgimento completamente “narrativo/discorsivo” riesca a convincere il lettore che chi scrive ha veramente capito.

Una risposta deve essere esaustiva e non ambigua, mentre in ogni svolgimento narrativo rimangono sempre punti non descritti e ambigui. Questo post mostra due esempi dettagliati (i commenti 13 e 19 di questo post sono altri esempi).

Esercizi in cui viene chiesto di descrivere del traffico devono essere svolti descrivendo una sequenza di elementi (messaggio, pacchetto o frame) in cui ogni elemento è descritto in modo schematico con un livello di dettaglio “adeguato”.

Per ogni elemento, deve anche essere descritto in modo esauriente e non ambiguo chi trasmette e chi riceve.

Quanto scritto per il traffico si applica in modo analogo per informazioni quali tabelle, regole di configurazione, regole di firewall e così via. In ogni caso si deve fornire un insieme di elementi facendo mente locale sul tipo di ogni elemento (coppia range-azione per una tabella di routing, quadrupla indirizzi IP/port number per una regola di firewall, nome-insiemeURL-protocollo-ACL per un realm di protezione, nome-tipo-valore per un RR e così via). Poi si deve fornire, per ogni elemento, tutte le informazioni corrispondenti al suo tipo.

venerdì 27 maggio 2016

Leggere il testo di un esame

Leggere il testo di un esame è importantissimo, non solo perché io sono pignolo; non solo perché in questo modo uno evita di perdere tempo fornendo informazioni non richieste (quindi inutili nel migliore dei casi e dannose nel peggiore); non solo perché leggere ciò che è scritto in un documento e distinguerlo da ciò che uno crede ci sia scritto è fondamentale in ogni settore (dalle istruzioni per la dichiarazione dei redditi alle norme regionali, alle leggi a qualsiasi cosa).

E' importantissimo anche e soprattutto perché è una delle capacità necessarie ad una persona che deve lavorare in un gruppo.

L'ho visto decine e decine di volte con i miei collaboratori ed i miei tesisti. Passiamo del tempo a discutere, decidiamo di fare una cosa, la persona investe giorni del proprio tempo per fare quella cosa ed alla fine si scopre che ne ha fatta un'altra. Quasi sempre una cosa inutile, perché nella tecnologia i dettagli sono importanti. In moltissimi contesti basta modificare un minimo dettaglio per ottenere un risultato inutile, fuorviante o sbagliato.

L'effetto è che tutti hanno sprecato tempo, risorse ed energie.

Inoltre, spesso il problema non lo si scopre subito. Lo si scopre solo se emerge qualche risultato od azione strana e si ha il tempo e la possibilità di approfondire. Pertanto quando emerge un problema si mettono in dubbio anche tutte le altre cose fatte in precedenza da quella persona: avrà fatto veramente ciò che avrebbe dovuto fare? oppure ha cambiato qualcosa?

Un effetto aggiuntivo, ancora più importante, è che la persona non ha fornito ai propri collaboratori una prova positiva delle proprie capacità.


giovedì 28 aprile 2016

Risposte narrative



Questo è un esempio da manuale del perché dico che non si devono dare risposte narrative ma si devono dare descrizioni schematiche esaurienti.

Che significa "nel server di webhosting ci sarà un record di tipo CNAME"?

Il record si trova in un name server, non nel server di web hosting. Inoltre, quali sono name e value di quel record? La frase indica solo il tipo. Inoltre, di record CNAME ce ne sarà uno, come indicato nella narrazione, o ce ne saranno due (come deve essere)? Inoltre, il fatto che il record CNAME "sarà" nel server, non c'entra nulla con le request e le response DNS richieste dall'esercizio: un RR può essere in un name server e non essere mai tornato in nessuna risposta. Inoltre, quel RR viene tornato come response a quale request? A una request CNAME? o a una request NS? o a una request A? E qual'è il nome in quella request? E quando è tornato un record CNAME, cosa se ne fa il browser di quel record, cioè quali request invia successivamente (se ne invia)?

Notate, qui non si tratta (solo) di mia pignoleria, si tratta di leggere il compito. Il compito contiene una descrizione ambigua di una minima parte delle informazioni necessarie. Che ipotesi deve fare chi legge sulle informazioni non scritte nel compito? Sono presenti nella testa di chi ha scritto o no? Purtroppo non si possono assegnare voti per via telepatica.

Altro esempio. "Karl, da PC, invia un GET per http://bayern.de/index.html la request non appartiene a nessuna sessione lui è configurato per generarla ed utilizza la tecnica dei cookie. Il server manda la risposta con un 200 ok, se tutto è andato bene, e dopo la linea vuota sopra il documento richiesto. Il browser di Karl riceve la risposta e se la memorizza nella sua cache. Nella home page c'è un documento htm che il server non vuole che sia memorizzato e si realizza con un response header del tipo cache-control no store e due jpg che il server vuole che si memorizzino".

Solo in queste due frasi il lettore si pone un numero altissimo di domande:
  • "lui è configurato...". chi è "lui"?
  • "utilizza la tecnica dei cookie". cioè? come funziona questa tecnica? chi la realizza e come?
  • "manda la risposta con un 200 ok". che significa "con un 200 ok"? 200 ok è la parte iniziale della risposta, non è un non meglio definito qualcosa che viaggia "con" la risposta.
  • "dopo la linea vuota sopra il documento richiesto". "dopo" che cosa? dopo il 200 ok? e non ci sono header? e che significa "sopra"? casomai sarà prima, non sopra.
  • "non vuole che sia memorizzato e si realizza con un response header..." response header inserito dove? in quale response?
  • "e due jpg che vuole che si memorizzino" dove sono quei jpg? come descrive la sua volontà di memorizzarli e dove? nel documento html? come fa il browser a capire se sta ricevendo un documento html o un documento jpg?
  • "nella home page c'è un documento html"; la home page E' un documento html.