ITALIANO ENGLISH Contatti

I miei clienti affrontano spesso progetti software complessi ed ambiziosi. Non di rado, il mio coinvolgimento nasce proprio dalla complessità del problema, dalle aspettative dell'azienda sulla qualità del risultato, dal desiderio di gestire meglio le incertezze del progetto, dalla ricerca di una risposta innovativa.
In altri casi, nasce dal desiderio di migliorare l'approccio alla risoluzione dei problemi, con interventi a livello formativo (e spesso di affiancamento sul progetto), su tecnologie, linguaggi, metodi e processi.
In genere i due aspetti si fondono, e chi si rivolge a me punta ad ottenere non solo un prodotto migliore, ma anche un team più esperto e capace.

Di conseguenza, anche se in alcuni casi i miei interventi riguardano problematiche molto specifiche, e si risolvono in pochi incontri mirati, in genere la mia collaborazione con le aziende ha un respiro più ampio. I miei interventi sono indirizzati ad aumentare le chance di successo di un progetto, di un team, dell'intera azienda.
In questi casi, il mio contributo spazia su fronti diversi:

Una collaborazione con i responsabili di progetto, per individuare i reali requisiti del sistema, ricercando uno schedule realistico che bilanci tempi, costi, qualità, e definendo insieme un piano di release incrementali, monitorando insieme i progressi, le variazioni in corsa, la necessità di cambiare alcuni obiettivi per fare leva su ciò che si impara durante lo sviluppo, o per seguire meglio le necessità di business. Sapendo che le incertezze esistono, ma possono essere ridotte e gestite.

Un lavoro costante con gli sviluppatori, per arrivare sia ad una solida architettura del sistema che ad un codice migliore, con incontri periodici e mirati di design e di codifica. La fase di progettazione è sempre stata, e rimane, una mia grande passione, dove posso far convergere le tante, differenti esperienze nei settori più svariati, unendo le idee più consolidate con quelle più moderne, ricercando una visione chiara e concettualmente integra della struttura interna del prodotto.

Spesso, nel caso di aziende "di settore", lavoriamo insieme alla progettazione di componenti e framework domain-specific, che rendano più rapido e robusto lo sviluppo di prodotti simili (product families).

In molti casi, l'organizzazione lavora anche su prodotti legacy: in queste situazioni è utile intervenire sia con strumenti automatici di analisi del codice, sia con un lavoro di refactoring, dove la guida di un progettista esperto può fare una grande differenza.

Nello sviluppo di sistemi embedded / real-time, partecipo spesso alla progettazione di sistema, puntantdo ove possibile ad un co-design hardware-software per raggiungere la massima efficienza ed economia di sviluppo. Naturalmente, i miei interventi si focalizzano principalmente sugli aspetti software, mantenendo però sempre la visione di "system design".

Quando il cliente realizza parti del prodotto in outsourcing con terze parti, definisco spesso insieme al cliente stesso ed ai suoi fornitori dei criteri di qualità interna, basata su precise metriche, che evitino il consueto problema di ritrovarsi un prodotto "che funziona", ma che è pressochè impossibile da manutenere. Spesso, definiamo anche un programma di design e code review, per entrare in uno spin positivo che aumenti la probabilità di ottenere dai fornitori un prodotto di qualità, e che fornisca elementi concreti in base ai quali confrontare i risultati di fornitori diversi.

Non di rado, da queste collaborazioni nascono spunti sul miglioramento del processo di sviluppo, su specifiche pratiche o strumenti da adottare (come le tecniche di stima dei bug residui), e così via. In molte occasioni, troviamo utile ricavare lo spazio per una formazione mirata, sempre con l'obiettivo di migliorare il risultato finale.
La formazione è stata a lungo uno dei filoni principali della mia attività professionale. Negli ultimi anni ho tuttavia ridotto il tempo dedicato a questo tipo di impegno. Le tecnologie sono spesso troppo instabili e di vita breve per giustificare un investimento formativo importante, e su una spinta pseudo-agile molte aziende hanno abbandonato la strada dei fondamenti più solidi. Trovate comunque una descrizione piuttosto dettagliata del mio approccio formativo e dei miei corsi "storici" nelle pagine dedicate alla formazione del mio "vecchio" sito.

Dott. Carlo Pescio - Via Bernardo Forte 2-3 - 17100 Savona ITALY - Tel 019-9246391 - Fax 019-854761 - P.I. 01098560095