Ieri il post di Simone ha indotto anche me ad una riflessione. Però la mia riflessione non è ne su Architetetti vs. architetti ne su ALT.NET vs "MS tools and technologies, bensì sul rapporto tra i programmatori e le nuove tecnologie.
In particolare ragionavo su questa frase che in quest'ultimo periodo mi tocca in modo particolare:
I don't want to point the finger against anyone, but in my experience with previous jobs, I was the only one interested in staying up to date with the technologies, learning new approaches. I was the only one that fought with the CTOs to setup a CI process and introduced a kind of TDD approach inside the projects. In January, I was the one that informed the dev team that there was a new version of the .NET framework, version 2.0 (no, not the 3.5, the 2.0... and it was 2 years after is has been released).
So, I might have been very unlucky, but the truth is that 80% or more of the developers only care about working 9 to 5, have their work done with the least possible effort, and don't study to stay up to date with the new trends or technologies, they goes to user group meetings only if they are during the working hours and their employer doesn't take off a day of annual leave.
Penso che la situazione descritta da Simone sia comune a molti e che i fortunati che riescono ad applicare nel lavoro le tecnologie appena uscite siano veramente pochi se rapportati alla totalità dei programmatori. Ma non sempre è colpa della "mediocrità" dei programmatori o della loro scarsa voglia di innovarsi (non dico che non ci siano casi di questo genere, tutt'altro!). Questo credo sia particolarmente vero per chi lavora come dipendente.
Per quanto mi riguarda attualmente sono l'unico nella mia nuova azienda ad avere una certa esperienza con .NET e in particolare con la versione 2.0. Tutti gli altri sono ancora "ancorati" a VB6 e in particolar modo ad ASP. Non credo che una situazione del genere riguardi solo noi.
Il motivo di questa "staticità" non va però ricercato in una scarsa volontà dei singoli, ma bensì va ricercato nelle "dinamiche aziendali". Nella pratica si corre tutte il giorno inseguendo un progetto dopo l'altro, inseguendo un cliente dopo l'altro. Il prodotto attuale funziona, è solido, è stato installato e personalizzato decine e decine di volte. I clienti sono contenti e soddisfatti. Perchè cambiarlo? Perchè "perdere" tempo a convertitlo? Chiaramente le mie sono domande retoriche e, ad onor del vero, anche da noi si è cominciato il lento processo della conversione verso il mondo .NET.
Ma è un processo lungo, difficile e soprattutto costoso. Oltre alla riprogettazione del software, vanno formate principalmente le persone, che devono sperimentare, studiare e assimilare i nuovi concetti, i nuovi costrutti, i nuovi ambienti di sviluppo. Ma se fanno questo, non producono, non fatturano (detto in termini "commerciali"). Non tutti infatti hanno la possibilità di studiare nel tempo libero. Gli impegni sono per tutti mille e il tempo libero è sempre più ridotto.
E allora? E allora si rimane ancorati, al proprio sapere, alla tecnologia che si sa usare da anni e che non ha mai "tradito". Questo fino a che qualcosa non scoppia. Quando la tecnologia usata diventa talmente obsoleta da essere percepita come tale anche dai clienti finali. Quando si inizia ad avere difficoltà a vendere i propri prodotti perchè il cliente percepisce la loro "obsoloscenza", perchè ad esempio, l'interfaccia grafica non è quella che è abituato a vedere nei programmi comunemente usati.
Allora si che si corre ai ripari, ma forse è troppo tardi...