Claudio Brotto

Considerazioni dopo il VSTS day

Non so da dove partire, anche perchè non scrivo qui da oltre un anno (non pensavo così tanto, ma la data dell'ultimo post fa fede) e questa volta evito la solita intro tipo "Rieccomi" o "Blogging again".
Vado al punto, allora.
VSTS è ... ragazzi, qualcosa di eccezionale ! Che detta così non è che spieghi granchè, di certo non è un commento critico o costruttivo. Provo a esserlo, allora, critico e costruttivo.
L'evento è stato veramente di alto livello, sia dal punto di vista organizzativo che, soprattutto, per la qualità dei contenuti. Ne conseguono i dovuti complimenti per Rob, soprattutto per il taglio concreto che ha dato alla conferenza e anche per il modo di tenere la platea, che non è proprio l'ultimo dei dettagli da considerare.
Il prodotto ... Sono uscito dalla sala che stavo iniziando a farmi i conti in tasca e vedere da dove poter tirare fuori quella cifretta :) che serve a comprarlo.
Le funzionalità, prese singolarmente, sono di sicuro estremamente valide.
Partendo dal controllo dei sorgenti con constraint sui check-in e assegnazione delle attività, per arrivare ad un'implementazione della "metodologia", già pronta per MSF ma, credo di aver capito, adattabile ai metodi di ingegneria del software che ognuno ha preferito adottare (immagino che ci siano, o ci saranno presto, dei template per UP o XP o quant'altro, così come la possibilità di creare i propri modelli custom).
Ma sono le funzionalità prese nel loro insieme ad essere, a mio parere, il vero punto di forza del prodotto.
Anche questo Rob l'ha rimarcato.
Molti (beh ... alcuni) usano già strumenti di code coverage, unit testing, stress testing, profiling e via dicendo.
Io, ad esempio, ho la mia cartellina "Tools" che mi porto dietro pronta per l'installazione, che segue a ruota quella di VS.
Il fatto è che qui tutti questi strumenti sono presenti, integrati e, devo dire, anche piuttosto facili da usare.
Il che non significa tanto che si risparmia tempo con l'installazione, piuttosto che con un'interfaccia omogenea.
Significa che questi strumenti li abbiamo anche senza volerli ! Pronti, collegati ad una voce di menu e integrati fra loro.
E forse significa che, magari, giacchè ci sono si potrebbe anche pensare di utilizzari !
Ecco qual è il punto di forza: non tutti fanno unit test, non tutti fanno profiling.
Lo dovrebbero fare ? Sì, dal mio punto di vista (e comunque non mi sento neanche di poter dettar legge a riguardo poichè questi strumenti io li ho adottati per il mio lavoro col tempo, scoprendone l'utilità magari dopo qualche anno dall'inizio della mia vita lavorativa).
Lo fanno ora ? No, non tutti, non sempre.
E' chiaro che ognuno (dall'azienda allo sviluppatore free-lance) ha, di fatto, il proprio metodo di sviluppo.
Che questo derivi da una scelta ben motivata o sia dedotto a posteriori dal modo di lavorare, un metodo c'è. Magari il metodo è "scrivo codice senza pensare a cosa fa", è sbagliato, ma in fondo è un metodo anche quello :)
Ora, lo possibilità di avere a disposizione, a portata di click, gli strumenti che possono aiutarci nell'unificare il nostro metodo di lavoro è, a mio giudizio, impagabile.
Primo, perchè centralizzare, in generale, è importante.
Secondo, perchè si può scoprire che con gli strumenti giusti anche un metodo di lavoro più rigoroso ripaga.
Non credo che nessuno possa dire "lo unit test non serve".
Però sicuramente una considerazione del tipo "lo unit test porta via tempo" la si sente fare.
Che, poi, in realtà il tempo impiegato sia ben speso, in termini di manutenibilità e solidità del prodotto, questo è un altro discorso.
Ecco che, però, se lo strumento di unit test è lì, immediato da capire e da usare, forse una seconda chance gliela si può anche dare.
E ho fatto l'esempio dello unit-test, che è solo uno dei tanti.
Ci sarebbe da scrivere ... la mania dei post lunghi non l'ho persa insieme alla costanza ...
Chiudo con una piccola, sconsolante considerazione.
Avete idea di quante realtà ci sono, che sviluppano ancora in VB6, che non hanno strutturazione, e men che meno un metodo di lavoro ?
Siamo d'accordo che sono tante ?
VSTS lavora, ovviamente, in congiunzione con .NET. Ci mancherebbe !
Il che porta a un paradosso: le aziende che maggiormente avrebbero bisogno di uno strumento come questo, che dia loro supporto durante la vita di un progetto, irrimediabilmente sono tagliate fuori.
Problemi loro, direte.
Senza dubbio.
E non voglio neanche dire che TUTTE le aziende che sviluppano in VB6 non hanno metodologie opportune, e nemmeno che TUTTE le aziende che lavorano in .NET fanno le cose come si deve.
Però ...

Commenti aperti, ovviamente !
Posted: set 30 2006, 02.33 by devlizard | with 5 comment(s)
Filed under:

Comments

marco said:

Grazie per i complimenti per la giornata!
Una cosa: ti segnalo che c'è già Scrum for Team System (http://www.scrumforteamsystem.com) che implementa una metodologia diversa da quelle solite. Non è XP, ma solo per dire che l'estendibilità esiste realmente.

