I coltellini multiuso del web

scritto da Mauricio

Sono un grande appassionato di outdoor, spesso nelle mie escursioni incontro problemi che devo risolvere solo con gli strumenti che ho a disposizione nel mio zaino. Proprio per questo mi sono dotato di un bel coltellino multiuso, e devo dire che è uno strumento molto utile, che mi permette di risolvere veramente molti problemi. Anche nel mio lavoro avrei a disposizione molti coltellini multiuso, molti strumenti che mi permetterebbero di risolvere velocemente un problema o una necessità. È bene però, fare una distinzione tra gli strumenti "multiuso" e gli strumenti "dedicati", quelli pensati per svolgere un compito specifico. Spesso la persona che utilizza lo strumento non si accorge della differenza, non perché le differenze non ci siano, ma perché si accontenta del risultato che otterrà in base allo strumento.

Il web è pieno di strumenti multiuso, o per lo meno, di strumenti che vengono utilizzati come multiuso. Facendo un esempio pratico, circa un anno fa leggevo un articolo dove Matt Mullenweg durante il WordCamp 2013 snocciolava un po' di numeri riguardo la sua creatura, WordPress. Al di là delle grandi cifre riguardo i numeri di download, temi, plugin, ecc, le cifre che mi hanno fatto riflettere riguardavano il modo in cui la famosa piattaforma di blog veniva utilizzata:

  • 69% - Come gestore di contenuti, "CMS"
  • 20% - Come ibrido CMS/blog
  • 7% - Come piattaforma per app
  • 6% - Come blog

Mi aveva molto stupito il fatto che una piattaforma per blog venisse usata solo al 6% come blog, mentre per la stragrande maggioranza delle volte come qualcosa d'altro.
L'immaginario comune si basa sul fatto che questi strumenti possono essere accoppiati a plugin e temi, che permetterebbero di fare tutto. La realtà è diversa: data la loro quantità permettono di fare migliaia di cose, ma difficilmente faranno esattamente quello di cui hai bisogno. Gli stessi plugin o temi vengono fatti per accontentare un maggior numero di persone, e le funzionalità create in questi plugin possono anche somigliare alle tue necessità, ma non sono stati fatti su questa base. È vero che possono essere personalizzati, ma la personalizzazione non può essere fatta allo stesso livello di conoscenza tecnica di chi, questi plugin/temi, li installa semplicemente. Inoltre i costanti aggiornamenti della comunità di sviluppo sovrascriverebbe tutte le personalizzazioni.

Se parliamo anche di altri CMS più versatili o "astratti", (per esempio Joomla, Drupal, Typo3 e altri) la situazione è migliore. Al contrario di WordPress, queste piattaforme sono pensate di base per un utilizzo più vario. Hanno delle funzionalità che permettono di gestire e organizzare i dati in modo più avanzato e differenziato, mentre alcuni CMS come Magento sono anche orientati a un settore specifico come l'e-commerce. Nonostante questi CMS siano più versatili, soffrono delle stesso problema: sono fatti per fare molte cose, quindi non sono efficaci.

