Non vince il più forte ma chi si adatta meglio

Giusto per ricordare che oggi non vince il più forte ma chi si adatta meglio e chi riesce a fare cambiamenti culturali nelle aziende:

“Avete avuto più problemi a lavorare con i giapponesi o con i tedeschi?”

“[…] La collaborazione con la Nissan è stata decisiva. La Renault ha appreso una cultura. L’attitudine ad accettare, a cercare di capire, invece di sostenere che il proprio metodo è il migliore”

Carlos Ghosn, presidente di Renault-Nissan intervistato da Quattroruote

FacebookTwitterGoogle+Share

Agile save the Queen

Recentemente mi sono imbattuto nell’ennesimo articolo introduttivo al mondo Agile dal titolo “Agile – What it is, why it works and how to do it

E’ fatto bene, riesce brevemente a riassumere alcuni tra i principali concetti e terminologie utilizzate.

Si parla di Scrum master, di team, di bad smell, di Continuous Integration, di feedback continuo e veloce, di user stories. Si parla delle tanto bistrattate retrospettive.

E fin qua non ci sarebbe motivo per dedicargli un post.

C’è un ma. Se non fosse per la parte iniziale dell’url che l’ha pubblicato: www.gov.uk

Si, il Governo del Regno Unito ha definito una “strategia digitale” per rendere i servizi transazionali della pubblica amministrazione “Digital by default”. L’obiettivo è riassunto in questa frase:

ensure that government produces services so good that people prefer to use them [in a digital form]

Per raggiungere questo obiettivo il Governo del Regno Unito ha definito uno standard su 26 punti che è necessario rispettare per essere Digital by default.

Alcuni dei requisiti richiesti sono:

  • profonda conoscenza del dominio applicativo
  • performance
  • gestione della privacy
  • security
  • 6 – costruire un prototipo funzionante usando i metodi Agili, iterativi e user-centered
  • 8 – analizzare il prototipo e garantire che il feedback degli utenti venga trasformato in feature per la successiva fase di sviluppo
  • 9 – creare un servizio talmente semplice ed intuitivo che l’utente deve riuscire al primo tentativo, senza aiuto
  • 14 – avere la capacità e gli skills tecnici per aggiornare e migliorare il servizio frequentemente
  • 17 – essere in grado di eseguire dei test end-to-end in un ambiente che replichi quello di produzione, con degli account di test e su tutti i browser e device
  • 19 – dimostrare di aver costruito un servizio che può essere migliorato ogni giorno, garantendo che il feedback degli utenti e i dati di performance siano trasformabili in attività di sviluppo
  • 25 – avere un piano di rollback
Senza il minimo dubbio il Governo ha individuato in Agile e nelle sue implementazioni SCRUM e eXtreme Programming l’insieme dei framework e delle metodologie pratiche per raggiungere tutti questi obiettivi.

320px-Government_Ensign_of_the_United_Kingdom.png

  • La centralità dell’utente fa parte del DNA di una User Story.
  • Il testing in Agile ha un tale valore che viene effettuato ancora prima di scrivere codice (Test Driven Development) e quindi non serve neanche parlarne. Unit testing, User Acceptance Test e end-to-end testing hanno in Agile un valore direi maggiore del codice stesso.
  • I rilasci frequenti sono alla base di un feedback rapido e sono abilitati da strumenti di Continuous Integration.
  • La pianificazione delle release successive si basa sulle Retrospettive e i Demo Meeting che servono per distillare l’esperienza fatta fino ad oggi e per rilanciare il lavoro delle fasi successive.
  • La gestione degli ambienti di sviluppo, di staging e di produzione e il Continuous Deploy/Rollback fanno parte anch’essi della cultura Agile.
Per me da oggi in poi non sarà solo un “God save the Queen”, ma anche un
Agile save the Queen!
PS: l’articolo ” Agile – What it is, why it works and how to do it” è esso stesso un esempio di “miglioramento continuo” che fa parte di Agile. Non è un pesante articolo burocratico, con un certo formato, con il numerino di revisione, con i nomi di revisore, responsabile, accettatore e della nonna, e che probabilmente sarebbe vecchio già in questo momento. E’ una pagina di un CMS facilmente modificabile, è in Beta, e giustamente si presume di aggiornarlo frequentemente lungo il cammino man mano che si imparano nuove cose o si incontrano problemi e limiti.
Riferimenti:
Digital by Default Service Standard – Services so good that people prefer to use them

