C'è chi mi ha chiesto di cosa ho parlato nella Keynote del lancio di Visual Studio 2010 a Bucarest e quindi ho pensato di bloggarlo.
Ho parlato di come si è evoluto lo sviluppo del software in tutti questi anni, un discorso a me molto caro. Sono partito dalle foto delle scatole dei miei compilatori (C 5.1 per DOS, MASM 5.1, e numerosi altre scatole fino a quelle di VC++6.0), in cui la pratica di sviluppo era sostanzialmente priva di ciclo di vita dell'applicazione, anche grazie alla semplicità architetturale della soluzione. Poi sono passato al mismatch che esiste tra la richiesta attuale di avere software con standard qualitativi da linea di produzione industriale nonostante il mestiere dello sviluppo software sia ancora artigianale, e naturalmente ai DSL come naturale evoluzione dello sviluppo software verso l'industrializzazione.
Il passo successivo è stato di sottolineare la grossa illusione che il deploy dell'applicazione sia un traguardo mentre il ciclo di vita dello sviluppo sia una spirale infinita in cui il buon design e la corretta architettura sono fondamentali. Con una domanda retorica ho chiesto chi fosse così coraggioso di fare un upgrade su un sistema che ha una cattiva architettura, nonostante le batterie di test fossero tutti positivi. Nella vita reale non ho trovato coraggiosi ma solo incoscenti.
Questo argomento mi ha dato modo di sottolineare che il valore del sorgente è un falso mito. Il valore più alto sono la progettazione e il servizio perché gli spaghetti-code sono spazio sprecato su disco.
D'altra parte creare buone architetture è pregevole ma può anche essere non praticabile. Per poter realizzare buone architetture in tempi accettabili è necessario avere a disposizione strumenti efficienti che sono un anello fondamentale nello sviluppo del software. Strumenti come Visual Studio 2010 con la generazione del codice, i grafici delle dipendenze, l'architecture explorer, oppure TFS2010 con i nuovi gated check-in e i test automatizzati sono ciò che rendono possibile mettere in pratica le architetture software che altrimenti rimarrebbero solo buoni progetti. Un esempio di tutto ciò sono i DSL che, senza adeguati strumenti, non sono una soluzione realistica adottabile in uno scenario pratico.
Non poteva naturalmente mancare a tutto questo un diretto riferimento alla sicurezza che deve essere parte integrante del ciclo di vita dello sviluppo a partire dall'architettura. Lo strumento in questo caso è il template di TFS2010 sul Security Development Lifecycle [SDL] (che arriverà molto presto), e i tool per la creazione dei Threat Model.
A causa di problemi tecnici ho potuto mostrare solo la demo sui test. Sono partito dal nuovo Test Manager 2010 pianificando un nuovo test manuale su una applicazione web dove non si vuole che siano specificate quantità negative. Una volta inserite le istruzioni testuali per il tester, sono andato nella sezione test e ho avviato il test manuale specificando di voler registrare le "action". Il Test Manager 2010 è infatti in grado di fare hooking sul DOM di un browser (anche di Winform e WPF e a breve Silverlight) e registrare tutte le azioni eseguite dall'utente.
Il passo successivo è stato di aprire il work item associato a questa registrazione da Visual Studio e inserire dal codice una "assert" usando un tool che mi permette di scegliere la textbox da cui leggere il valore da confrontare. Lo strumento ci permette di scegliere visualmente la TextBox e generare il codice della "assert" con il valore desiderato (nel mio caso pur essendo stata inserita una quantità negativa, deve essere mostrato il valore "1" di default).
Una volta generato il codice ho fatto girare il test ... ed è fallito ;-) perché nel cart era già presente la quantità precedente (2) che non corrispondeva a uno. Grande (attesa) risata e stupore del pubblico e fine della sessione :)
Il mio feeling è stato positivo, nonostante i problemi tecnici ho cercato di essere giocoso e divertente e ho sentito più volte la platea ridere. Credo che il messaggio sia arrivato e spero che abbiano apprezzato il grande lavoro di preparazione necessario.
Voglio ringraziare tutti gli intervenuti ieri al workshop dove ho tenuto la sessione sulle novità di WCF 4.0 e WF 4.0. Spero che la stanchezza accumulata nel viaggio da Bucarest non si sia colta.
Sono realmente contento delle novità in Workflow 4.0 e WCF 4.0. Datemi solo il tempo di riprendermi e pubblicherò al più presto le demo che ho mostrato durante questa lunga carrellata di novità che ci permetteranno di semplificare e migliorare le nostre applicazioni.
Fantastica anche la serata a cui non ho potuto rinunciare con tanti amici delle community con cui condivido la mia passione per queste tecnologie.
Alla prossima!
I am just back from my trip. On May 19 I had the pleasure to launch Visual Studio 2010 family in Bucarest. Giving the keynote in front of 400 strong developers, television and photographers was really exciting.
I wish I had the time to make this post yesterday, but I leaved from Bucarest at 4:30am (3:30 Italian time) in order to be in Milano for the UGIdotNET event where I talked yesterday about the new features in WCF 4.0 and WF 4.0.
My passion drove me and my keynote from the early days of programming in C language under DOS through new modern tools that let the developer express his most hidden design dreams.
There were some technical problems with the demo Virtual Machine that changed a little bit the presentation's outline but this could not change the essential concepts of my presentation.
I want to express a big thank you to all the people who attended the conference for the warm welcome, Microsoft Romania for the invitation all the other speakers for their support, and Adrian that has been my Cicerone through the beautiful buildings of Bucarest.
See you soon!