Pensa in grande, impara velocemente e ascolta: le mie lezioni dalla creazione di un prodotto SaaS WordPress
Pubblicato: 2017-04-19Un anno e mezzo fa, quando ho iniziato a pensare a quale sarebbe stato il mio prossimo progetto parallelo, non potevo immaginare il successo che avrebbe avuto. Anche se può sembrare piccolo per alcune persone, convincere qualcuno a credere abbastanza nel tuo prodotto da darti soldi per questo è un enorme risultato di cui dovresti essere orgoglioso.
Non è facile, però. Ci vuole dedizione, duro lavoro e un po' di fortuna per ottenere il tuo primo cliente. Come diceva Lao Tzu: “ Un viaggio di mille miglia inizia con un solo passo ”.
Identifica il problema
Prima di poter costruire un business, hai bisogno di un prodotto. Prima di costruire un prodotto, hai bisogno di un problema. Trovare un problema che deve essere risolto potrebbe essere la parte più difficile del tuo viaggio, quindi prenditi il tuo tempo con esso. Hai mai pensato:
"Vorrei che ci fosse <cosa> per <problema>"?
Se lo hai fatto, probabilmente lo hanno anche altre persone. Questo è un buon punto di partenza per esplorare le tue idee sui prodotti.
Una cosa che ho imparato attraverso i miei numerosi prodotti falliti è che se vuoi avere successo, aiuta molto se stai risolvendo un problema che hai tu stesso. Quando ero ancora uno sviluppatore WordPress freelance, mi sono spesso imbattuto nel problema dell'aggiornamento di temi e plug-in sugli host dei client. È sempre stato un grosso problema da fare, quindi ho pensato che essere in grado di collegarmi al sistema di aggiornamento di WordPress avrebbe reso la vita molto più semplice. Kernl è nato da questo problema e ha costituito il cuore del prodotto.
Al centro di Kernl, volevo che fosse un prodotto SaaS WordPress facile da usare. Il mio sospetto era che le persone non volessero davvero gestire la propria infrastruttura di aggiornamento e avrebbero pagato volentieri per un provider affidabile. I clienti dovrebbero solo caricare un file ZIP del loro plugin o tema e noi ci occuperemo del resto. Mantenere il prodotto principale strettamente mirato mi ha davvero aiutato a concentrarmi sulla fornitura di valore.
Avere un giocatore esistente nel tuo spazio problematico funge da convalida del problema.Tweet
Sul tema dell'identificazione del problema, voglio prendermi un momento per parlare delle dimensioni di un mercato. Solo perché qualcuno ha già creato un prodotto che risolve il tuo problema non significa che non ci sia spazio anche per la tua soluzione. Se riesci a fare quello che sanno fare meglio e differenziarti, otterrai clienti. Vale anche la pena notare che avere un giocatore esistente nel tuo spazio problematico funge da convalida del problema.
Inizia in piccolo, pensa in grande ma finisci sempre
Nella nostra community si sente spesso parlare di "metodologia lean startup". Le persone hanno la tendenza a scegliere quali parti della lean startup seguire e io non faccio eccezione. Sicuramente non l'ho seguito esattamente, ma una cosa che ero sicuro di fare era distillare Kernl fino al più piccolo pezzo spedibile possibile prima di iniziare a lavorarci.
Tagliare il traguardo per qualsiasi incremento può essere difficile, soprattutto se lo fai nel tuo tempo libero. Una cosa da ricordare è che va bene iterare. Quando ho spedito il primo incremento di Kernl, non era perfetto, ma ha fatto quello che avevo detto che avrebbe fatto: fornire plugin privati e aggiornamenti del tema. Durante il primo incremento, ho tenuto un registro arretrato di cose che dovevano ancora essere fatte. Sembrava che crescesse sempre e non era una brutta cosa. Ci sono sempre più cose da fare, ma mantenere la concentrazione è ciò che fa avanzare i prodotti.
L'unica volta che ho provato a fare un rilascio "big bang" per Kernl è stato un fallimento. Ho provato a creare un prodotto di analisi e le cose non hanno funzionato. Non credevo nella funzione che stavo costruendo, e questo si vedeva nella mia ridotta dedizione e motivazione. Dopo un mese di lavoro, ho ridotto le perdite e fatto affondare tutto. È stata una lezione importante e mi ha ricordato che non dovrei iniziare qualcosa se non sono disposto a finire. Purtroppo il mio tempo non è libero e ci sono sempre altre cose che lo richiedono.
"Di che colore è la stalla?"
Circa un anno fa un collega mi ha presentato il termine "bicicletta". Bikeshedding è un termine coniato come metafora della legge della banalità di Parkinson. La storia racconta che c'è un gruppo di ingegneri che lavora per costruire una centrale nucleare, ma invece di spendere il loro tempo saggiamente e dibattere sulla progettazione del reattore, finiscono per sprecare tutto il loro tempo sul colore che dovrebbe essere la rimessa delle biciclette davanti alla centrale elettrica essere.
Nel mio lavoro quotidiano, buttiamo in giro il termine “bicicletta” ogni volta che ci rendiamo conto che stiamo discutendo di argomenti banali. Se la risposta alla domanda non ha importanza, o se una qualsiasi delle soluzioni proposte andrebbe bene, scegline una e vai avanti. Essere decisivi è incredibilmente importante quando crei un prodotto SaaS nel tuo tempo libero. Ai clienti non interessa davvero se usi Node.js o PHP, scegline uno e provalo.
Essere decisivi è incredibilmente importante quando crei un prodotto SaaS nel tuo tempo libero.Tweet
Per il cliente, il risultato è lo stesso e hai risparmiato tempo in modo da poter lavorare su funzionalità che influiscono direttamente sul tuo cliente. In ogni caso, sii deciso e non andare in bicicletta .
Scegli la tecnologia che ti fa andare veloce
Come sviluppatore, sono felice di discutere per ore con chiunque ascolti perché ho scelto la tecnologia A o la tecnologia B, ma quando stai costruendo un prodotto probabilmente non ha importanza. Scegli una tecnologia che conosci bene e mettiti al lavoro. Se riesci a costruirci velocemente, è quasi sempre la scelta giusta.
Le mie scelte tecnologiche con Kernl riflettono i miei obiettivi per il progetto. Volevo creare un prodotto WordPress SaaS di successo e forse imparare qualcosa di tecnico nel processo, quindi ho scelto di creare Kernl principalmente in tecnologie che conoscevo (Node.js per il back-end con Angular 1 sul front-end). Nessuna di queste tecnologie mi ha ostacolato e sono stato super produttivo con loro.
Un'altra cosa da considerare quando stai sviluppando è il debito tecnico. Se stai cercando di muoverti velocemente e fornire il tuo primo incremento, va bene assumersi debiti tecnici. Ricorda solo che il debito tecnico ha un modo per alzare la sua brutta testa quando meno te lo aspetti. Aspettati che a un certo punto in futuro dovrai ripagarlo. Durante la fase pre-alfa e alfa di Kernl, ho assunto un sacco di debiti tecnici sotto forma di processo di distribuzione manuale, callback hell, cattiva infrastruttura e nessun test di unità o integrazione. Mentre stavo acquisendo i miei primi clienti, ero d'accordo, ma una volta che hanno iniziato a fare affidamento su Kernl ho dovuto ripagarlo in modo da poter fornire loro il miglior servizio possibile.
Marketing di un WordPress SaaS
Cercare di essere un marketer quando sei uno sviluppatore può essere difficile. Personalmente sono una persona molto riservata. Comunico bene con gli altri, ma preferisco trascorrere del tempo con me stesso o con gli amici/familiari intimi. Quando stai commercializzando il tuo prodotto, impari a superare la spiacevole sensazione di rifiuto. Non a tutti piacerà quello che stai facendo e devi solo affrontarlo.
Kernl è stato inizialmente commercializzato tramite un post "Show Hacker News" e alcuni post su Reddit. Successivamente, ho iniziato a cercare su Twitter parole chiave pertinenti e ho interagito direttamente con le persone. Questo processo è stato super manuale e laborioso, ma ha funzionato abbastanza bene da ottenere alcuni clienti paganti.
A volte anche l'avvio di un prodotto richiede un po' di fortuna. Proprio in quel momento, stavo lanciando Kernl, il mio principale concorrente (Aggiornamenti WP) è stato venduto in alcuni affari loschi a una terza parte. La loro comunità di utenti è rimasta sconvolta da questo, e ancora di più quando il loro servizio è andato in crash e non è più tornato per diversi giorni. Riconoscendo che l'opportunità stava bussando alla mia porta, ho iniziato a twittare a tutti quelli che si lamentavano. Questo è stato senza dubbio il miglior afflusso di clienti che abbia mai ricevuto. Queste persone avevano bisogno di un prodotto su cui poter fare affidamento e io ero determinato a realizzare Kernl quel prodotto.
Ho fatto alcuni passi falsi lungo la strada, però. Ho eseguito alcuni esperimenti con Google Adwords, ma non sembravano mai convertire bene. Dopo due mesi ho smesso di pubblicare gli annunci e ho deciso di perseguire altre opzioni. Realisticamente, penso che l'approccio migliore al marketing di Kernl sia tramite il content marketing. Questo può essere molte cose, ma penso che avere un bel blog con molti articoli specifici per gli sviluppatori di WordPress aiuterebbe a indirizzare molto traffico e potenziali clienti verso Kernl.
Ascolta i tuoi clienti
Una cosa che ho imparato nel corso degli anni è che essere reattivi ai clienti è molto importante. Quando si tratta di Kernl, sono il più reattivo possibile e sembra che i clienti generalmente lo apprezzino. Mi impegno sempre a rispondere subito alle richieste anche se non ho una risposta, così il cliente sa che il suo problema è stato riconosciuto.
Oltre a comunicare rapidamente, cerco il più spesso possibile di fornire risposte e spiegazioni dettagliate ai clienti di Kernl. Il 95% delle volte comunico con un collega sviluppatore e so che se la situazione fosse invertita, mi piacerebbe saperne di più sul perché è successo qualcosa e su cosa si sta facendo per risolverlo. Alcuni potrebbero considerarla una comunicazione eccessiva, ma ritengo fortemente che la comunicazione eccessiva sia meglio della comunicazione insufficiente.
Una delle cose più importanti che ho imparato parlando con i clienti è stata la necessità di stabilità.
Ho deciso di dedicare l'intera fase beta del lancio di Kernl alla stabilità e all'automazione.Tweet
Una grande manciata della base di clienti iniziale di Kernl era migrata da WP-Updates a causa dei problemi di downtime che stavano riscontrando e non volevo che iniziassero a vedere Kernl in quella luce se non potevo mantenere il servizio attivo. Con questo in mente, ho deciso di dedicare l'intera fase beta del lancio di Kernl alla stabilità e all'automazione. Non sono state scritte nuove funzionalità in quel periodo di 2-3 mesi, ma il pesante refactoring, i test automatizzati e i miglioramenti dell'infrastruttura hanno reso Kernl un prodotto di gran lunga migliore rispetto all'alpha.
Stabilisci obiettivi realistici
Ci sono molti modi in cui mi sono avvicinato a Kernl che erano diversi dai precedenti tentativi di un prodotto SaaS. Una delle cose più impattanti per me è stata la definizione di obiettivi realistici. Non ho detto "Voglio 1000 clienti e $ 50.000 di entrate alla fine di 3 mesi". Ho invece fissato un obiettivo a breve termine di "Voglio poter portare mia moglie fuori a una bella cena una volta al mese esclusivamente con i soldi fatti da Kernl". Una volta raggiunto quell'obiettivo, ho fissato un obiettivo leggermente più grande: "Fai un pagamento in auto" + il mio primo obiettivo.
Per me, impostare obiettivi che erano appena fuori portata erano importanti. Mi ha dato qualcosa che credevo fosse realizzabile per cui lottare. Naturalmente, ci sono altri obiettivi più grandi che ho per Kernl (rendere Kernl il mio lavoro a tempo pieno), ma quelli sono ancora molto lontani. Devi avere qualcosa per cui lottare a breve termine se vuoi rimanere motivato.
Pensa in avanti
Ad un certo punto del mio viaggio con Kernl come prodotto SaaS di WordPress, mi sono sentito come se avessi iniziato a sbattere contro un muro. Forse stava diventando più difficile acquisire clienti, o forse era perché non mi stavo impegnando abbastanza, ma sembrava che Kernl avesse bisogno di qualcosa di nuovo per rimanere rilevante. Quando ho iniziato a sentirmi in quel modo, ho iniziato a pensare più avanti. Ho chiesto "Qual è qualcosa che posso aiutare a introdurre nell'ecosistema WordPress con molto valore?" e "Questa idea può espandere Kernl oltre l'ecosistema WordPress?".
L'obiettivo iniziale di Kernl era fornire aggiornamenti per plugin e temi privati di WordPress, ma con la crescita di Kernl ho pensato di poter aiutare gli sviluppatori a modernizzare il flusso di lavoro di distribuzione. Da quando è stato lanciato Kernl, ho aggiunto push to deploy (GitHub, BitBucket, GitLab), notifiche Slack, notifiche webhook e molto altro ancora. Ma sentivo che la prossima funzionalità doveva essere più grande. Più che un bullone. Qualcosa di completamente diverso.
Il prossimo grande obiettivo che ho per Kernl è il più ambizioso che abbia mai impostato: utilizzare Kernl come piattaforma per la segnalazione delle funzionalità. Puoi distribuire lentamente le distribuzioni a una percentuale di persone, individui o tutti senza dover eseguire distribuzioni. Tutto il lavoro del server e del front-end è completo a questo punto, quindi sto lentamente controllando il prodotto per assicurarmi che si adatti bene e sia estremamente facile da usare. Mi rivolgo anche agli sviluppatori sia all'interno che all'esterno dell'ecosistema WordPress, che sarà una sfida divertente.
Avere un'attività di prodotto significa che devi sempre essere in movimento. Il momento in cui smetti di innovare è il minuto in cui un nuovo giocatore arriva nello spazio e prende i tuoi clienti.