Metodologie
Applico ove posso i principi dell’Ingegneria del Software. Ritengo che il design sia alla base di ogni progetto e sulla base di questa convinzione mi avvalgo delle moderne tecniche di progettazione del software.
Amo i design pattern. I design pattern sono a mio avviso uno degli strumenti più importanti di uno sviluppatore professionista (dopo il suo intelletto). Conoscere i design pattern significa avere il know how necessario per affrontare e risolvere problemi complessi attraverso soluzioni che permattono di incrementare l’affidabilità, la robustezza e la manutenibilità dei sistemi realizzati.
Le moderne soluzioni software si avvalgono sempre più di tecnologie open source, anche, ma non solo, per contenere i costi di sviluppo. Nel vasto panorama di strumenti open source a disposizione, è indispensabile sapersi orientare per indirizzare la scelta sulle tecnologie più idonee alle necessità del cliente e saperle adattare ai suoi processi aziendali e integrarle in maniera efficiente con i servizi già esistenti.
Sono in grado di elaborare soluzioni specificamente progettate in base alle esigenze del cliente e caratterizzate da standard di qualità.
Ritengo che alcuni elementi siano fondamentali per la qualità di un prodotto software.
- User experience: l’esperienza che l’utente ha nell’utilizzare il software deve essere gratificante. Ciò accade se il software è semplice e intuitivo da usare, è in grado di automatizzare le operazioni ripetitive, è di aiuto nell’esecuzione di azioni complesse, fornisce valore aggiunto nell’elaborazione dei dati, consente un’interazione gradevole uomo-macchina, consentendo in definitiva di velocizzare il lavoro.
Il fine ultimo del software è quello di minimizzare il tempo che il cliente deve spendere in attività che non fanno parte del suo core business. - Manutenibilità: le statistiche indicano che circa l’80% dello sviluppo di un software avviene dopo il primo rilascio. Ciò significa che solo il 20% è sviluppo vero e proprio, tutto il resto è manutenzione (correzione di errori, aggiunta e modifica di funzionalità, upgrade ecc.). E’ fondamentale dunque che il software venga realizzato fin dall’inizio con criteri che rendano meno onerosa possibile la successiva manutenzione, perché questo significa abbattere i costi di gestione.Questo impica maggiori capacità di design.
- Sicurezza e affidabilità: un software sicuro è un software che garantisce l’integrità dei dati, non solo da possibili attacchi esterni ma anche da eventuali errori e malfunzionamenti o da eventi inattesi come un crash di sistema. I dati su cui il software lavora sono il valore più importante, in qualunque sistema informativo, e il software deve provvedere alla loro massima salvaguardia.