Slide della sessione “Tecniche Agili su TFS 2012″ al Microsoft Dev Camp

Mi sono accorto di non aver mai pubblicato il materiale della presentazione che ho tenuto al Microsoft Dev Camp a novembre 2012.

La sessione riguardava i metodi Agili, SCRUM e il supporto che Team Foundation Server può dare a tali metodi.

Purtroppo non sono state fatte registrazioni video quindi posso solo pubblicare le slide.

Gli shortcut di Resharper

Per chi non lo conoscesse Resharper è un’estensione per Visual Studio per aumentare la produttività nella scritture del codice, effettuare refactoring, avere una naming convention uniforme, muoversi agilmente all’interno della soluzione ed eseguire i test unitari direttamente nell’IDE (solo per citare alcune delle feature).

Resharper

Un amico mi ha chiesto quali sono secondo me gli shortcut principali da utilizzare con Resharper.

I principali che uso sono:

  • ctrl+t per cercare un tipo
  • ctrl+shift+t per cercare un file
  • shift+alt+l quando ho un file aperto per trovarlo all’interno della solution
  • alt+enter un po’ ovunque sull’editor per accettare i suggerimenti/refactoring di default
  • ctrl+tasto sx del mouse su un tipo per andare alla sua definizione
  • ctrl+shift+r per attivare il menù di refactoring
  • ctrl+e+u per “circondare” un pezzo di codice con parentesi o try-catch

L’elenco di tutti i gli shortcut si trova qui:

http://www.jetbrains.com/resharper/webhelp/Reference__Keyboard_Shortcuts.html

Unit testing e coverage con Visual Studio 2012

Dopo aver provato i principali framework di unit testing su .Net (MSTest, MbUnit, NUnit e xUnit) ho scelto NUnit come framework di riferimento.

Il problema degli ambienti di terze parti è che fino a Visual Studio 2010 non era possibile eseguire i test direttamente dall’IDE e la soluzione era quella di utilizzare plugin quali Resharper o TestDriven.Net

Finalmente in Visual Studio 2012 è stato aggiunto il supporto per i framework di test di terze parti!

L’utilizzo è reso semplicissimo in quanto è sufficiente installare l’adapter tramite l’Extension Manager.

Ad esempio per NUnit è disponibile ”Unit Test Adapter“:nunit-test-adapter-vs2012

Gli adapter disponibili attualmente sono:

  • NUnit
  • xUnit.net
  • MbUnit
  • QUnit
  • Jasmine

A questo punto è possibile utilizzare il test runner integrato in Visual Studio:

vs2012-test-explorer-with-nunit

L’integrazione tra Visual Studio 2012 e i framework di test di terze parti ha anche il vantaggio collaterale che diventa disponibile il code coverage!

Basta selezionare “Analyze Code Coverage” per il test selezionato o per tutti i test per avere le statistiche di coverage e per avere un riscontro visivo del coverage direttamente sul codice sorgente.

code-coverage-vs2012-nunit

Nuove “piccole” feature di Visual Studio 2012

Tra le tante novità che sono state introdotte in Visual Studio 2012 ce ne sono alcune molto comode legate allo sviluppo di Web Application.

Quelle che ho apprezzato di più nell’uso quotidiano sono:

  • la visualizzazione Page Inspector
  • il supporto multi browser
  • l’estrazione di User Control
  • retrocompatibilità con Visual Studio 2010
  • anteprima delle immagini

Page inspector

Attivando il page inspector su una pagina aspx è possibile visualizzare all’interno di Visual Studio 2012 un’anteprima della pagina con l’inspector HTML simile a quello di Firebug.

view-in-page-inspector-VS-2012

page-inspector-VS-2012

