Blog | All

11/09/12

La giornata dello sviluppatore

Come programmatore sono rimasto positivamente colpito da quest’articolo. Quali sono le attività principali nella giornata dello sviluppatore e che percentuale di tempo viene dedicata alle stesse? Nessun programmatore dedica il 100% del suo tempo a scrivere righe di codice! E’ chiaro (ed è anche buona cosa) che non sia così…

Le attività principali sono quindi:

  • Analisi del codice: il tempo che viene dedicato a questa attività da parte dei bravi programmatori può andare dal 50% al 80% dell’intera giornata lavorativa. E la cosa non mi stupisce, anch’io mi comporto così.
    Se si vuole scrivere del buon codice ed ottenere un’applicazione elegante e funzionale non si possono semplicemente incollare dei pezzi di codice già scritto e collaudato, ma serve anche saper “incastrare bene i pezzi tra loro”, valutando per bene anche i possibili incastri. E perciò un’attenta analisi e una perfetta conoscenza del codice preesistente sono indispensabili.
  • Progettazione: anche questa è un’attività indispensabile. Farla bene o male può significare un grosso investimento, come una grossa perdita di tempo. Per progettare del buon software (soprattutto se si prevedono un lungo ciclo di vita e future evoluzioni) occorre pensare “a lungo termine”.
  • Verifica: anche se molte aziende hanno degli interi settori dedicati al testing e al controllo di qualità, il primo lavoro di testing deve partire dal programmatore stesso. I test possono essere di vario tipo: di unità, di integrazione, generativi, di accettazione ecc. e nessuno di questi andrebbe trascurato. La riuscita di un buon progetto dipende anche dall’esecuzione di tutti i i tipi di test sopra citati, senza esclusioni, sia automatici, sia manuali.
  • Scrittura del codice: ovviamente non può mancare, è una fase essenziale! Ma ormai credo che sia definitivamente superata la vecchia concezione degli sviluppatori pagati un “tot a riga di codice”. Non dimentichiamo che scrivere codice può anche voler dire aggiungere cattivo codice ad un progetto. Per questo motivo questa fase segue e dipende da tutte le precedenti!

Leggi anche l’articolo originale.

06/06/12

Le ragioni per diventare Freelancer

Le ragioni per diventare freelancer possono essere molteplici.
Sicuramente la principale è legata al “carattere” della persona: per certi versi si può dire che freelancer si nasce. Di sicuro bisogna essere come minimo persone molto indipendenti e motivate.
Una seconda ragione invece credo sia più semplicemente legata ad un fatto di opportunità: freelancer si nasce, ma spesso il momento in cui si decide di farlo veramente ti capita. E così è accaduto a me…

Nel seguito 2 articoli prendono in considerazione pro e contro dell’essere freelancer.

Pro:

  • Si può decidere quando e dove lavorare (e potenzialmente avere anche una migliore qualità di vita, anche se non sempre è così…)
  • Si può scegliere su cosa lavorare (questa “libertà” rappresenta il più grande vantaggio)
  • Non si ha un boss (ovvero si è il boss di se stessi)
  • Si può scegliere il proprio team di lavoro
  • Potenzialmente si può guadagnare di più (a patto di essere bravi ovviamente!)
  • Si possono eliminare i “cattivi clienti”

Contro:

  • Il lavoro non è sempre garantito (bisogna darsi da fare anche nel marketing)
  • Di conseguenza, le entrate mensili non sono sempre garantite
  • Potenzialmente si può guadagnare di meno (se non si è abbastanza bravi nel marketing)
  • Bisogna essere costantemente alla ricerca di nuovi clienti e nuovo lavoro
  • Bisogna gestire la propria contabilità

Leggi anche gli articoli originali: 1 e 2

18/04/12

6 Modi per ridurre lo Stress

Lo stress lavorativo è certamente inevitabile, ma esistono degli accorgimenti in grado di ridurne il livello. Lo stress prolungato può portare a disturbi fisici più o meno gravi, come mal di testa, tensioni e dolori muscolari, affaticamento, mal di schiena e di stomaco, insonnia, ansia, cali di concentrazione e attenzione, irritabilità, depressione ecc ecc.
Meglio quindi non sottovalutarlo e prendere provvedimenti prima di giungere alla saturazione!

