大胆思考、快速学习和倾听:构建 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 生态系统内外的开发人员,这将是一个有趣的挑战。

拥有产品业务意味着您总是需要移动。 您停止创新的那一刻就是新玩家进入太空并吸引您的客户的那一刻。