Aggiornamento: questo post è diventato virale, in parte anche fuori dalla comunità di Exercism. Grazie a tutti quelli che mi hanno scritto parole di sostegno e alle centinaia di persone che hanno donato in risposta. Ho aggiunto un po' di contesto e chiarito alcune cose in un commento su Hacker News.
Ciao a tutti!
La settimana scorsa abbiamo raggiunto il traguardo enorme di due milioni di utenti. Nel giro di poche ore abbiamo raggiunto anche 45 milioni di esercizi inviati.
Un giorno dopo ho pagato l'ultimo stipendio per me, Erik e Aron, e il nostro conto in banca si è ridotto al punto che non possiamo permetterci di pagarne un altro.
Credo che questo riassuma piuttosto bene la storia di Exercism. Ogni giorno più di 1.200 persone si iscrivono a Exercism. Decine di migliaia risolvono esercizi ogni giorno. Ma non abbiamo abbastanza soldi per continuare a lavorare sulla piattaforma.
Abbiamo provato di tutto per cambiare questa situazione. Abbiamo parlato con centinaia di finanziatori e aziende, ma Exercism non è il tipo di progetto che sono disposti a sostenere. Non rientra in una nicchia che abbia senso per loro. Servendo persone dappertutto, sembra che non serviamo una fascia demografica abbastanza ristretta da allinearci alle missioni, spesso altrettanto ristrette, dei finanziatori!
L'unico ambito in cui abbiamo avuto un successo promettente è la pubblicità sul sito. Ma lo sforzo necessario per trovare inserzionisti e gestirli, insieme al mio desiderio di non inondare Exercism di pubblicità, mi porta a pensare che non sia una strategia molto sostenibile.
Credo sia giusto dire che a questo punto ho perso la fiducia nel modello di business no-profit: non riesce a funzionare in modo da permettere a Exercism di raggiungere il suo potenziale. Mantenere qualcosa gratuito per tutti si basa o sull'utente che diventa il prodotto, o su donazioni significative; senza né l'uno né l'altro, è molto difficile crescere.
Erik e la ristrutturazione dell'open source
Probabilmente la cosa più difficile della situazione attuale è che non possiamo più permetterci di pagare Erik, quindi lascerà il suo ruolo di dipendente alla fine di questa settimana.
Erik è stato una parte assolutamente fondamentale della crescita e del successo di Exercism negli ultimi anni. È stato anche un collega e un amico meraviglioso, e mi mancherà davvero lavorare al suo fianco. Inutile dire che sono incredibilmente grato a Erik per tutto il suo duro lavoro e il suo sostegno. E so che molti di voi provano lo stesso (se è così, fatti sentire e faglielo sapere!)
Erik è un fan irriducibile di Exercism e continuerà come maintainer senior di alcuni track, e manterrà i suoi privilegi di super-admin, ma la miriade di cose nascoste (e spesso un po' noiose) che fa ogni giorno deve essere distribuita in tutta l'organizzazione.
La cosa fondamentale che stiamo rendendo obbligatoria è che ogni PR in un repository di Exercism attivo riceva una revisione prima di poter essere unita (con una sola eccezione, descritta più avanti). In generale è già così da molto tempo, ma ci sono punti in cui le cose sono sfuggite, quindi ora abbiamo scritto degli script per garantire che sia sempre così.
Per farlo, abbiamo ideato un nuovo sistema di classificazione dei repository, con regole specifiche per ogni tipo:
-
maintained: un repository con più maintainer. Tutte le PR richiedono la revisione di un maintainer del track. -
maintained-solitary: un repository con un solo maintainer. Un nuovo team di cross-track-maintainers riceverà un ping per revisionare tutte le PR. -
unmaintained: un repository senza maintainer. Anche in questo caso riceverà un ping il team dei cross-track-maintainers. -
maintained-autonomous: un repository in cui tutti i maintainer fanno anche parte del team dei cross-track-maintainers. Questa è l'eccezione, in cui possono unire da soli le proprie PR. -
wip-track: un track non ancora lanciato. Dato che non è ancora «live», non ha restrizioni.
Abbiamo creato due nuovi team su GitHub che fanno rispettare questa regola.
-
@exercism/guardians: un team che controlla la sicurezza delle PR verso i repository di strumenti (test runner, analyzer, ecc.). Composto da alcuni poliglotti di lunga data. -
@exercism/cross-track-maintainers: un nuovo team composto da poliglotti di lunga data che sono attivi sul sito ogni giorno e che hanno lo stesso livello di pedanteria in fase di revisione che ho io (cioè non sono né più severi né più flessibili di me). Questo è importante, perché voglio un'esperienza coerente e reattiva da parte di questo team.
Entrambi i team sono solo su invito. Li ricontrollerò di tanto in tanto.
Come parte di tutto questo, abbiamo anche invitato nuovi maintainer e «sfoltito» molti maintainer inattivi. A tutti quelli che sono stati rimossi: grazie per tutto quello che avete fatto, e sappiate che sarete sempre i benvenuti se troverete il tempo e la voglia di contribuire di nuovo seriamente a Exercism!
E adesso?
Fin qui è stato tutto un po' cupo e pessimistico. Nella vita le cose non vanno sempre come speri, ma quando la vita ti dà i limoni devi fare la limonata!
Al momento abbiamo circa 800 donatori mensili e circa 7.500 dollari di donazioni al mese. Questo copre le spese dei nostri server quasi esattamente. Quindi, se in questo momento stai donando, grazie. Letteralmente, sei tu a tenere accesi i nostri server. La nostra base di donatori è in genere piuttosto stabile, quindi non sono troppo preoccupato per le prospettive esistenziali di Exercism.
(Sarebbe davvero utile costruire un piccolo cuscinetto finanziario, quindi se te lo puoi permettere, valuta l'idea di fare una donazione ricorrente o una tantum 💙)
Abbiamo anche una comunità, un team di maintainer e un gruppo di mentori straordinari che continuano ad aggiungere nuovi esercizi (e nuovi track!), ad aiutare gli studenti e a fare moltissime altre cose. Come organizzazione, probabilmente Exercism non è mai stato così in salute. Sta crescendo più velocemente che mai, più persone che mai lo usano, e credo che il prodotto e l'esperienza educativa siano migliori che mai. Quindi sono ancora profondamente dedito a far crescere e a coltivare Exercism.
Negli ultimi mesi ho lavorato a un nuovo prodotto educativo che insegna i fondamenti della programmazione e che lancerò nel 2025. Il 96% delle persone che provano a imparare a programmare si arrende: per me è inaccettabile, quindi il mio obiettivo è cambiare le cose. Il mio piano è dare ai principianti una base solidissima, per poi indirizzarli verso Exercism. Sto creando una nuova azienda a scopo di lucro per questo nuovo prodotto e userò i ricavi per continuare a far crescere Exercism. Per questo ho raccolto un piccolo investimento, il che significa che posso continuare a pagare lo stipendio di Aron: resterà con noi, lavorerà a quel progetto insieme a me e farà qualche ritocco a Exercism quando serve.
Sto anche pensando (con una probabilità del 90% circa) di tenere un corso dedicato a imparare a programmare da gennaio a marzo 2025, dove potrò mettere alla prova alcune delle cose che stiamo costruendo e sporcarmi le mani lavorando con gli studenti che le piattaforme esistenti non servono. Quindi tieni d'occhio un annuncio a riguardo, arriverà presto.
Sto valutando di lanciare una versione base di Exercism Teams, come modo per generare un po' di ricavi in più. C'è un post sul forum dove puoi lasciare le tue opinioni. Qualsiasi opinione tu abbia, mi farebbe davvero piacere leggerla!
Ma prima, ho bisogno di una pausa! Mi prenderò due settimane di pausa, staccherò tutto e mi riposerò un po'.
Grazie a tutti per il sostegno, emotivo e finanziario. La comunità di Exercism è fenomenale e sono profondamente grato a tutti quelli che sono coinvolti nel progetto.