Come fare dunque a tenerlo a bada? Di seguito alcune tecniche:

  • Crearsi un’oasi: nel mondo odierno si lavora, o quanto meno si è reperibili, 24 ore al giorno x 7 giorni! E ciò sicuramente genera una grossa quantità di stress. Una buona abitudine per esempio è quella di spegnere il telefono (almeno) un’ora prima di andare a letto e riaccenderlo un’ora dopo svegli. Costerà magari un po’ di fatica all’inizio, ma se ne noteranno presto i benefici.
  • Identificare i “punti salienti”: spesso ci capita di aver a che fare con una lista lunghissima di attività da svolgere; un buon modo è quello di ordinarle in base alla difficoltà e/o all’importanza ed affrontare prima, e quindi archiviare, le più facili e importanti. Spesse volte si può ottenere l’80% dei propri obiettivi facendo il 20% del lavoro! Con un conseguente alleggerimento generale, anche in termini di stress.
  • Rinegoziare il proprio carico di lavoro: molte volte il lavoro ci viene imposto dal nostro capo o dai nostri clienti e le aspettative nei nostri confronti rischiano di essere davvero troppo alte. Una buona dose di “realismo” in termini di tempo e risorse a propria disposizione è ciò che deve, eventualmente, farci sacrificare del lavoro.
  • Spegnere le news: le notizie sono spesso portatrici di emozioni negative (rabbia, paura, ansia, frustrazione). Pensare di potersi distrare sul lavoro (o anche dopo) seguendo le news è un errore: questo tipo di attività non è in grado di fornire distrazioni nemmeno momentanee. Meglio lasciar perdere…
  • Disconnettersi dall’incontrollabile: sfortunatamente non siamo in grado di controllare tutto. Ci sono eventi come l’economia, il traffico, la politica, le emozioni degli altri, le decisioni dei clienti, ecc. che sono totalmente fuori dal nostro controllo! E se è sensato, analizzarli di tanto in tanto per essere preparati a gestirli, è di sicuro un non senso, oltre che un grande spreco di energie, preoccuparsene di continuo!
  • Evitare le persone stressate: quando siamo stressati non c’è nulla di più dannoso che frequentare altre persone stressate! Purtroppo lo stress e l’ansia tendono a trasmettersi a macchia d’olio e finchè non stiamo perfettamente bene è decisamente meglio evitare certe persone. Anche la sensazione di calma e serenità tende a trasmettersi per fortuna una volta che si è consolidata; pertanto si potrà anche tornare alle solite frequentazioni nel seguito, una volta debellato lo stress.

Leggi anche l’articolo originale.

04/04/12

Lavorare in multitasking

I ritmi lavorativi di oggi e l’eccesso di tecnologia ci costringono a lavorare sempre più in multitasking, ovvero ad occuparci di più cose allo stesso tempo. Ora, anche se si è allenati, questo approccio alla lunga si può rivelare poco produttivo, quando non dannoso per l’organismo stesso.

Controllare e-mail, chat, news, smartphones, gestire informazioni, ricevere telefonate, o più in generale essere sempre reperibili sono cose ormai comuni che però finiscono col distoglierci di continuo dall’attività principale, con un conseguente sovraccarico per il cervello e un calo generale dell’attenzione…

L’ideale, specialmente per tutti i lavori che richiedono una certa intensità cerebrale, sarebbe quello di potersi dedicare ad un compito specifico per volta, dedicando il giusto tempo e la giusta intensità e quindi prendersi delle pause rigeneranti tra i vari incarichi di lavoro.

Dal punto di vista del manager è possibile a tal proposito:

  • Mantenere una certa disciplina nei meeting: orario preciso di inizio e fine, abbastanza corti da non invogliare alle distrazioni, ben focalizzati
  • Non richiedere alle persone la disponibilità continua: questo per consentire a ciascuno di dedicarsi alle proprie priorità lavorative, senza interruzioni. Può essere utile “spegnere” la mail in certi momenti della giornata, le urgenze si possono gestire con una chiamata se necessario
  • Incoraggiare le pause: offrire delle attività (passeggiate, yoga, meditazione) e luogi adatti al relax in modo che la gente possa ritemprarsi adeguatamente

