Storia di un rilascio

E' un po' di tempo che non scrivo nel mio blog. Questo è dovuto principalmente al fatto che ultimamente ho avuto molto da fare (e ne avrò fino a fine anno) con un progetto per un grosso cliente (una multinazionale nel ramo farmaceutico). L'obiettivo del mio lavoro è stato quello di creare i presupposti architetturali per un'applicazione enterprise, che, basandosi su un'interfaccia smart-client e integrandosi con il contesto dei servizi aziendali, fornisse supporto alle operazioni di pianificazione e conduzione delle sperimentazioni di laboratorio.

In questo progetto il mio ruolo è stato, manco a dirlo, quello dell'architetto. Ho coordinato un team di 5 persone sugli aspetti tecnici legati allo sviluppo dell'applicazione e sono stato affiancato da due persone dell'azienda, di cui una era il capo progetto e l'altra era il referente tecnico interno (che mi succederà all'inizio del nuovo anno).

Il team di sviluppo, come detto, è composto da 5 ragazzi, ciascuno proveniente da esperienze molto diverse tra loro, chi ex-developer java, chi ex-sviluppatore python, chi proveniente dal C++ e da VB6, chi developer web con ASP e ASP.NET, chi ex-programmatore in ambiente Dynamics. Insomma, all'inizio del progetto, nessuno era un espertone di applicazioni enterprise in ambito .NET, in particolar modo utilizzando .NET Framework 2.0/3.0 e interfaccia smart-client. Questo avrebbe potuto rappresentare un problema, non lo nego, ma a distanza di tempo posso dire che non è stato così.

Per il progetto, iniziato nel lontano mese di luglio, in fase di start-up furono fissate una serie di date per i rilasci intermedi dell'applicazione. Il primo rilascio (Prototipo 1) era previsto per il 30 novembre scorso, ovvero venerdì scorso. Che dire? Ce l'abbiamo fatta, ma è stata dura!

Il progetto è partito un po' in sordina, i requirement non erano chiari e non si riusciva a far decollare le attività di sviluppo. Questo periodo di incertezza si è protratto però per molto, troppo tempo, dal momento che gli analisti americani non riuscivano a fornire informazioni che non variassero nell'arco delle 24 ore. Come team abbiamo trascorso questo tempo definendo gli standard da adottare nello sviluppo, le pratiche operative e la suddivisione dei compiti, preparando l'ambiente di sviluppo e di debug, nonchè approfondendo alcuni aspetti tecnici tramite lo sviluppo di mini prototipi funzionali e facendo formazione tecnica.

Il risultato è stato che a fine ottobre non avevamo ancora una soluzione su cui lavorare e la prima scadenza si stava avvicinando inesorabilmente. Finalmente, dopo una lunga attesa, nella prima settimana di novembre abbiamo avuto il via libera da parte degli analisti e abbiamo potuto cominciare a lavorare su un insieme di requirement sufficientemente stabile da permettere di definire una soluzione applicativa coerente. Inutile dire che, per come erano andate le cose, pochi avrebbero scommesso sul rilascio del primo prototipo entro la data prevista.

E invece il 30 novembre abbiamo rilasciato la versione 1.0.2.20. In venti giorni abbiamo creato una ventina di build, andando a soddisfare tutti i requisiti funzionali previsti per il primo rilascio. Non è stato facile coordinare le attività, ma personalmente sono riuscito a dare il giusto ritmo, affiancando nello sviluppo a turno ciascuno dei ragazzi del team. Ad oggi abbiamo una soluzione che si compone di più di 600 tipi, considerando anche le classi di unit testing. Da parte mia non mi sono limitato a coordinare, ma ho partecipato attivamente allo sviluppo, realizzando tra l'altro un mini service bus basato su WCF (un layer di integrazione out-of-process) per interoperare coi servizi aziendali del cliente.

Sono molto soddisfatto del lavoro svolto e molto orgoglioso dei ragazzi. Il team ha retto bene, anche perchè so di essere una persona molto esigente. Devo dire però che, rispetto al passato, ho imparato ad accettare le imperfezioni nel codice, adattandomi alla situazione e lasciando un po' più di libertà agli sviluppatori di "sbagliare" e di non seguire ciecamente i dettami architetturali. Proprio per questo, nel prossimo mese avremo da fare un po' di refactoring per consolidare il codice, ma già la versione attuale non è male, considerando le premesse e i tempi di sviluppo.

Ciascuno dei ragazzi ha dato il massimo, sono davvero soddisfatto del modo con cui hanno affrontato la situazione. In rigoroso ordine alfabetico, Alessandro, Lorenzo, Luca, Marco e Patrick si sono dati da fare come poche volte ho avuto modo di sperimentare. Se il progetto è stato rilasciato rispettando lo scheduling e contro ogni previsione, il merito è soprattutto loro... Del resto un architetto da solo è come un allenatore senza squadra: non vincerà mai una partita!

Questa esperienza mi ha insegnato molto, non è facile fare i progetti con persone non espertissime, ma non è impossibile. Anche se sulla carta le esperienze delle persone del team non erano delle migliori, la loro voglia di fare, di imparare e l'impegno hanno colmato il gap, ottenendo un risultato al di là delle aspettative. Come un capitano non può scegliersi i soldati per combattere le sue battaglie, così come architetto non sempre ho la possibilità di scegliermi gli sviluppatori con cui fare i progetti dei clienti. A mio avviso, questa è la vera difficoltà del mio lavoro, al di là degli aspetti tecnici.

A fine mese lascerò il progetto in mano al referente tecnico interno e il team dovrà provare a "camminare" da solo, senza di me. Il mio compito presso il cliente si è esaurito, ma non posso non dire che mi dispiace lasciare un gruppo così affiatato e agguerrito. Grazie ragazzi, siete stati grandi!

Nella stessa categoria

Commenti
consulenteNonEspertissimo72 scrive:
Storia di un rilascio

quante sagge parole... grazie a dio esistono ancora vecchi capitani coraggiosi in grado di accompagnare noi poveri inesperti alle soglie di un mondo migliore
14/02/2008 ore 14.44 | 1 risposta
»»»» rickyvr scrive:
RE: Storia di un rilascio

I primi ad essere contenti sono i componenti del team per due motivi:

- hanno occasione di imparare perchè c'è qualcuno che si prende la briga di insegnare loro (sempre che lo vogliano);

- si trovano a lavorare meglio e questo crea un clima più disteso, anche se magari le scadenze sono assillanti e le richieste impossibili.

Affrontare i problemi come team è sempre un approccio vincente rispetto al fatto di affrontare le cose da soli. Lavorare in team peraltro non è una cosa semplice. Però saper condurre un team in modo proficuo è addirittura una cosa difficilissima. Dalla mia esperienza posso dire che di gente che dirige team di sviluppo in giro è pieno il mondo, di gente che vorrebbe farlo pure, ma di gente che lo sa fare davvero, ce n'è poca!

Ciao, Ricky.
14/02/2008 ore 15.29
pinguino scrive:
Storia di un rilascio

Davvero una bella avventura, sei grande Ricky!
22/12/2007 ore 9.32
novecento scrive:
Storia di un rilascio

Firmo la "petizione" di Emanuele, raccontaci!
(sono curioso di sapere l'aneddoto che c'è dietro ad un tuo passato messaggio personale su messenger "SOA? si vabbè, arrivederci" !)
03/12/2007 ore 10.47 | 1 risposta
»»»» rickyvr scrive:
RE: Storia di un rilascio

"SOA? si vabbè, arrivederci" era un nick che e' apparso un po' di tempo fa sul messenger ad indicare il fatto che, nonostante esitesse un ESB presso il cliente, in realta' non veniva utilizzato!!! Alla mia richiesta di usarlo, mi e' stato detto di no!

Da qui e' sorta la necessita' di costruire un integration layer custom per integrare l'applicazione coi servizi aziendali.

Ciao, Ricky.
03/12/2007 ore 15.57
Emanuele DelBono scrive:
Storia di un rilascio

Ebbravo Rick! Complimenti.
Perchè non scrivi un articolo raccontando i problemi incontrati e come li hai risolti. E' un tema che mi interessa. :-)

A presto
03/12/2007 ore 9.35 | 2 risposte
»»»» rickyvr scrive:
RE: Storia di un rilascio

Da questa esperienza ho raccolto un po' di idee che potrei condividere... Magari qualche post sull'argomento ci puo' scappare!

Ciao, Ricky.
03/12/2007 ore 15.58
Emanuele DelBono scrive:
RE: Storia di un rilascio

L'hai detto :-)

Quindi non ci resta che aspettare...
03/12/2007 ore 18.01

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.

© 1998-2008 - Ricky.NET - Il blog di Riccardo Golia

TagCloud
BLOG INFO
  • Post: 165
  • Commenti: 104
  • TrackBacks: 64
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom OPML

MVP
CATEGORIE
I PIÙ LETTI DEL MESE
IN EVIDENZA