Ciao

Marco
# ottobre 1, 2006 11.57

rob said:

Ciao Claudio, grazie per i complimenti. E' stata una giornata, dal mio punto di vista, molto interessante in quanto, come indichi nel tuo messaggio, ogni azienda, e forse anche ogni persona, affronta lo sviluppo software secondo metodologie diverse e avere una platea ampia su un prodotto come VSTS è segno che anche nel nostro paese esiste una sensibilità per metodologie e strumenti che vanno ben oltre la scrittura di codice.
# ottobre 5, 2006 12.38

devlizard said:

[Marco] Speriamo questo sia indicatore di una tendenza. L'estendibilità mi sembra interessante anche e soprattutto per poter inquadrare la propria metodologia, che in effetti non sempre si riflette integralmente in uno degli standard disponibili. Avere il tempo ...

[Roberto] Per fortuna esiste questa sensibilità. Mi piacerebbe trovarla anche nei posti in cui mi porta il mio lavoro :(

[DevLeap] Prego, i complimenti sono meritati !
# ottobre 6, 2006 10.22

Aldo.NET said:

Per quanto riguarda VB6 - credo che sia uno spreco di risorse che VSTS lo supporti, anche perche' tra non molto non sara' proprio + supportato lui stesso (il linguaggio/tool). Certo ci sono aziende che ancor'oggi sviluppano applicazioni DOS - niente di male, ma non mi stupisco se il focus dei nuovi strumenti di sviluppo non e' verso di loro.
Comunque, ad oggi, puoi usarlo con TFS come Source Control server (tramite il MSSCCI provider), che e' gia' qualcosa.

Per i Test - magari uno studio che dimostrasse la correlazione, possibilmente positiva in termini di ritorno economico, tra l'incremento di investimento fatto per sviluppare test e il minor costo di assistenza, potrebbe aiutare. Purtroppo non so se ne esiste uno.

Riguardo "le aziende che maggiormente avrebbero... " - non so se si puo' stabilire una relazione tra il linguggio di sviluppo e la necessita' di una metodologia - secondo me no. Le aziende (o individui) che ritengono utile una metodologia l'hanno gia' adottata indipendentemente dagli strumenti - gli altri viaggiano ancora a naso e continueranno anche dopo l'introduzione degli strumenti a meno che non ne intravedano il beneficio. Secondo me l'ostacolo e' li' - ogni azienda dovrebbe spendere un po' di tempo a capire il rapporto investimenti/benefici prima di adottare una metodologia (Agile/XP/Scrum/...) o una tecnica per migliorare la qualita' del prodotto (ad es. lo Unit Testing). Se lo fanno perche' "fa figo" o perche' richiesto dai clienti (senza crederci), credo che non durera' molto e soprrattutto non servira' a niente. (vedi implementazione delle ISO900x in molte aziende manifatturiere)

Ciao,
Aldo
# ottobre 10, 2006 1.41

devlizard said:

Aldo,
prendo lo spunto dal tuo commento per chiarire meglio il mio punto di vista.
Per quanto riguarda il supporto a VB6, non ci piove ... è uno strumento morto (o per lo meno obsoleto) che giustamente non viene più supportato dai nuovi prodotti che con gli ambienti di sviluppo hanno, in qualche modo, a che fare. Ho letto della possibilità di utilizzo di TFS come SCC, questa la ritengo decisamente utile.
Per quel che riguarda "le aziende che avrebbero maggiormente bisogno ..." ho fatto una, più o meno voluta, generalizzazione.
E come ogni generalizzazione va presa con le pinze.
Ritengo, tuttavia, che la metodologia sia legata all'ambiente/linguaggio/tool di sviluppo.
Non in modo diretto, certamente (tant'è vero che i vari XP, Scrum, MSF eccetera sono agnostici dal linguaggio).
Forse è una banalizzazione eccessiva, ma il legame lo vedo presente a livello di mentalità (e la mia considerazione è del tutto empirica poichè proviene dalle mie esperienza sul campo, che ovviamente non possono essere considerate significative in assoluto).
Fatto sta che empiricamente ho trovato molta più apertura e disponibilità ad una strutturazione efficace nelle realtà che, poi, hanno adottato .NET in sostituzione delle tecnologie precedenti.
O meglio, in logica inversa, ho trovato molta ostilità, in alcune aziende, che ha precluso tanto l'adozione di .NET quanto quella di una metodologia.
Probabilmente il tutto si può riassumere come "disponibilità al cambiamento" o per lo meno a mettere in discussione l'esperienza, sia nella tecnologia che nel metodo, acquisita durante gli anni di vita dell'azienda.
Mi viene in mente il paragone con un autodidatta, che impara a suonare strimpellando lo strumento senza nessun approccio definito, e dopo anni alla fine suona. Il suono magari è sporco e poco raffinato, ma ai concerti ci va e guadagna. E a quel punto si cementifica e non compra nè impara a suonare la nuova chitarra a 7 corde, nè gli viene in mente di studiare la musica e applicare un metodo al suo modo di suonare.
Anche questo paragone va preso con le pinze, per carità, ma forse spiega meglio il mio modo di vedere, un po' pessimisticamente, la realtà aziendale attuale.
# ottobre 10, 2006 10.44