Per quanto riguarda se stessi invece è bene imparare a sapersi regolare, ad esempio è sicuramente utile:

  • Fare le cose più importanti al mattino, dedicando 60-90 minuti ininterrotti di concentrazione, evitando le distrazioni al più possibile, preferibilmente in un ambiente isolato. Successivamente dedicare qualche istante di pausa al completo relax
  • Prendersi regolarmente il tempo di pianificare a lungo termine: ciò evita di dover gestire tutto come “urgenze” continue; possibilmente andrebbe fatto in un luogo tranquillo e idoneo
  • Prendersi regolarmente dei “veri” periodi di vacanza: oltre alle vacanza vere e proprie, bastano anche pochi giorni da attaccare ad un week-end, ma con regolarità.

Il principio base è che, quando si lavora, lo si fa con la massima concentrazione e quando si prendono dei periodi di pausa (o delle vacanze) siano delle vere pause! Ne guadagneranno la produttività e la salute! 🙂

Leggi anche l’articolo originale.

15/03/12

Chi è il Software Architect?

Come si può definire oggi un “Software Architect”? Il termine è molto utilizzato, ma spesso non viene inteso con la giusta connotazione e si tende a confondere il concetto di architettura del software con le tecniche di sviluppo del software a vari livelli.

Si può dire, in termini generali, che un Software Architect è colui che è in grado di avere una visione d’insieme del progetto e quindi capire (progettare, immaginare) il funzionamento dell’intero sistema.

Per essere un buon Software Architect occorre innanzitutto esperienza. Successivamente vengono evidenziati vari aspetti essenziali:

  • Definizione dell’architettura del software
    • Gestione dei requisiti non-funzionali (qualità del sistema)
    • Definizione dell’architettura (come risolvere il problema?)
    • Scelta delle tecnologie (gestione di rischi, complessità, costi)
    • Valutazione (astratta) dell’architettura
    • Capacità di interoperabilità dell’architettura (nei confronti di altri sistemi esistenti)
  • Realizzazione dell’architettura, occorrono:
    • Piena consapevolezza e visione del disegno finale (bisogna poter seguire tutto il ciclo di sviluppo per portare il progetto a compimento con successo)
    • Leadership (responsabilità, capacità decisionali e tecniche)
    • Coaching e mentoring (per supportare i vari membri coinvolti nello sviluppo)
    • Qualità (non solo nella scelta dell’architettura, ma in tutto il processo! Revisioni e analisi del codice, applicazione di standard e principi di design, continuous integration, test automatici di unità, misurazione del code coverage…)
    • Progettazione, sviluppo, testing (anche se non necessariamente nelle attività di tutti i giorni, il bravo Software Architect deve prendere parte al processo di sviluppo)

Leggi anche l’articolo originale.

02/03/12

Migliorare le Performance di GlassFish

jvm-tuning-viewEcco un articolo piuttosto tecnico, ma molto ben fatto e dettagliato sulla taratura delle performance per  l’Application Server di riferimento nel mondo Java, Glassfish.

L’articolo inizia con alcune best practise comuni del mondo JavaEE (multi thread model, gestione delle sessioni HTTP,  caching dei beans, gestione dei pool e delle transazioni) per poi divenire più specifico. In particolare vengono trattati diffusamente:

  • Ottimizzazione del Server
    • Deployment
    • Logging
    • Web Container
    • EJB Container
    • Network Listener
    • Thread Pool
    • Resources
  • Ottimizzazione della JVM
  • Ottimizzazione del Sistema Operativo
    • Parametri di rete
    • Numero massimo di files aperti
    • TCP/IP
    • Gestione del timing (orologio di sistema)
    • Network Interface Card (NIC)
  • Test di un caso pratico (con grafici)

Leggi anche l’articolo originale.

error: