大膽思考、快速學習和傾聽:構建 WordPress SaaS 產品的經驗教訓

已發表: 2017-04-19

一年半前,當我開始考慮我的下一個副項目將是什麼時,我無法想像它會取得成功。 雖然對某些人來說這可能看起來很小,但讓任何人對你的產品有足夠的信心並為此給你錢是一項你應該為之自豪的巨大成就。

不過,這並不容易。 獲得第一個客戶需要奉獻精神、辛勤工作和一些運氣。 正如老子所說:“千里之行,始於足下”。

確定問題

在您建立業務之前,您需要一個產品。 在構建產品之前,您需要一個問題。 找到一個需要解決的問題可能是你旅程中最困難的部分,所以慢慢來。 你有沒有想過:

“我希望 <problem> 有 <thing>”?

如果你有,其他人也可能有。 這是開始探索您的產品創意的好地方。

探索產品創意

我從許多失敗的產品中學到的一件事是,如果你想成功,如果你解決自己遇到的問題,它會很有幫助。 當我還是一名自由 WordPress 開發人員時,我經常遇到更新客戶端主機上的主題和插件的問題。 這樣做總是很痛苦,所以我認為能夠連接到 WordPress 更新系統會讓生活變得更輕鬆。 Kernl就是從這個問題中誕生的,它構成了產品的核心。

在 Kernl 的核心,我希望它成為一個易於使用的 WordPress SaaS 產品。 我的懷疑是人們並不真的想運行他們自己的更新基礎設施,並且很樂意為可靠的提供商付費。 客戶只需要上傳他們的插件或主題的 ZIP 文件,其餘的由我們處理。 保持核心產品的嚴格範圍確實幫助我專注於交付價值。

在你的問題空間中有一個現有的玩家作為問題驗證。Tweet

在確定問題的主題上,我想花點時間談談市場的規模。 僅僅因為有人已經創建了解決您問題的產品並不意味著您的解決方案也沒有空間。 如果你能做他們做得更好的事情並讓自己與眾不同,你就會得到客戶。 還值得注意的是,在您的問題空間中有一個現有的參與者可以作為問題驗證。

從小處著手,從大處著眼,但始終完成

您經常聽到人們在我們的社區中談論“精益創業方法論”。 人們傾向於選擇他們遵循的精益創業的哪些部分,我也不例外。 我絕對沒有完全遵循它,但我確定要做的一件事是在我開始研究之前將 Kernl 提煉成最小的可交付部分。

越過終點線以獲得任何增量都可能是一項艱鉅的任務,特別是如果您在空閒時間這樣做。 要記住的一件事是可以迭代。 當我發布 Kernl 的第一個增量時,它並不完美,但它確實做到了我所說的:提供私有插件和主題更新。 在第一個增量中,我一直在積壓一些仍然需要完成的事情。 感覺好像它一直在增長,這不是一件壞事。 總是有更多的事情要做,但保持專注是推動產品前進的動力。

有一次我試圖為 Kernl 做一個“大爆炸”的版本失敗了。 我試圖創建一個分析產品,但沒有成功。 我不相信我正在構建的功能,這表明我的奉獻精神和動力下降。 經過一個月的工作,我減少了損失並破壞了整個事情。 這是一個重要的教訓和提醒,如果我不願意完成某件事,我就不應該開始。 不幸的是,我的時間不是空閒的,而且總是有其他事情需要它。

“自行車棚是什麼顏色的?”

大約一年前,一位同事向我介紹了“bikeshedding”這個詞。 Bikeshedding 是一個術語,被創造為帕金森瑣碎定律的隱喻。 故事說,有一群工程師正在努力建造一座核電站,但他們沒有明智地花時間和辯論反應堆設計,而是把所有的時間都浪費在了電廠前的自行車棚應該是什麼顏色上是。

在我的日常工作中,每當我們意識到我們正在討論瑣碎的話題時,我們就會拋出“自行車脫落”這個詞。 如果問題的答案真的無關緊要,或者任何建議的解決方案都可以,只需選擇一個並繼續前進。 當您在空閒時間創建 SaaS 產品時,果斷是非常重要的。 客戶真的不在乎您使用的是 Node.js 還是 PHP,只需選擇一個就可以了。

當您在空閒時間創建 SaaS 產品時,果斷是非常重要的。Tweet

對於客戶來說,結果是一樣的,而且您節省了時間,因此您可以處理直接影響客戶的功能。 無論如何,要果斷,不要騎自行車

選擇讓您快速前進的技術

作為一名開發人員,我很樂意與任何願意傾聽我為什麼選擇技術 A 或技術 B 的人討論數小時,但是當您構建產品時,這可能並不重要。 選擇您熟悉的技術並開始工作。 如果您可以快速構建它,那麼它幾乎總是正確的選擇。

我對 Kernl 的技術選擇反映了我對該項目的目標。 我想構建一個成功的 WordPress SaaS 產品,並可能在此過程中學習一些技術知識,因此我選擇主要使用我理解的技術構建 Kernl(後端為 Node.js,前端為 Angular 1)。 這些技術都沒有妨礙我,而且我使用它們的效率非常高。

Kernl 主頁截圖

開發時要考慮的另一件事是技術債務。 如果您試圖快速行動並交付您的第一個增量,那麼承擔技術債務是可以的。 請記住,當您最不期望的時候,技術債務有一種方法可以抬起醜陋的腦袋。 預計在未來的某個時候你需要償還它。 在 Kernl 的 pre-alpha 和 alpha 階段,我以手動部署過程、回調地獄、糟糕的基礎設施以及沒有單元或集成測試的形式承擔了大量的技術債務。 當我在獲得前幾個客戶的過程中,我對此表示滿意,但是一旦他們開始依賴 Kernl,我就必須償還它,以便我可以為他們提供最好的服務。

