Ivar Jacobson: ecco cosa non insegnano ai programmatori

Ivar Jacobson: ecco cosa non insegnano ai programmatori

Nel corso di una giornata dedicata alla programmazione organizzata da Microsoft, abbiamo avuto il piacere e l'onore di intervistare Ivar Jacobson, personalità importante all'interno del mondo degli sviluppatori di software.

di pubblicato il nel canale Programmi
Microsoft
 

Intervista - video

[HWUVIDEO="307"]Ivar Jacobson: ecco cosa non insegnano nelle università[/HWUVIDEO]

Domanda: Dottor Jacobson, buongiorno. Nella sua conferenza ha detto più volte che ci sono diverse cose che non vengono insegnate a scuola, in ambito programmazione. Quali sono dunque i suoi consigli per i nostri lettori, per farli diventare programmatori migliori?

Risposta: Allora... davvero pochi software di successo sono stati sviluppati senza alle spalle un'idea intelligente... questo è ciò che a scuola non viene insegnato. Per esempio, a scuola e nelle università di tutto il mondo (magari non in Italia, per carità, non conosco bene la vostra realtà!) non vengono insegnati i requirments che il software deve avere, non si pone l'accento sulle reali conseguenze sul sistema, sui problemi che l'utilizzatore può avere o come sviluppare la migliore struttura dell'applicativo... state certi che se non si parte con la giusta strutturazione, nel momento in cui il software dovesse diventare un successo.. sarebbe tutto da rifare!

Come testare il software? Certo, ci sono diversi modi che vengono insegnati, ma solo alcuni e non i più importanti, come quelli di integrazione o quelli legati alle performance, stress test e molte altre cose. Queste sono i punti chiave per realizzare un software di successo. Certo, ti insegnano molte cose, ed è un bene...ti insegnano alcuni linguaggi di programmazione, all'università ti parlano anche troppo di compilatori... in genere i docenti universitari (non in Italia magari!)... amano i compilatori! Amano i linguaggi per realizzare compilatori! Ma noi, i programmatori in genere, non sviluppiamo solo compilatori, ma ben altro.. ci servono frameworks, linguaggi, cose del genere. Capire questo è facile. Il difficile è il come. La maggior parte della gente impara... dagli errori! Tutto ciò però è molto dispendioso, anche in termini economici.

Si impara lavorando in azienda, senza per forza avere una propria visione appresa... si impara lavorando! Magari quell'azienda ha un suo modo di operare particolarmente profittevole, magari il migliore del mondo, ma state certi che non sarà il migliore per sempre. Il problema è che molti, nell'industria del software, seguono le mode, l'eleganza del codice, nonché una formula che vada bene sempre e comunque. Ci piacciono le nuove idee, certo: 15 anni fa si parlava quasi escusivamente si Object Oriented...10 anni fa di Component Based Development. Unified Modelling Languages. In Ericcson, dove lavoravo, abbiamo inventato il concetto di Component nel 1967.

Insomma, cose del genere. All'università ti insegnano qualcosa, ma non le cose davvero importanti. Come si imparano? Un modo sarebbe quello di leggere molto, ma la gente non ama i libri. Ne ho scritti molti, la gente li compra anche ma so che poi in molti non li leggono nemmeno. Dobbiamo quindi trovare un'altra via. Noi abbiamo un ottima soluzione, avendo sviluppato alcun pratiche che stanno alla base di tutto. Come realizzare casi d'uso, come realizzare componenti, come impostare la migliore struttura, una delle cose più importanti... e via dicendo. Nelle mie slide ci sono alcuni di questi consigli. Non è l'unico modo, certo.

La cosa più importante è sviluppare software usando la testa, a qualsiasi livello. Saper scegliere le soluzioni migliori architetture, saper capire quali sono i migliori requisiti, che devono essere giusti, né troppi né troppo pochi! Bisogna essere in grado di formare le giuste squadre di lavoro, cosa importantissima. Questo non te lo insegna nessuno all'università, ma si hanno chiare indicazioni con i nostri metodi. La cosa bella, se sei un cliente Microsoft, è che abbiamo una buona integrazione di queste nostre pratiche in VSTS.