Perché non sarebbero efficaci?

  1. Front-end / tema: la parte frontale del sito, quella che vedono i visitatori. È possibile usare un tema molto simile alle proprie necessità, personalizzarlo o addirittura crearlo "da zero". Tutto questo non toglie il fatto che dovrà sottostare alle regole del sistema. Molte funzionalità e stili grafici dipendono anche dai plugin, quindi oltre a personalizzare la base del sistema bisogna pensare anche ai plugin.
  2. Back-end: il pannello di amministrazione del sito è un altro punto importante. Dato che questi strumenti fanno molte cose o hanno molti plugin installati, fanno sì che ci siano molte funzionalità, e molte di queste non vengono mai usate. Un po' come avere il programma di scrittura "MS Word": le funzioni a disposizione nel programma sono centinaia, ma in concreto non le userai mai tutte... probabilmente solo una piccola parte!
  3. Organizzazione dei dati: questo è un fattore che quasi mai viene considerato, però può risultare un grande problema. Immaginando di avere un sito con qualche anno di vita, dopo aver inserito molti contenuti, dopo aver venduto molti articoli e quindi registrato molti ordini, dopo aver ricevuto molti commenti o registrato le relazioni con i clienti... arriva il momento in cui devi cambiare CMS, analizzare i dati archiviati, esportare i dati, modificare una funzione o altro. Potresti trovarti di fronte ad una montagna di dati che potrebbero non essere trasportabili, analizzabili, esportabili o modificabili. Quando hai decine di migliaia di righe in un database di certo non puoi lavorare manualmente su questi dati. I dati non sono stati archiviati secondo un progetto personalizzato: sono stati archiviati secondo un progetto generico, esattamente come lo è il CMS.
  4. Plugin: questo punto si collega direttamente al punto sopra. I plugin sono moduli sviluppati da terze parti, non fanno parte direttamente di un CMS. Sono fatti per agganciarsi al sistema usando la struttura del database, e qualche volta aggiungono una propria struttura (nuove tabelle nel database) per immagazzinare i propri dati. Di plugin che ne sono decine di migliaia, creati da migliaia di sviluppatori. È impossibile improbabile che questa condizione generi un'organizzazione dei dati che rispecchi le tue necessità (ho tolto "impossibile" perché voglio dare una possibilità alla "teoria del caos").
  5. Attacchi: l'utilizzo di CMS molto conosciuti porta anche ad un altro problema. Visto la loro popolarità sono spesso bersaglio di attacchi cracker: ogni volta che viene scoperta una nuova falla nella piattaforma, queste vengono bersagliate nel tentativo di sfruttare questi punti deboli. Non è il fatto di essere sistemi aperti (open source) a renderli più vulnerabili, ma piuttosto il fatto che sono sistemi che usano tutti la stessa base e sono installati in milioni di siti, quindi una falla presente in milioni di siti è molto più appetibile che una falla in un singolo sito. Questa caratteristica rende necessario il continuo aggiornamento della piattaforma e dei suoi plugin. A meno che non siano personalizzabili, in quel caso la vulnerabilità dovrà essere sistemata manualmente altrimenti l'aggiornamento sovrascriverebbe la personalizzazione. Quello che accade spesso è che le parti personalizzate non vengono mai aggiornate, con ovvie conseguenze.

Questi strumenti sono delle ottime soluzioni, a patto che vengano usate nel modo corretto e consapevole. Un esempio pratico di come questi mezzi non vengono usati nel modo migliore è proprio la piattaforma "CMS" più famosa nel mondo, WordPress: come abbiamo visto all'inizio soltanto il 6% lo usa per lo scopo per cui è stato creato, tutti gli altri lo adattano a fare altre cose. Utilizzare in modo consapevole è sapere che, se l'intento è di evolvere o espandere il proprio sito, queste soluzioni devono essere considerate come temporanee, soprattutto se si prevede di avere molti visitatori o di avere molti dati inseriti (o tutte le due cose insieme). Una soluzione temporanea, che permette di capire la direzione da percorrere e avere il tempo di creare uno strumento dedicato, permetterà di far arrivare il sito all'obiettivo nel modo più efficace possibile.

Il punto è che uno strumento pensato per fare molte cose non sarà mai efficace in un campo specifico, sarà "discreto" in tutte le cose. Hai mai visto un meccanico usare come strumento di lavoro il cacciavite di un coltellino multiuso per sistemare un motore, un sommelier usare il piccolo e poco pratico cavatappi, un idraulico usare la piccola pinza per smontare un tubo?
In ogni settore esistono strumenti fatti per essere efficacissimi nel proprio compito, non vedo perché nel web dovrebbe essere diverso. Anzi, è proprio qui che abbiamo la possibilità di creare mezzi personalizzati, mezzi che dovrebbero essere in grado di cambiare forma molto velocemente per adattarsi a nuove necessità.

Se lo strumento si adatta alle tue esigenze sarà lui a lavorare per mantenere in vita le tue idee. Invece se sei tu ad adattarti allo strumento, sarai tu a lavorare per mantenere in vita il produttore dello strumento.

Photo