營銷 WordPress SaaS

當您是開發人員時,嘗試成為營銷人員可能會很困難。 我個人是一個非常私人的人。 我與他人溝通良好,但我更喜歡與自己或親密的朋友/家人共度時光。 當你推銷你的產品時,你會學會克服被拒絕的不舒服感覺。 不是每個人都會喜歡你正在做的事情,你只需要處理它。

Kernl 最初是通過“Show Hacker News”帖子和 Reddit 上的一些帖子進行營銷的。 之後,我開始在 Twitter 上搜索相關關鍵詞並直接與人互動。 這個過程是超級手工和勞動密集型的,但效果很好,足以吸引一些付費客戶。

有時啟動產品也需要一點運氣。 就在那時,我正在推出 Kernl,我的主要競爭對手(WP Updates)在一些不正當的交易中被賣給了第 3 方。 他們的用戶社區對此感到不安,當他們的服務出現故障並且好幾天都沒有恢復時,更是如此。 意識到機會正在敲我的門,我開始向所有抱怨的人發推文。 這是我收到的最好的客戶湧入。 這些人需要一個他們可以依賴的產品,而我決心讓 Kernl 成為那個產品。

不過,我確實在此過程中犯了一些錯誤。 我用 Google Adwords 進行了一些實驗,但它們似乎從來沒有很好地轉換。 兩個月後,我停止投放廣告並決定尋求其他選擇。 實際上,我認為營銷 Kernl 的最佳方法是通過內容營銷。 這可能是很多事情,但我認為擁有一個包含大量 WordPress 開發特定文章的漂亮博客將有助於推動大量流量和潛在客戶轉向 Kernl。

傾聽您的客戶

多年來我學到的一件事是,響應客戶非常重要。 當談到 Kernl 時,我會盡可能地響應,而且似乎客戶普遍喜歡它。 即使我沒有答案,我也總是會立即回复詢問,因此客戶知道他們的問題已得到確認。

除了快速溝通外,我還盡可能多地向 Kernl 的客戶提供詳細的答案和解釋。 95% 的時間我都在與開發人員交流,我知道如果情況發生逆轉,我想更多地了解為什麼會發生某些事情以及正在採取什麼措施來解決它。 有些人可能會認為這是過度溝通,但我強烈認為過度溝通總比溝通不足好。

我從與客戶的交談中學到的最重要的事情之一就是對穩定性的需求。

我決定將 Kernl 發布的整個 beta 階段專門用於穩定性和自動化。Tweet

由於存在停機問題,Kernl 的大部分初始客戶群已經從 WP-Updates 遷移出去,如果我無法保持服務正常運行,我不希望他們開始以這種方式看待 Kernl。 考慮到這一點,我決定將 Kernl 發布的整個 beta 階段專門用於穩定性和自動化。 在這 2-3 個月的時間裡,沒有編寫任何新功能,但是大量的重構、自動化測試和基礎設施改進使 Kernl 成為比 alpha 版本更好的產品。

設定切合實際的目標

我接觸 Kernl 的方法有很多,它們與之前對 SaaS 產品的嘗試不同。 對我影響最大的事情之一就是設定切合實際的目標。 我沒有說“我想要 1000 名客戶和 3 個月末的 5 萬美元收入”。 相反,我設定了一個短期目標:“我希望能夠完全用 Kernl 賺的錢,每月帶我妻子出去吃一頓豐盛的晚餐”。 一旦達到這個目標,我就設定了一個稍微大一點的目標:“支付汽車費用”+我的第一個目標。

短期目標 - 支付汽車費用

對我來說,設定遙不可及的目標很重要。 它給了我一些我認為可以努力爭取的東西。 當然,我對 Kernl 還有其他更大的目標(讓 Kernl 成為我的全職工作),但這些還有很長的路要走。 如果你想保持動力,你必須在短期內努力爭取一些東西。

向前思考

在我將 Kernl 作為 WordPress SaaS 產品的旅程中的某個時刻,我感覺自己開始碰壁了。 也許獲取客戶變得越來越難,或者也許是我不夠努力,但感覺 Kernl 需要一些新的東西來保持相關性。 當我開始有這種感覺時,我開始想得更遠。 我問“我可以幫助將哪些東西引入 WordPress 生態系統並具有很大價值?” 和“這個想法能否將 Kernl 擴展到 WordPress 生態系統之外?”。

Kernl 最初的目標是為私有 WordPress 插件和主題提供更新,但隨著 Kernl 的發展,我認為我可以幫助開發人員現代化他們的部署工作流程。 自 Kernl 推出以來,我添加了推送到部署(GitHub、BitBucket、GitLab)、Slack 通知、webhook 通知等等。 但我覺得下一個功能需要更大。 不僅僅是一個螺栓固定。 完全不同的東西。

我對 Kernl 的下一個大目標是我設定的最高目標:使用 Kernl 作為功能標記的平台。 您可以慢慢地向一定比例的人、個人或每個人推出部署,而無需進行部署。 至此,所有服務器和前端工作都已完成,所以我正在慢慢地對產品進行測試,以確保它可以很好地擴展並且非常易於使用。 我還針對 WordPress 生態系統內外的開發人員,這將是一個有趣的挑戰。

擁有產品業務意味著您總是需要移動。 您停止創新的那一刻就是新玩家進入太空並吸引您的客戶的那一刻。