Sul blog aziendale di Expensify il CEO David Barrett ha raccontato perché la sua azienda non assume programmatori Microsoft .NET Framework. In poche ore il suo articolo ha fatto il giro del mondo scatenando un gran putiferio. Gli sviluppatori .NET si sono lanciati in una difesa accorata della piattaforma Microsoft mentre molti commentatori e blogger hanno sposato le tesi di Barrett. Gli oltre 500 commenti danno un’idea ben precisa del fervore suscitato dall’articolo. Non intendo dilungarmi sui contenuti, mi interessa piuttosto approfondire una questione sollevata indirettamente dal pezzo di Barrett.
Perché così poche Startup scelgono .NET Framework?
Guardando all’intero ecosistema delle Startup internet, è facile riscontrare che ben poche adottano il .NET Framework. Ci sono eccezioni importanti e significative, come per esempio Stack Overflow, ma le tecnologie dominanti sono altre: Ruby on Rails, PHP e Python su tutte. Ian Muir, Senior Developer di Piehead, in un suo interessante articolo tenta di individuare le ragioni che fanno di .NET Framework una scelta poco apprezzata dal vivace e dinamico mondo delle Startup.
Il costo della piattaforma Microsoft
Se per le grandi aziende le voci di spesa davvero rilevanti sono stipendi, hardware, infrastrutture, banda e dati, per le nostre Startup il problema è innanzi tutto partire. Ruby on Rails, PHP, Python e i loro fratelli sono soluzioni FOSS (gratuite e open source) che permettono di lavorare a costo zero mentre l’ambiente .NET è al contrario un closed-source a pagamento.
Muir ricorda che già da qualche anno Microsoft ha lanciato il programma BizSpark che tra le altre cose elimina gran parte dei costi di adozione del .NET Framework. La differenza di spesa insomma non sarebbe così significativa. Peccato che BizSpark sia pressochè sconosciuto.
Ci sono soluzioni alternative. Showcase Lane per esempio è sviluppato interamente in ASP.NET MVC, ma gira sotto Mono. Se vi interessa questo approccio qui potete leggere tutti i dettagli in proposito.
Difficoltà nella applicazione della Metodologia Agile
Inutile negarlo, questi sono gli anni della metodologia agile. I giovani imprenditori rilasciano i loro prodotti il più velocemente possibile, spesso in versioni beta appena funzionanti, che implementano a malapena le funzionalità di base. Ruby, Python, PHP e soci dispongono di strumenti mirati per lo sviluppo e il deploy rapido delle applicazioni, qualcosa che in parte manca al mondo .NET. Nel suo articolo Muir sostiene che in realtà non c’è una gran differenza nei tempi di sviluppo.
Concordo con Muir anche se dimentica un dettaglio importante. Molti startupper sono programmatori alle prime armi, spesso ricchi di idee da lanciare rapidamente, ma poveri di capacità tecniche. E’ in questo scenario che linguaggi e tecnologie come Python e Ruby brillano di luce propria rispetto a un ambiente monolitico e piuttosto sofisticato come il .NET Framework. La curva di apprendimento vincente è quella dei linguaggi open source.
.NET è roba da Enterprise (e comunque Microsoft va boicottata)
Muir sostiene che le startup non usano .NET per motivi culturali più che tecnologici. Voce di popolo vorrebbe che Microsoft sia apprezzata dalle enterprise mentre PHP e Ruby sarebbero l’ideale per le piccole (e sfigate) startup. Questa percezione diffusa influenzerebbe i giovani imprenditori inducendoli ad adottare una piattaforma senza chiedersi quale sia lo strumento migliore per soddisfare le loro necessità.
Le cose stanno anche peggio di così. Specialmente nel mondo giovanile Microsoft è considerata il colosso pachidermico e monopolistico da boicottare in ogni modo. L’immagine non è il punto di forza di Microsoft.
Startup e Enterprise, mondi diversi
Gran parte delle startup incoraggiano i loro programmatori a imparare un ampio spettro di tecnologie piuttosto che specializzarsi su argomenti (linguaggi) singoli. Per le startup è la scelta giusta poiché dispongono di pochi programmatori e devono rimanere agili e pronte al cambiamento. Le grandi aziende al contrario hanno una cultura ingegneristica e sono organizzate in grandi team, nei quali ogni soggetto tende a essere molto specializzato. Sono differenze importanti che rendono difficile per un programmatore il passaggio da una realtà all’altra.
Ampliare la propria prospettiva
Secondo Muir quelli elencati sopra sono i fattori che più di altri condizionano la scelta della piattaforma da adottare. All’inizio della loro carriera i programmatori scelgono un percorso che in seguito diventa difficile cambiare. Il datore di lavoro dovrebbe impegnarsi in prima persona affinché i programmatori mantengano un attegiamento agnostico rispetto alle piattaforme tecnologiche, e siano sempre pronti ad abbracciare nuovi paradigmi e tecnologie.
Su questo punto Muir ha ragione da vendere. In tanti anni di lavoro ho provato sulla mia pelle quanto reale sia il rischio confinarsi nel proprio piccolo mondo. Impegnati nella soluzione dei problemi quotidiani scordiamo che è utile fermarsi ogni tanto e guardarsi intorno. Aggiornarsi su cosa avviene al di fuori del proprio ramo di expertise, consente di sviluppare una migliore visione d’insieme osservando le cose da una prospettiva più ampia.
Le persone contano più della piattaforma
Perché dunque le Startup non amano .NET Framework? Come abbiamo visto la risposta è tanto tecnica quanto culturale. Qualunque sia la tecnologia adottata, ciò che conta sono le persone che prendete a bordo. Se volete i migliori programmatori su piazza non selezionate specialisti PHP o .NET Framework. Cercate piuttosto persone con esperienze e conoscenze diverse, curiose, che abbiano voglia di imparare e siano pronte a rimettersi in gioco quando serve. Le persone giuste sono quelle capaci di prendere decisioni importanti senza lasciarsi condizionare (solo) dalle competenze già acquisite.
Post Scriptum. E se persone con queste caratteristiche non riuscite a trovarle o peggio, non potete permettervele? Non scendete a compromessi. Piuttosto, fate da soli.