Niente promesse, codice che funziona

Come diventare autentici Pragmatic Programmer

di

thumbnail

07

mag

2018

Intervista al coautore di uno dei più grandi successi editoriali mondiali nel campo della programmazione evoluta.

Tradotto in dieci lingue, con oltre centomila copie vendute nella sola edizione inglese, Pragmatic Programmer è a tutti gli effetti un classico della letteratura informatica. Il suo coautore è oggi qui con noi.

Apogeonline: Come si distingue un programmatore pragmatico da uno che non lo è?

Andrew Hunt: Un programmatore pragmatico è sempre curioso. Cerca sempre di capire come funzionano le cose, perché le cose sono come sono, alla ricerca di modi migliori per farle essere. Si concentra sul fare ciò che funziona, non perché lo ha letto su un manuale, ma perché vede risultati. E quando uno strumento prediletto non funziona più lo scarta, a favore di qualcosa più appropriato. È un mondo che cambia in fretta e non c’è mai qualcosa che vada bene sempre. I programmatori pragmatici lo sanno a menadito.

Come hai deciso di scrivere questo libro? Pensi che la gente legga ancora libri per imparare e migliorarsi?

[David Thomas e io] abbiamo deciso di scriverlo perché, in quel momento, serviva ai nostri clienti. Sito dopo sito, azienda dopo azienda, ovunque i problemi erano sempre gli stessi. Di conseguenza, mentre il nostro primo intento era scrivere un breve whitepaper di buone pratiche, il progetto è cresciuto fino a diventare un libro.

La gente, sì, legge ancora libri. Sul nostro sito professionale pragprog.com, metà delle vendite consiste in libri cartacei. Gli ebook sono meravigliosamente comodi, ma per lo studio e la scorsa casuale, e per farsi un riferimento, la carta è superiore.

Ci sono linguaggi che facilitano la programmazione pragmatica (o che invece no…)?

Sì. Qualunque linguaggio offra un feedback veloce è indicato. I linguaggi dinamici dotati di ciclo REPL (read-eval-print) saranno più efficaci ed efficienti, e aiuteranno a imparare più in fretta. Linguaggi più pesanti, con lunghi cicli di compilazione e quantità immani di codice precotto fanno perdere tempo e ritardano feedback importante.

Qual è la parte più difficile nel divenire programmatori pragmatici? Qual è il peggior errore da correggere prima di fare veri progressi?

L’errore peggiore è pensare di saperne abbastanza. Non ne sai abastanza. Mai. Programmo da trentacinque anni e ci sono talmente tante cose che non so. Apprendere è un requisito continuativo. Ogni giorno, ogni anno. Nel libro scriviamo di imparare almeno un nuovo linguaggio di programmazione ogni anno.

Mai avere paura di rispondere a una domanda “non lo so”. Sempre concludere la risposta con “ma lo scoprirò”.

Faccio sempre fatica a spiegare in termini adeguati l’importanza dei test. Mi puoi aiutare?

La cosa più importante è il feedback. Immagina di guidare un’auto da corsa ad alta velocità. Reagire al feedback è critico quando arriva una curva, un rettilineo, un’altra auto, un ostacolo. Ora immagina che le immagini arrivino sul parabrezza in ritardo di minuti. Ore, giorni o persino settimane. Peggio che guidare bendati. La macchina si schianterà.

Muzeum_of_trans_Gla_crash_test

Come per le auto, i test nel software devono accertare che tutto funzioni.

 

I test generano feedback. Dicono che cosa funziona e che cosa no. Guardare nel codice attraverso i test permette di vedere la curva in arrivo, immediatamente, e sterzare prima dello schianto ed evitarlo.

Il Pragmatic Programmer è pragmatico? Intendo dire, le buone pratiche di programmazione hanno influenzato la sua scrittura?

Certamente. In questo libro, e tutte le altre centinaia di libri che abbiamo venduto sul Pragmatic Bookshelf, usiamo pratiche di programmazione robuste e affidabili tra le quali rilasci frequenti per avere feedback, uso del testo puro (niente Word o simili), controllo delle versioni per la sicurezza del codice, build automatizzate, una build machine continua e via dicendo. Siamo programmatori, semplicemente non sapremmo come fare in altro modo. ;)

Come firmatario originale tra i diciassette del Manifesto Agile, come vedi oggi lo stato del movimento Agile?

Sono molto disilluso. Troppa gente che fa solo parte di Scrum, male, e lo chiama agile. Non stanno ricavando i benefici che si meritano e non riescono a competere con le aziende che invece ce la fanno. Non posso parlare per Dave, ma so che nutre opinioni simili.

Alla fine non è questione di essere agile o fare Scrum. È questione di saper rispondere ai clienti e ai mercati facilmente e velocemente, e distribuire software con un valore effettivo. Software che funziona, come diciamo nel manifesto. Niente promesse, niente PowerPoint, niente Jira, nessun piano. Consegnare roba che funziona e farlo, farlo ancora, rifarlo, confidenti e affidabili. Lo si chiami come si vuole, lo scopo è questo.

Tutto questo parlare di intelligenza artificiale cambierà veramente il modo in cui si crea il software?

Di sicuro. Ma probabilmente non nel modo che pensiamo. Il futuro si dispiega raramente come ci eravamo immaginati che facesse. Non credo che avremo un’intelligenza artificiale che scrive codice al posto nostro. Ma cambierà la natura di quello che scriviamo.

Spesso questo tipo di riflessioni pone la domanda sbagliata. Non è passato molto tempo da quanto andavano di moda i dibattiti su chi avrebbe vinto: Motif o Open Look? O RMI contro Corba? Domande sbagliate, che il web ha reso irrilevanti.

Il vostro libro ha avuto un grande successo in tutto il mondo, fino a diventare un classico. Vi sentite appagati? Quale sarà la vostra prossima mossa nell’insegnarci a programmare?

Abbiamo imparato molto dagli ultimi quindici anni di pubblicazione dei migliori libri di tecnologia sulla piazza. Abbiamo imparato dai nostri autori e dai nostri lettori. Continuiamo a sperimentare, a cercare modi nuovi e migliori per fare le cose. Seguiteci su pragprog.com e @pragprog e vedremo che cosa salterà fuori.

Il Pragmatic Programmer

Per manovali intenzionati a diventare maestri.

 




Andrew Hunt (@PragmaticAndy) è un consulente informatico apprezzato a livello internazionale e autore di circa mezza dozzina di manuali dedicati all'apprendimento della buona programmazione tra cui, editi da Apogeo, Imparare a programmare in Java con Minecraft e Il Pragmatic Programmer.

In Rete: andy.pragprog.com

Letto 1.802 volte | Tag: , , , ,

Lascia il tuo commento