Lo strumento è comodo perchè non è necessario passare al browser ma soprattutto si rivela molto efficace nel caso delle View in un progetto Asp.Net MVC.

Supporto multi browser

Gli shortcut F5 e CTRL-F5 sono da sempre serviti per avviare la web application in locale sul browser predefinito, rispettivamente con e senza debugger.

Un comodo menù visualizza adesso tutti i browser disponibili sulla macchina locale e consente di passare rapidamente da uno all’altro.

Multiple-browser

Estrazione di uno user control

Per creare uno user control partendo da una web form era necessario creare prima un nuovo user control, fare copia incolla dalla web form e inserire i tag register e uc nella web form.

Con Visual Studio 2012 tutte queste attività sono automatizzate tramite un singolo click:

estrazione user control in Visual Studio 2012

La funzione “Extract to User Control”:

  • richiede il nome e la posizione del nuovo user control
  • crea il nuovo oggetto con l’Html selezionato
  • inserisce nella web form i tag Register e uc

Extract-to-user-control-VS-2012-web-form

Anteprima delle immagini

Passando col mouse su un’immagine nella solution ne viene visualizzata un’anteprima:

anteprima immagini in Visual Studio 2012

Compatibilità della solution con Visual Studio 2010

Questo comportamento non riguarda solamente le Web Application ma la migrazione di una qualsiasi soluzione da Visual Studio 2010 a Visual Studio 2012.

Per la prima volta è possibile convertire la solution alla nuova release di Visual Studio mantenendo la compatibilità con la vecchia versione.

Importante: la compatibilità è garantita solo con Visual Studio 2010 con il Service Pack 1

Che c’azzecca TFS con i metodi Agili? Ve lo racconto al Microsoft Dev Camp – Bologna

Giovedì 8 Novembre la community DotDotNet vi invita al Microsoft Dev Camp a Bologna.

L’evento è completamente gratuito e suddiviso in due parti.

Durante la mattina sarà possibile confrontarsi sui temi quali lo sviluppo su Windows 8, Windows Phone e Azure in un Lab pratico e interattivo.

Il pomeriggio invece seguirà un formato classico con alcune sessioni relative a Windows Azure, allo sviluppo di giochi, a TFS e ASP.Net.

Se non vi ho ancora annoiato abbastanza parlando di metodi Agili, SCRUM, TDD o Continuous Integration o se invece non ne avete ancora sentito parlare nel pomeriggio terrò una sessione su come sfruttare Team Foundation Server 2012 a supporto di un team Agile.

Come al solito al termine ci fermeremo a cena assieme.

Ci vediamo lì.

Agenda

Riporto il calendario completo dell’evento

ore 9.00

 


Registrazione

ore 9.30

 

Laboratorio Windows 8, Windows Phone e Azure

 

ore 13.30

Pranzo libero

ore 14.30

Anteprima Windows 8 e Windows Azure 

ore 15.00

Lorenzo Barbieri – Sviluppo giochi per Windows 8

C++ e DirectX/XAML, XAML e .NET, HTML 5 e JavaScript, MonoGame, Unity, altri framework open e closed. Ci sono moltissimi modi per realizzare giochi per il Windows Store che sfruttano appieno le caratteristiche di Windows 8 come il touch, la tastiera e il mouse, il supporto ai controller XBOX….

 

ore 16.00

Pausa

ore 16.15

Stefano Benedetti – Tecniche agili su TFS 2012: un esempio pratico

 

Test driven development, continuous integration, release often and early, visibility: sono alcuni dei principi e delle pratiche cardine del mondo Agile.
In questa sessione vedremo come concretizzarli con Visual Studio, il nuovo Team Foundation Server 2012 ed i suoi template Agili al fine di migliorare il processo di sviluppo ed il project management.

ore 17.15

Luca Milan e Igor Antonacci – Novità di ASP.NET 4.5 

In questa sessione, verranno illustrate le principalinovità di ASP.NET 4.5 attraverso lo sviluppo, passo passo, di un’applicazione Web moderna e responsiva. Con l’uso di Visual Studio 2012, vederemo com’è semplice introdurre le principali tecniche di ottimizzazione.

