Una filosofia pragmatica
Cosa distingue i programmatori pragmatici? Un atteggiamento, uno stile, una filosofia con cui si approcciano ai problemi e alle loro soluzioni. Pensano oltre il problema e cercano di capire il quadro generale.
Il gatto mi ha mangiato il codice sorgente
Una delle caratteristiche che deve avere un programmatore pragmatico è quella di assumersi la responsabilità delle proprie azioni e nel momento in cui sbaglia o non sa qualcosa deve saper mettere da parte l'orgoglio e ammettere il proprio errore.
Prendersi la responsabilità
Nel momento in cui ci accolliamo una responsabilità dobbiamo aspettarci di essere chiamati a giudizio se qualcosa va storto. Quando commettete uno sbaglio ammettetelo onestamente e cercate di offrire delle soluzioni. Lo stesso atteggiamento deve essere adottato quando c'è qualcosa difficile da fare. Prima di dare la brutta notizia a qualcuno pensate a una possibile soluzione e a come doverla spiegare a quella persona.
Entropia del software
Entropia è un termine della fisica, il quale indica il grado di "disordine" all'interno di un sistema. Quando il disordine aumenta nel software si inizia a parlare di "software rot", ovvero decomposizione del software. Vi è una teoria definita come "la teoria della finestra rotta", la quale afferma che: se si prende un edificio nuovo e ben mantenuto e si rompe una semplice finestra, nel giro di poco tempo l'intero edificio cadrebbe in uno stato di abbandono e di decadimento. Non lasciate che le "finestre rotte" (progetti malfatti con codice di scarsa qualità) non vengano riparate. Sistematele non appena le scoprite. Un progetto con una semplice finestra rotta porterebbe gli altri sviluppatori ad avere un pretesto per rompere altre finestre. Questo porterà ben presto l'intero progetto in uno stato di decadimento e abbandono.
Siate catalizzatori del cambiamento
I progetti, lentamente ma inesorabilmente, spesso finiscono per sfuggire di mano. Quasi tutti i disastri software iniziano troppo piccoli perché qualcuno li noti. Il sistema man mano si allontana dalle specifiche iniziali, mentre si inserisce nel codice una pezza dopo l'altra. Questo non fa altro che distruggere il morale del team. Cercate di tenere d'occhio il quadro generale, esaminate costantemente quello che succede attorno a voi e, non appena vi accorgete che qualcosa non sta andando come dovrebbe, cercate una soluzione e promuovetevi catalizzatori del cambiamento.
Software abbastanza buono
Sarebbe bello avere un software perfetto sia dal punto di vista qualitativo del codice, sia dal punto di vista delle funzionalità e per di più privo di bug. Purtroppo sappiamo bene che questa perfezione è un'utopia. Tuttavia possiamo scrivere del codice che sia abbastanza buono sia per gli utenti che lo utilizzeranno e sia per gli sviluppatori futuri che dovranno manutenerlo. Per "abbastanza buono" intendiamo un software che sia buono sia dal punto di vista della qualità del codice e sia dal punto di vista dei requisiti finali che deve soddisfare.
Coinvolgete gli utenti nel compromesso
Noi scriviamo software per conto di altri, ma quante volte chiediamo ai nostri clienti quanto buono vogliono che sia il loro software? Sicuramente gli utenti finali avranno fatto dei piani sulla base del tempo di consegna. Ignorare questi piani per aggiungere una funzionalità che ad oggi non è necessaria o per ripulire il codice ancora una volta, è poco professionale. Così com'è altrettanto poco professionale dare tempistiche impossibili e prendere scorciatoie per rispettare una scadenza. Spesso vi troverete in situazioni in cui sono necessari dei compromessi. A sorpresa molti utenti preferiscono utilizzare del software con meno funzionalità oggi che aspettare un anno per la versione perfetta e completa.
Sapere quando fermarsi
Programmare è un po' come dipingere. A volte dobbiamo allontanarci dalla nostra tela per osservare in modo critico quel che si è fatto. Non rovinate un programma perfettamente valido con "abbellimenti" eccessivi e un eccesso di perfezionamento. Andate avanti, magari non sarà perfetto, ma non preoccupatevi: non sarà mai perfetto.
Il portafoglio delle conoscenze
Le vostre conoscenze e la vostra esperienza sono il patrimonio professionale più importante. Si tratta però, purtroppo, di beni con una scadenza, il cui valore diminuisce con il tempo. Le conoscenze diventano obsolete, perché si sviluppano nuove tecniche, nuovi linguaggi e ambienti. Per questo motivo è molto importante stare al passo con i tempi.
Costruire il proprio portafoglio
Investite regolarmente: dovete investire il vostro tempo per ampliare il portafoglio delle conoscenze con regolarità. Anche se si tratta di poca cosa, col tempo vi ritroverete con un portafoglio ricco di conoscenze.
Diversificate: l'informatica cambia rapidamente, una tecnologia in voga oggi magari sarà quasi inutile domani. Quante più cose diverse sapete tanto più sarete preziosi.
Gestite il rischio: esistono tecnologie che imparandole oggi rappresentano un grosso rischio (perché magari sono di nicchia e poco utilizzate), ma che un domani potrebbero portarvi un alto guadagno. Così come esistono tecnologie a basso rischio, ma a scarso guadagno. Occorre bilanciare il tempo che avete a disposizione nell'investire su entrambi i campi.
Comprate basso - vendete alto: imparare una tecnologia emergente può essere rischioso, ma in futuro potrebbe portarvi grandi guadagni.
Rivedete e riequilibrate: questo è un settore molto dinamico. Una tecnologia che fino a ieri è stata poco interessante, magari oggi ha ricevuto tutta una serie di aggiornamenti che l'hanno portata alla ribalta.
Obiettivi
Ecco qualche suggerimento per ampliare il vostro portafoglio di conoscenze:
Imparate almeno un nuovo linguaggio ogni anno: linguaggi diversi risolvono gli stessi problemi in modi diversi. Imparando approcci diversi potete allargare il vostro modo di pensare.
Leggete un libro tecnico ogni trimestre: i libri tecnici sono scritti da persone con esperienza, che, come te, hanno dovuto affrontare diversi problemi durante la loro carriera. Questi libri sono una preziosa fonte di conoscenza.
Leggete anche libri non tecnici: i libri non tecnici possono essere una grande fonte d'ispirazione e conoscenza, perché aiutano a vedere il lato umano delle cose.
Seguite i corsi: cercate corsi interessanti che vi aiutano a imparare un nuovo linguaggio o una nuova metodologia.
Partecipate attivamente nelle community: partecipate attivamente alle community dedicate alla programmazione. La condivisione e il confronto rappresentano il modo migliorare per imparare.
Sperimentate con ambienti diversi: se fino a oggi avete utilizzato Windows, giocate un po' con Unix a casa. Se fino a ieri avete utilizzato un IDE, oggi provatene un altro.
Rimanete aggiornati: ogni giorno dedicate qualche minuto del vostro tempo alla ricerca di articoli di blog. In qualcuno di questi articoli potreste trovare la soluzione al problema che vi sta tormentando da giorni.
È importante continuare a investire: non importa se la tecnologia che avete imparato la userete mai in un progetto, il processo di apprendimento amplierà comunque la vostra capacità di pensare.
Occasioni di apprendimento
Quando qualcuno vi fa una domanda e non sapete la risposta ammettetelo tranquillamente, ma non fermatevi lì. Prendete come una sfida personale trovare la risposta. Cercatela in rete, chiedete aiuto a un collega o a qualche professionista sul Web. Solo così amplierete la vostra conoscenza.
Pensiero critico
Pensate criticamente a quello che leggete e sentite, non prendete come valore assoluto tutto ciò che vi viene detto. Ci sono molti fanatici che danno risposte spacciandole per regole, così come ci sono produttori che cercano di presentare la propria libreria o framework come la migliore in assoluto.
Comunicate!
Un altro aspetto importante nella vita quotidiana dello sviluppatore è la comunicazione. Ogni giorno partecipiamo a riunioni, comunichiamo con i nostri clienti e ci confrontiamo con i nostri colleghi. Per questo motivo è molto importante saper comunicare bene le cose.
Dovete aver chiaro che cosa volete dire
Prima di scrivere un documento tecnico, di partecipare a una riunione o di parlare con un cliente, dovete aver ben chiaro ciò che volete dire. Scrivete una scaletta di cose da dire e di come dirle e poi chiedetevi: "Così riesco a far capire ciò che voglio dire?". Perfezionatela finché non rispondete con un sonoro "sì".
Dovete conoscere il vostro pubblico
Prima di affrontare un argomento dovete avere ben chiaro a chi vi rivolgete. Se avete di fronte una persona non tecnica e iniziate a parlare dei pregi tecnici che ha una determinata tecnologia, quella persona probabilmente non capirà nulla. Fatevi queste domande prima di preparare un argomento, così da comprendere meglio il vostro pubblico:
Che cosa volete che apprendono?
Qual è il loro interesse per ciò che avete da dire?
Quanto sono tecnici?
Quanti dettagli vogliono sapere?
Come potete motivarli ad ascoltarvi?
Scegliete il momento giusto
Fate in modo che quello che dite sia rilevante per il suo contenuto, ma anche per il momento in cui lo dite. A volte basta una domanda semplice: "È un buon momento per parlare di...?"
Che siano di bell'aspetto
I documenti che scrivete, oltre a essere chiari a livello di contenuto, devono essere presentati bene. Usate dei fogli di stile per presentare il contenuto, controllate l'ortografia e rileggete più volte ciò che avete scritto.
Coinvolgete il vostro pubblico
Oltre a saper parlare dovete saper anche ascoltare. Quando parlate a un pubblico fate domande, ascoltate ciò che hanno da dire e raccogliete feedback. In questa maniera la conversazione risulta meno noiosa e più interattiva.
Rispondete alle persone
Quando qualcuno vi fa una domanda o scrive qualcosa rispondete sempre alla conversazione, basta anche un semplice "OK". In questa maniera informate l'altra persona di aver ricevuto e recepito il messaggio.
Riepilogo
Decidete cosa volete dire
Identificate il vostro pubblico
Scegliete il momento giusto
Date alla comunicazione un bell'aspetto
Coinvolgete il vostro pubblico
Imparate ad ascoltare
Rispondete alle persone
Last updated
Was this helpful?