103 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
zarko27 Marzo 2009, 16:05 #1
Ecco i 10 comandamenti... (vabbhè, non li ho contati), comunque...
Grazie dottor Jacobson!!
Hador27 Marzo 2009, 16:26 #2
lol è esattamente il discorso che ci fanno a lezione di processo e qualità - siamo messi meglio di quanto lui pensi (dal punto di vista universitario, in azienda è altro discorso)
Helldron27 Marzo 2009, 16:27 #3
E' dannatamente vero, inutile specializzarsi alle università, ci vuole pratica e esperienza cercando di capire il miglior approccio a un progetto.

C'è poco da fare: tra quello che fai a scuola/università e quello che ti trovi a dover fare in un ambiente lavorativo c'è una grande differenza; le università dovrebbero muoversi in questo senso e insegnare non solo a usare il linguaggio di turno ma a capire la metodologia e il background in cui verrà usato..così uno si trova già in qualche modo orientato al progetto di gruppo che poi sembra essere l'effettiva realtà lavorativa.
Dominioincontrastato27 Marzo 2009, 16:28 #4
Però questo è veramente un grande, penso che tutti i professori universitari a cui seguo la lezione, (CdL in Informatica) verrebbero tutti ampiamente sverniciati da questo Jacobson. Per quando il ciclo di vita di un software sia una cosa molto complessa, inclusa anche la manutenzione, ci sono degli sviluppi veramente molto interessanti. Perchè esistono i tester? Chi meglio di uno sviluppatore è in grado di mettere mano a quello che ha scritto piuttosto che un altro? Semplice e geniale allo stesso tempo, tutti sviluppano codice e tutti sono tester, ma questo all'università o nelle aziende non te lo insegnano....
ottoking27 Marzo 2009, 16:52 #5
Bè dai in 5 pagine ha disintegrato il primo mese del corso d' ingegneria del software mica male... è vero che i professori sono fissati con i compilatori LOL!!!!!
Sulla questione tester concordo...
Sul modello a cascata ok ma basta che ci dice bene cosa ha in mente perchè onestamente non mi è molto chiaro ok si parte da un qualcosa di semplice di base e poi lo si sviluppa man mano però non credo sia così semplice la questione
akfhalfhadsòkadjasdasd27 Marzo 2009, 17:00 #6
Originariamente inviato da: Dominioincontrastato
Perchè esistono i tester? Chi meglio di uno sviluppatore è in grado di mettere mano a quello che ha scritto piuttosto che un altro? Semplice e geniale allo stesso tempo, tutti sviluppano codice e tutti sono tester, ma questo all'università o nelle aziende non te lo insegnano....
ovviamente tu da programmatore fai anche il tuo debug... ma i tester possono servire perché il tuo software verrà guardato in modo diverso, verrà testato in modo diverso e spesso in modi che tu non prevedevi. Stessa cosa per chi scrive libri secondo te perché sono perlopiù gli altri che trovano gli errori che non tu che hai scritto?

Originariamente inviato da: ottoking
Bè dai in 5 pagine ha disintegrato il primo mese del corso d' ingegneria del software mica male...
porte queste slide al tuo professore e chiedi motivazioni no?
ReaToMe27 Marzo 2009, 17:00 #7
Originariamente inviato da: ottoking
Sul modello a cascata ok ma basta che ci dice bene cosa ha in mente perchè onestamente non mi è molto chiaro ok si parte da un qualcosa di semplice di base e poi lo si sviluppa man mano però non credo sia così semplice la questione

Dal punto di vista dello sviluppo è solo questione di pratica.
Il problema è che per farlo è necessario addestrare commerciali e clienti.
Soprattutto i primi...
GlobuS27 Marzo 2009, 17:18 #8
In troppi slides (tra deprecati ovviamente) ho visto la situazione dei team dove ho lavorato....
lowenz27 Marzo 2009, 17:29 #9
Ecco quello che ha creato l'UML

Te possino....
lowenz27 Marzo 2009, 17:33 #10
Cmq la PoliMI tutto quello che ha detto costui viene assolutamente insegnato nel corso di Ingegneria del Software

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^