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 Alessandro Bordin pubblicato il 27 Marzo 2009 nel canale ProgrammiMicrosoft
Intervista - video
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 - infoGrazie dottor Jacobson!!
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.
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
Dal punto di vista dello sviluppo è solo questione di pratica.
Il problema è che per farlo è necessario addestrare commerciali e clienti.
Soprattutto i primi...
Te possino....
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".