L'autopsia di Gutenberg Il lancio, così possiamo abbracciare il prodotto Gutenberg
Pubblicato: 2022-03-10Dopo 10 mesi dal rilascio come nuovo editor predefinito di WordPress, Gutenberg è ancora ignorato da un numero considerevole di persone della comunità di sviluppo web, che spesso citano come ragioni per ignorarlo la sua mancanza di supporto per l'accessibilità (anche se sono stati necessari importanti miglioramenti all'accessibilità luogo), quanto è lento (anche se ora è molto più veloce) e molte altre lamentele. Questa reazione pessimistica a Gutenberg è più evidente negli articoli online che dimostrano le capacità di Gutenberg che, invece di suscitare una reazione positiva da parte dei lettori, attirano principalmente disprezzo (come si riflette in un flusso di commenti negativi).
Molte persone sembrano essere arrabbiate "con Gutenberg" (vedremo tra un po' cos'è Gutenberg in realtà), esprimendo che Gutenberg non sarebbe mai dovuto accadere o, almeno, non sarebbe mai stato integrato nel core di WordPress come esperienza predefinita, o almeno non così presto. Persone diverse hanno ragioni diverse per opporsi a Gutenberg, alcune delle quali sono personalmente più significative di altre. Ad esempio, alcune persone hanno visto il loro sostentamento messo a repentaglio, avendo lavorato duramente per specializzarsi su una certa soluzione che, a causa dell'arrivo di Gutenberg, rischia di scomparire (come chiunque lavori con questo marchio o quel marchio di costruttori di pagine). Posso davvero capire perché queste persone sono arrabbiate con Gutenberg e sono solidale con loro.
Tuttavia, credo anche che essere infinitamente irritato da Gutenberg e respingerlo per intero - senza nemmeno considerare se potrebbe valere la pena usarlo dopotutto - non sia un approccio sensato. Quando è stato lanciato inizialmente, ero piuttosto contrario a Gutenberg, pensando che non fosse pronto, e questa posizione è durata diversi mesi. Tuttavia, ultimamente mi sono ritrovato a usare Gutenberg sempre di più, e posso anche affermare che, al giorno d'oggi, mi sto davvero divertendo. Mentre all'inizio ero anch'io un po' arrabbiato "con Gutenberg", ho lasciato che la mia rabbia se ne andasse e ora posso davvero trarne beneficio.
Attraverso questo articolo, cercherò di cambiare la narrativa in base alla quale Gutenberg è più comunemente raffigurato. Elencherò cosa è andato storto in passato e descriverò cosa è stato Gutenberg e cos'è, da cui posso fare un atto di fede per presentare Gutenberg in una luce favorevole. Sosterrò anche che Gutenberg è già una forza positiva e, come tale, merita di avere un'altra possibilità (se non l'hai ancora fatto).
Che cosa è in realtà Gutenberg
Dal mio punto di vista, il motivo più importante per cui Gutenberg non è più ampiamente accettato è che, quando le persone parlano di Gutenberg, lo equiparano non a una ma in realtà a due entità (che sono confuse tra loro), vale a dire:
- Gutenberg, il lancio;
- Gutenberg, il prodotto.
Gutenberg come "il prodotto" è il plug-in/la funzionalità stessa. Gutenberg come "il lancio" è stato il processo che ha coinvolto lo sviluppo iniziale e il rilascio di Gutenberg, probabilmente iniziato quando il fondatore di WordPress Matt Mullenweg ha presentato Gutenberg a un pubblico più ampio nel giugno 2017 durante WordCamp Europe 2017 e si è concluso all'inizio di dicembre 2018 quando WordPress 5.0 è stato rilasciato con Gutenberg fuso in esso.
(Una volta terminato il lancio, è iniziata una nuova fase che continua fino ad oggi: il "Ciclo di consegna continuo di Gutenberg". Tuttavia, questa fase è molto diversa da "Il lancio di Gutenberg", poiché non ci sono stati problemi seri con esso e poiché tale da non produrre alcun equivoco nei confronti del “prodotto Gutenberg”, per questo motivo non c'è bisogno di parlarne in questo articolo.)
Bisogna distinguere tra le due entità, “il lancio” e “il prodotto”. In quanto tale, d'ora in poi, spero che quando ci riferiamo a "Gutenberg" significhi invariabilmente "Gutenberg il prodotto", e se vogliamo fare riferimento a "Gutenberg il lancio" allora dobbiamo nominarlo esplicitamente (possibilmente usando una qualsiasi delle sue variazioni , come "Sviluppo/rilascio iniziale di Gutenberg" o frasi simili). Soprattutto, dobbiamo astenerci dal mescolare il lancio e il prodotto nella stessa borsa: menzionare qualsiasi fattore che ha contribuito al lancio deludente di Gutenberg come motivo per non utilizzare Gutenberg nei nostri progetti dovrebbe essere gradualmente eliminato e Gutenberg come prodotto dovrebbe essere giudicato solo contro le proprie qualità. Questo è giusto per Gutenberg il prodotto.
Credo che, mentre “Gutenberg il lancio” è stato giustamente criticato, il costante disprezzo rivolto a Gutenberg il prodotto sia stato ingiusto (anche se giustificato), e che il prodotto Gutenberg sia, esso stesso, vittima della macchiata reputazione conferita al nome "Gutenberg" durante il suo frustrante lancio. Ad esempio, quando si cerca "Gutenberg" nella directory dei plug-in di WordPress, poiché l'algoritmo che decide i fattori di ranking dei plug-in nella valutazione dei plug-in, Gutenberg appare solo intorno alla decima posizione. Tuttavia, molte delle valutazioni a 1 stella non sarebbero avvenute se Gutenberg non fosse stato fuso nel nucleo; se fosse stato inizialmente rilasciato solo come plug-in e avesse aspettato che i bug e i problemi più importanti (come la mancanza di accessibilità) fossero stati risolti prima di fondersi con il core, oggi la sua valutazione sarebbe più alta.
Se siamo in grado di dividere le due entità (il lancio e il prodotto) e gestirle separatamente, da un lato, possiamo fare un'autopsia di ciò che è andato storto durante il lancio di Gutenberg e alimentare questa conoscenza nell'attuale consegna continua ciclo, in modo che gli stessi errori non si ripetano (anzi, questo sembra già accadere, come descriverò più avanti); dall'altro lato, possiamo permetterci di apprezzare Gutenberg come prodotto, aggiungerlo ai nostri stack e, auspicabilmente, trarne vantaggio.
Farò esattamente questo, dal mio punto di vista.
Cosa è andato storto durante il lancio di Gutenberg
In una sola frase, il team che guida il processo ha incasinato tutto (questo è il modo educato di dirlo).
WordPress 5.0 con la fusione di Gutenberg è stato lanciato all'inizio di dicembre 2018, poco prima di WordCamp US. Lanciarlo poi è stata una decisione sbagliata, per un motivo molto semplice: Gutenberg non era ancora pronto. In particolare, la situazione dell'accessibilità era molto grave, con Gutenberg quasi inutile attraverso dispositivi di accessibilità come i lettori di schermo, rendendo di fatto chiunque dipendesse da tali dispositivi incapace di utilizzare l'editor di WordPress. E poiché la community di WordPress è molto esplicita nel proteggere i diritti di tutti (letteralmente tutti) per poter accedere a Internet, questo lancio affrettato non è stato ben accolto.
Matt Mullenweg (che stava guidando il processo di rilascio) potrebbe aver avuto buone ragioni per essere irremovibile sul lancio in quella data, il che avrebbe potuto, ad esempio, avere un senso dal punto di vista aziendale. Tuttavia, certamente non aveva senso dal punto di vista della comunità. In effetti, molti membri della comunità si sono sentiti traditi, lamentandosi di aver dovuto affrettarsi a testare i siti dei loro clienti anche se erano in vacanza. Possiamo tranquillamente affermare che, per molte persone, un lancio così prematuro è stato percepito come un relitto (anche se il software funzionava correttamente, quindi in realtà non è successo Y2K), che ha creato un inutile malcontento e che avrebbe potuto essere perfettamente evitato sia posticipando il lancio, o rilasciando prima Gutenberg come plug-in da unire al core in una fase successiva e più stabile.
Il dolore, la frustrazione e la delusione inflitti alla comunità valevano davvero il costo? Credo che la maggior parte delle persone dirà che non lo era. Penso assolutamente che non lo fosse. A mio avviso, questo tipo di situazioni in cui si agisce contro la volontà della maggioranza dei membri della comunità devono essere evitate in futuro (a meno che non ci siano davvero buone ragioni, anche se non tutti sono d'accordo; se ciò era il caso del lancio di Gutenberg non lo so, poiché non sono a conoscenza di alcun motivo valido per giustificarlo).
Nella sua presentazione durante lo stesso WordCamp negli Stati Uniti, Matt Mullenweg ha riconosciuto che sono stati commessi errori durante il lancio di Gutenberg e che aveva imparato la lezione in modo che si spera che questi errori non si ripetano. Ritengo che possiamo accettare le sue scuse e confidare che le sue decisioni saranno quelle giuste la prossima volta (anche se da allora si sono verificati nuovi litigi su argomenti altrettanto importanti). Tuttavia, il danno è già fatto: si è aperta una ferita che potrebbe richiedere del tempo per rimarginarsi, quindi la comunità sarà meno fiduciosa fino a quando la fiducia nella leadership di WordPress non sarà completamente ripristinata.
Perché le cose sembrano andare molto meglio ora
Ora arriva la buona notizia: lo stato delle cose sembra aver preso per lo più una direzione positiva, con i miglioramenti elencati di seguito già in atto.
Comunicazione migliorata
Una delle lamentele più rumorose sul lancio di Gutenberg è stata la mancanza di comunicazione da parte della leadership. Poiché non sono stati predisposti canali adeguati per gestire il progetto e comunicare le sue decisioni (almeno non in modo completo), è stato difficile avere un quadro accurato della situazione generale. (Ad esempio, le informazioni di autori o team diversi sono state pubblicate attraverso strade diverse, comprese quelle non ufficiali come i blog personali.)
Questa preoccupazione è stata notevolmente migliorata. In particolare, la quantità di informazioni nei blog make (in cui le diverse comunità interagiscono per prendere decisioni riguardanti WordPress per diverse aree, come core, accessibilità, design, internazionalizzazione e altri) e la frequenza con cui le informazioni vengono aggiornate sono state è aumentato e ogni team tiene una riunione regolare basata su Slack (che si svolge principalmente su base settimanale o bisettimanale) a cui può partecipare chiunque disponga di un account utente WordPress.org. Come sperimentato da alcuni membri della comunità, ora è possibile seguire in modo affidabile gli sviluppi su alcuni argomenti e disporre di informazioni sufficienti per poter essere coinvolti.
Le ricadute del lancio di Gutenberg hanno anche spinto Matt Mullenweg ad espandere la leadership di WordPress con due nuovi ruoli: un direttore esecutivo, per supervisionare e dirigere tutti i team di contributori nel loro lavoro per costruire e mantenere WordPress, e un responsabile marketing e comunicazione, per guidare il team di marketing e supervisionare il miglioramento di WordPress.org, dei siti Web correlati e di tutti i suoi punti vendita (sfortunatamente, la persona assegnata a questo ruolo ha lasciato non molto tempo dopo, quindi è necessario trovare qualcun altro per assumere questa posizione).
Team di triage formato per affrontare questioni aperte
Durante la fase di sviluppo iniziale di Gutenberg, diverse persone si sono lamentate del fatto che i bug esistenti, che si erano accumulati a migliaia, dovrebbero essere corretti prima di avventurarsi nell'aggiunta di nuove funzionalità a WordPress.
Nel marzo di quest'anno, è stato formato un team di triage per ripulire i problemi aperti nel tracker di bug di WordPress Trac. Questo è un duro lavoro che è stato necessario per molti anni. Se mai finito, WordPress avrebbe quindi la possibilità di passare da Trac a un bug tracker più moderno, come GitHub.
L'accessibilità sta diventando costantemente un problema
I problemi di accessibilità vengono affrontati in ogni nuova versione di Gutenberg, con la versione 6.3 che fornisce la maggior parte dei miglioramenti. Al ritmo attuale di miglioramento, i problemi di accessibilità più importanti (come riportato nel Gutenberg Accessibility Audit) dovrebbero presto far parte del passato.
A giudicare Gutenberg per i suoi meriti
Ora che abbiamo diviso Gutenberg dal lancio del prodotto Gutenberg, possiamo procedere ad analizzare Gutenberg come prodotto e decidere se vale la pena aggiungerlo al nostro stack di applicazioni, basandoci esclusivamente sui suoi pregi e difetti. Molte persone giustamente sottolineano i problemi di Gutenberg come il motivo per non fidarsi di esso (invece di concentrarsi sul lancio fallito). Tuttavia, Gutenberg è migliorato a passi da gigante e molti dei problemi criticati potrebbero essere stati risolti o potrebbero essere sul punto di essere risolti. Pertanto, le valutazioni negative dovrebbero avere una data di scadenza ed essere rivalutate. Se possiamo dare a Gutenberg un nuovo tentativo e vedere a che punto si trova oggigiorno, potremmo apprezzare che, dopo tutto, non è poi così male. Secondo me, Gutenberg merita un'accoglienza più calorosa di quella che riceve attualmente.
Sono stupito che Gutenberg venga ancora paragonato al modo precedente di modificare i contenuti in WordPress (principalmente tramite tinymce, ma anche shortcode, widget e altri), sostenendo che è più difficile codificare tramite Gutenberg. Questo può essere vero, ma manca anche il punto: Gutenberg non è qui per fornire un nuovo modo di codificare la nostra applicazione, producendo le stesse funzionalità del passato; invece, è qui per migliorare notevolmente ciò che si può fare, offrendo di aggiungere funzionalità alle nostre applicazioni che potevano essere solo sognate in passato. Inoltre, Gutenberg non è un altro page builder. In effetti, confrontare Gutenberg con Divi o Beaver Builder non ha senso allo stesso modo, perché è come confrontare un Victorinox con un coltello normale: Sì, puoi creare siti/pagina con Gutenberg (in realtà non ancora, ma è già un lavoro in progresso), ma questo è solo uno dei suoi tanti usi; ci sono molti altri usi che inizialmente sono nascosti, ma una volta che li estrai dal loro scompartimento e capisci come funzionano, verrà rivelato un nuovo mondo di possibilità. Di seguito, descriverò alcune di queste nuove possibilità che Gutenberg porta in tavola.
Per prima cosa, discutiamo di ciò che non è eccezionale in Gutenberg. L'unica cosa in cui credo che Gutenberg possa essere veramente considerato dannoso è nella ripida curva di apprendimento di React (che è la libreria JavaScript con cui Gutenberg è codificato). WordPress è sempre stato molto inclusivo, consentendo a persone di qualsiasi background (non solo programmatori, ma anche non tecnici come blogger, addetti al marketing, venditori e simili) di creare un tema o un plug-in o avviare un sito. Senza dubbio non è più così, ed è ingiusto aspettarsi che tutti debbano imparare React per creare un blocco Gutenberg (non è necessariamente così, poiché possiamo anche creare blocchi usando altre librerie JavaScript, e anche senza usare JavaScript , ad esempio tramite i blocchi ACF, tuttavia l'utilizzo di React è l'opzione più logica se non altro perché Gutenberg è codificato con esso). L'unico argomento che potrebbe giustificare questo svantaggio è se rende l'esperienza migliore per l'utente. Vediamo se questo può essere considerato il caso.
Come ho sostenuto in un mio precedente articolo, l'architettura basata su blocchi di Gutenberg cambia radicalmente il modo in cui vengono costruite le applicazioni: invece di pensare in codice HTML, ora possiamo pensare in termini di componenti come unità per costruire il sito web. Questa architettura è più manutenibile e resiliente, poiché ogni componente (o blocco) può essere sviluppato e testato in modo indipendente e poiché è facilmente riutilizzabile può abbassare i costi di sviluppo di diverse applicazioni. In effetti, la recente popolarità delle librerie JavaScript come Vue e React può essere ampiamente attribuita al loro supporto per i componenti. È un'ottima funzionalità che gli sviluppatori adorano e che, credo, una volta che inizi a programmare, non si torna indietro.
In questo stesso articolo, descrivo anche come Gutenberg potrebbe supportare la strategia "Create Once, Publish Everywhere" (nota anche come "COPE"), consentendo di produrre un'unica fonte di verità dei contenuti da alimentare a tutte le nostre applicazioni, per qualsiasi supporto o piattaforma su cui funzionano: Web, e-mail/newsletter, app iOS/Android, VR/AR, assistenti domestici (come Amazon Alexa) e altri. Poiché semplifica notevolmente la gestione complessiva dei contenuti, COPE consente anche di ridurre i costi di produzione dei contenuti per piattaforme diverse. Quando ho scritto il mio articolo per la prima volta, stavo teorizzando che si poteva fare. Tuttavia, ho recentemente implementato COPE per WordPress e funziona a meraviglia! (Rimani sintonizzato per un altro articolo in cui spiego come funziona in dettaglio.)
La combinazione di COPE e delle API di WordPress (WP REST API, WPGraphQL e la mia API PoP) fornirà un motivo convincente per gestire tutti i nostri contenuti, per tutte le nostre applicazioni, tramite WordPress. L'altro motivo convincente sarà la facilità d'uso di Gutenberg (che non è ancora completamente qui, ma al ritmo di sviluppo attuale arriverà prima o poi), consentendo all'utente finale di creare contenuti elaborati in un modo molto semplice.
Abbiamo già accesso a nuove fantastiche funzionalità, come un'anteprima in tempo reale dell'aspetto del contenuto, il copia/incolla da Google Docs con una formattazione perfetta, la creazione di intricati livelli di griglia con elementi nidificati all'interno e molti altri. Possiamo anche aspettarci che nuovi blocchi forniscano funzionalità assolutamente inaspettate che non avremmo mai immaginato. La mia scommessa è che, attraverso Gutenberg, WordPress sia pronto a diventare il digital asset manager del web. (Ho già scritto un articolo che sarà presto pubblicato qui su Smashing Magazine in merito a questo argomento e alla mia giustificazione per questa affermazione audace.)
Inoltre, Gutenberg permette di riutilizzare il codice con altri CMS o framework (come per Drupal e per Laravel), in modo che la codifica per WordPress non debba più essere limitata a WordPress, permettendoci ancora una volta di abbassare i costi per sviluppare una libreria che deve funzionare nel maggior numero possibile di sistemi (ad esempio, un'azienda che fornisce un'integrazione della sua API per molte piattaforme e linguaggi diversi, come Stripe, potrebbe trarne vantaggio). Attualmente, solo il codice lato client (JavaScript e CSS) sembra essere riutilizzato, tuttavia è possibile riutilizzare anche il codice PHP lato server. (Ancora una volta, pubblicherò presto un articolo su Smashing spiegando come fare proprio questo.)
Queste caratteristiche sono già una realtà e possiamo aspettarci che Gutenberg fornisca molte ragioni più convincenti per la sua esistenza negli anni a venire (secondo Matt Mullenweg, Gutenberg ha attualmente implementato solo il 10% circa del suo potenziale).
Possiamo finalmente tentare di raggiungere un verdetto sul prodotto Gutenberg: la mia posizione è che stabilisce una barriera più alta di accesso a WordPress, il che è deplorevole, tuttavia, è anche un software meravigliosamente progettato che garantisce nuovi poteri a WordPress e , vista l'importanza di WordPress, nel mondo dello sviluppo web in generale. E tra questo compromesso tra costi e benefici, credo che avere Gutenberg come parte di WordPress valga più la pena. Spero che possiate essere d'accordo con la mia opinione o, in caso negativo, almeno i motivi contrari possono essere basati esclusivamente sulle caratteristiche di Gutenberg come prodotto.
Conclusione
Gutenberg è attualmente al suo meglio, avendo iniziato a fornire esperienze utente deliziose che prima non erano possibili con WordPress. Tuttavia, non tutti sono consapevoli di questo fatto perché non tutti possono arrivare ad abbracciare Gutenberg. Questa è una circostanza sfortunata perché Gutenberg (come il prodotto) non dovrebbe essere incolpato per gli errori avvenuti durante il lancio di Gutenberg. Se siamo in grado di dividere queste due entità e trattarle ciascuna in modo indipendente, possiamo quindi chiedere in modo convincente alle persone di dare a Gutenberg un'altra possibilità , suggerendo che vale la pena avere Gutenberg come prodotto, anche se il lancio di Gutenberg è stato un processo fallito.
In questo articolo, ho fatto un'autopsia del fallito lancio di Gutenberg, sulla base della mia comprensione degli eventi. L'esecuzione di tale autopsia può aiutare la comunità e la leadership a fare in modo che quegli sfortunati errori non si ripetano. Dopo l'autopsia, ho provveduto a valutare Gutenberg in base ai suoi meriti e ho dichiarato la mia posizione: credo che Gutenberg sia un ottimo strumento da avere e la community di WordPress può sicuramente trarne vantaggio. E poiché andrà sempre meglio, Gutenberg potrebbe persino inaugurare una nuova era d'oro per WordPress.