flusso di datiQualche tempo fa ho parlato di “piattaforme sì, ma meglio se integrate”. Riprendo il discorso con una domanda/provocazione:

ha senso per gli sviluppatori sviluppare nuove funzioni che la “piattaforma” non contempla?

Nel mondo dello sviluppo di software commerciale, ha senso.

Ma nel medio-lungo periodo può creare problemi sia al “vendor” che allo “sviluppatore”. Che potrebbe trovarsi superato in vari modi: o perché la “casa madre” ha incorporato le stesse funzioni da lui faticosamente create all’interno della nuova versione del software, oppure perché sono state cambiate le API e la nuova funzione… non funziona più. Come dice Dave Winer (che ho letto via Joel On Software) (in 2007): “Sometimes developers choose a niche that’s either directly in the path of the vendor, or even worse, on the roadmap of the vendor. In those cases, they don’t really deserve our sympathy.”

Giusto per fare un esempio, il nuovo IPhone 3GS ha reso inutili e obsolete 15 funzioni nuove che erano state sviluppate nel corso degli ultimi tempi.

Facciamo un esempio nell’e-learning: “oh, guarda! la piattaforma e-learning Pinco Pallino 2.0 non ha la gestione dei template. Allora mi creo la mia nicchia di mercato e creo un’applicazione che fa la gestione dei template”.
Il problema è che

  • se è qualcosa che interessa a tutto il potenziale mercato, sicuramente sarà incorporato nella versione successiva
  • se è qualcosa che interessa solo pochi clienti (che ne so, una funzione per esportare tutti i commenti di un forum) non la si potrà vendere a nessuno

Rimangono alcuni casi interessanti dal punto di vista dello sviluppatore: sviluppare applicazioni verticali (per un mercato, per un tipo di clienti) che abbiano un appeal abbastanza ampio e definito da essere commercialmente interessanti ma non troppo, per non farsele “mangiare” dal vendor.

Nel mondo dell’open source, questo scenario cambia (credo in meglio):
lo sviluppo di funzioni nuove arricchisce sia il vendor che gli sviluppatori (e in ultima analisi i clienti…) in un gioco in cui tutti vincono.  Ovviamente, per far funzionare questo circolo virtuoso occorre che la comunità degli sviluppatori e la “casa madre” siano in contatto stretto e continuo (e questo accade per Moodle come per Docebo): solo così ci si può assicurare che anche dopo la release di versioni successive tutto continui a funzionare correttamente.

Anche in questo scenario nulla vieta che i clienti possano volere funzioni particolari che non interessano a nessun altro (magari perché illogiche) nè che si possano sviluppare applicazioni custom che non verranno rilasciati alla comunità: resta però il fatto che è uno scenario molto interessante per tutti coloro che ne sono protagonisti: utenti finali, vendor e sviluppatori.