ore 18.15

Fine lavori

Location e data

Hotel Amadeus

Via M.E.Lepido 39
40132  Bologna 

Giovedì 8 novembre 2012 ore 9.00

Registrazione

L’evento è gratuito ma è richiesta la registrazione

Registrami al Microsoft Dev Camp a Bologna

A short history of Software Engineering by Paolo Perrotta

Me la salvo qui per riguardarla ogni tanto ma soprattutto per farla vedere ai clienti che non conosco il mondo Agile o sono scettici.

Se sei minimamento coinvolto nel settore IT devi trovare 30 minuti per guardarla.

Se sei un Architetto devi trovare 30 minuti per guardarla.

Se sei un Program Manager (ops scusate ho detto una parolaccia) DEVI trovare 30 minuti per guardarla.

Se sei un’Analista DEVI trovare 30 minuti per guardarla (e poi puoi cambiare lavoro).

Chi non evolve in questa direzione è spacciato. Punto.

Impossibile modificare o creare i Maintenance Plan di SQL Server 2008

Stò cercando di modificare alcuni maintenance plan di una installazione di SQL 2008 R2 tramite SQL Management Studio.

Mi sono trovato in questa situzione. Cliccando su modifica non succede nulla e se provo a creare un nuovo piano ricevo un errore.

Beh ho scoperto che esistono i Management Tools in versione Basic e Complete.

La soluzione comporta la rimozione dei tools Basic e la successiva installazione della versione Complete.

Fonte: MS SQL 2008 R2, issue: impossible to Modify a Maintenance Plan

Installazione di Visual Studio 2012

Dato che la prossima settimana (il 12 settembre per la precisione) ci sarà l’evento di lancio di Visual Studio 2012 presso la sede di Microsoft (a cui partecipa anche DotDotNet) ho pensato che fosse l’ora di installarlo per cominciare ad utilizzarlo.

Intanto le prime considerazioni sull’installazione side-by-side.

Ogni release di Visual Studio è sempre accompagnata da una release del framework ed in particolare Visual Studio 2012 installa anche il .NET Framework 4.5.
Sia VS 2012 che il Framework 4.5 funzionano perfettamente side-by-side con tutte le precedenti versioni.

Normalmente quando si apre una soluzione creata con una vecchia versione di VS con una versione più recente viene aggiornato il file sln. Questo resta vero anche in questo caso con un solo distinguo: se la soluzione è stata creata con VS 2010 SP1 allora la soluzione resta accessibile anche da VS 2010 SP1. In particolare viene solo modificato il file format:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

Questo resta valido finché non si utilizzano le feature specifiche di VS 2012 come ad esempio targettizzare un progetto al Framework 4.5 il che rende inaccessibile il file sln da Visual Studio 2010 SP1.

Alcuni tipi di progetto non sono più supportati in Visual Studio 2012. In questa pagina si possono vedere quali progetti sono completamente gestiti e quali no: Visual Studio 2012 compatibility.

Dopo un breve download dall’MSDN della versione Premium, circa 15 minuti per una ISO di 1,5GB, lancio l’installazione che richiede solo due interventi: l’accettazione della licenza e la selezione delle feature da installare:

Visual Studio 2012 setup - license agreement02 - Feature selection

A questo punto l’installazione richiede alcuni minuti, un riavvio e la conferma finale:

03 - Installing04 - Restart required05 - Visual Studio 2012 Setup complete

Alla prima esecuzione è possibile importare le impostazioni di una precedente versione di Visual Studio, selezionare come al solito la configurazione di sviluppo preferita (per me come sempre Web Development) e la quantità di documentazione da installare localmente:

06 - Visual Studio 2012 first run

Fine. Nel giro di 30’ minuti è possibile vedere il nuovo layout di Visual Studio 2012:

08 - Visual Studio 2012 layout09 - Visual Studio 2010 layout

Devo dire che il primo colpo d’occhio è notevolmente piacevole e pratico. Rispetto alla versione 2010 ci sono pochi colori, poche distrazioni, una grafica lineare e molto pulita.