Sei un tecnico che si dedica alla programmazione con grande passione? I tuoi occhi passano 12 ore davanti a un monitor e hanno bisogno di collirio ogni 2 ore per non rimanere bloccati? Bene, allora questo è il post per te. Infatti nonostante la passione sia il requisito imprescindibile per poter fare questo e probabilmente ogni altro lavoro in ambiti professionali di un certo calibro bisogna fare attenzione ad alcuni aspetti che possono fare la differenza.

1) Scrivi buon codice

laptop angel
Beh, sembra scontato, no? In realtà molte volte l’ottimo è nemico del bene.

KISS (Keep it simple, stupid!)

Chi diventa il cosiddetto “guru” può cominciare a soffrire di alcune sindromi che se non gestite diventano controproducenti. Ad esempio il super genio del software può cominciare a sconfinare nell’over designing, ovvero nel progettare software molto complesso che prende in considerazione troppi parametri e requisti che non sono richiesti o desiderati dal cliente. Ricordati sempre che il software migliore è quello che copre i requisiti con la massima semplicità possibile, pur avendo la giusta flessibilità per poter eventualmente in futuro essere esteso senza grossi problemi. Non è necessario fare sfoggio della propria bravura partorendo codice ultra complesso che solo tu riesci a capire, meglio avere sorgente chiaro, coinciso, facile da leggere e manutenere: tutti te ne saranno grati!

Picasso? No grazie!

Ah: e ricordati di essere rispettoso di eventuali standard tecnici del team di cui far parte: essere professionisti in questo ambito non implica fare gli artisti o le dive, ma fare crescere insieme un prodotto di valore. Se pensi che le linee guida possano essere in alcuni ambiti controproducenti parlane con gli altri componenti del gruppo per arrivare insieme ad una definizione di standard migliori.

2) Tieniti aggiornato

trainingSoprattutto nel nostro paese è diffusa la cultura che l’istruzione necessaria a una persona per avere successo nella vita sia quella scolastica. Se pensi qualcosa di tipo “Mi sono preso una laurea in Ingegneria Informatica, ora sarà tutto in discesa” sei pericolosamente lontano dalla verità. Quello che invece è richiesto (sempre più) è tenersi aggiornati su base giornaliera sui nuovi strumenti e tecnologie: non farlo può portare alla “rottamazione professionale” in pochi anni. Il lavoro dello sviluppatore è, nel bene e nel male, un lavoro complesso e l’auto formazione è una delle attività che non dobbiamo mai tralasciare, sia che sia l’azienda a darcene modo, sia che l’impegno ricada nel nostro tempo personale. Leggi blog, partecipa ad eventi, leggi libri, cerca soluzioni e scambia punti di vista su community professionali: sperimenta il più possibile. E’ un duro lavoro che richiede passione e impegno, ma è indispensabile: la formazione è come le pillole per la pressione: una volta che cominci a prenderle non puoi più smettere.

3) Dai valore alle persone

peopleQual è la cosa con cui interagisci di più durante il tuo lavoro? Se hai risposto “Il computer” hai sbagliato! In realtà non è neanche una cosa: sono le persone. E’ stato detto infatti che chiunque lavori in una ditta di software deve soprattutto sapere fare Peopleware. Nessun software a livello professionale è più realizzibile da una singola persona, tutti lavoriamo in team. La produttività non è additiva in modo lineare: se sono produttivo 1 e lavoro insieme ad un’altra persona che è produttiva 1 insieme potremmo produrre anche 3, ma anche 1 se non ci fasiamo correttamente. Lavorare in team è importante non solo perché costuituisce una frase d’effetto nel Curriculum (anche se ormai trita), ma perché ci consente di imparare molto meglio e più in fretta di quanto potremmo fare da soli e di produrre cose che come singoli non ci potremmo nemmeno immaginare. Tuttavia bisogna saper tenere a bada manie di protagonismo e invidia, fare molta attenzione alla comunicazione, essere sempre duri coi problemi ma morbidi con le persone ed essere disponibili e generosi con il proprio tempo, che è diventato ormai la valuta più rara e preziosa: prova a condividere le tue conoscenze e a non lesinare il tempo quando qualcuno del tuo team ti chiede una mano e vedrai come la tua autorevolezza crescerà. In sostanza: se un comportamento produce un buon effetto sul gruppo in cui lavori, stai sicuro che il benificio ci sarà anche per te: perseguire obiettivi egoistici è lesivo nel lungo periodo. Sembra una questione morale? In realtà è molto più scientifica di quanto non sembri, anzi…è dimostrabile.

4) Sii parte integrante della tua organizzazione

organizationSupponiamo che tu sia un ottimo sviluppatore e che il team in cui lavori ti rispetti. E il resto dell’organizzazione? Come vede il tuo lavoro? E, domanda non proprio scontata: sanno qual è il tuo lavoro? Molti bravi tecnici sono convinti che questo aspetto non sia assolutamente rilevante, ma ritengo che sia uno sbaglio. Se la carriera professionale è uno dei proprio obiettivi (e spesso accade che o si scende o si sale, è raro rimanere stazionari) allora bisogna che ti poni alcune domande. Ad esempio: “ho chiaro a chi devo rivolgermi in determinate circostante?” “Chi è il responsabile delle risorse umane?”, “I miei obiettivi di crescita professionale sono chiari e condivisi?”. Se pensi che il tuo lavoro sia scollato dal management dell’azienda questa non è sicuramente una buona notizia, ma puoi fare molto per cambiare la situazione, chiedendo feedback sullo stato della tua crescita professionale e su quello dell’azienda stessa. Ricorda che una ditta software ha comunque una serie di figure non tecniche con le quali dovrai ricalibrare il tuo modo usuale di comunicare, se vuoi avere più probabilità di vedere comprese e ascoltate le tue esigenze. Non avere paura di sembrare troppo curioso o che si pensi che sei un arrampicatore: è un dovere verso te stesso perseguire la crescita professionale e impegnarsi tantissimo è solo una parte di come ottenerla; se ricevi la risposta “Non sono cose che ti interessano, pensa a programmare” sii grato: hai ricevuto comunque un feedback chiaro sulle tue prospettive di carriera in quell’azienda.

Riferimenti

37 Posts

Sono uno Scrum Master e Project Manager i cui skill tecnici sono focalizzati al momento sullo sviluppo di applicazioni Java EE su IBM Websphere 7.0 utilizzando JSF (RichFaces), JPA (EclipseLink) ed EJB3. Presso OmniaGroup ricopro il ruolo di Training Manager: seleziono il personale tecnico, mi occupo della sua crescita formativa organizzando Corsi e Workshop sia interni che esterni, molti dei quali hanno visto me come docente. LinkedIn Profile - Google+