My Fifth Year as a Bootstrapped Founder

Michael Lynch

自力更生创业的第五年

五年前,我辞去了 Google 开发者的工作,创办了自己的自力更生(bootstrapped)软件公司。

头几年,我所有的业务都失败了。没有一家每月收入超过几百美元,而且全都处于亏损状态。

第三年过半时,我做了一个叫 TinyPilot 的设备。它让用户无需安装任何软件就能远程控制自己的电脑。产品很快走红,从那以后它一直是我的主要工作重心。

2022 年,TinyPilot 创造了 81.2 万美元的收入,比 2021 年增长了 76%。

在这篇文章中,我将分享在自力更生创业的第五年里学到的东西。

往期回顾

本年度亮点

TinyPilot 年收入增长至 81.2 万美元

收入/支出20212022变化
销售$459,529$807,459enable JS to see delta
信用卡返现$2,241$4,327enable JS to see delta
原材料-$224,046-$333,656enable JS to see delta
工资-$142,744-$206,187enable JS to see delta
电气工程咨询-$28,662-$124,643enable JS to see delta
广告-$3,873-$51,764enable JS to see delta
网页设计/品牌设计-$15,931-$30,215enable JS to see delta
邮费-$24,227-$30,779enable JS to see delta
云服务-$5,553-$7,865enable JS to see delta
办公场地-$4,400-$6,600enable JS to see delta
设备-$2,083-$5,915enable JS to see delta
其他一切-$4,902-$8,183enable JS to see delta
净利润$5,349$5,979enable JS to see delta

虽然收入增长 35 万美元听起来很了不起,但最终只拿到 6000 美元的利润就没那么令人兴奋了。我不给自己发工资,所以这 6000 美元就是我在 2022 年从公司赚到的全部收入。不过,我对这些数字以及它们对 2023 年的意义感到兴奋。

成本上涨的主要原因之一是电气工程。整个 2021 年,TinyPilot 的电气工程供应商一直难以跟上 TinyPilot 的增长步伐。2021 年底,我换了一家更符合我们需求的新供应商,但他们的价格是原来的三倍。

持续的芯片短缺迫使我们频繁重新设计电路板,导致工程工时和原材料的成本膨胀。我们常常要赶在现有版本的电路板用完之前完成重新设计,因此不得不一再支付加急费用。

我们在 9 月终于摆脱了这种无休止的重设计循环。我希望第四季度的业绩能预示来年的表现。该季度我们的利润为 2.86 万美元,所以如果 2023 年平均每月能赚 9500 美元,我就心满意足了。

TinyPilot 换了新网站

2020 年推出 TinyPilot 时,我告诉自己网站和标志只是临时占位用的。后来事情发展得太快,我一直没时间更换它们。

2022 年,我终于聘请了一家设计机构来制作新标志并重新设计网站。

旧落地页截图
新落地页截图

TinyPilot 网站改版前后对比

我之前写过与这家设计机构合作是多么令人沮丧和昂贵,但我对结果很满意。我的旧网站看起来像个业余项目,而新设计看起来像一家真正的公司。我怀疑至少有一部分销售增长要归功于新设计。

TinyPilot 团队从六人增加到七人

2021 年底,TinyPilot 团队的构成是:

  • 我,唯一的创始人
  • 三名兼职软件开发者
  • 两名负责组装设备和履行订单的兼职本地员工
    • 其中一人还负责客户服务

到 2022 年底,我们增加了两名支持工程师并调整了职责分工,现在团队是:

  • 我,唯一的创始人
  • 两名兼职软件开发者
  • 两名负责组装设备和履行订单的兼职本地员工
    • 两人现在都参与客户服务
  • 两名兼职支持工程师

增加支持工程师的感觉就像找到了拼图中缺失的那一块。在他们加入之前,我是唯一处理技术支持的人,这占用了我大约 20% 的时间。现在,我在支持请求上花费的时间不到 5%,客户也能得到更快的服务。

支持工程师还会做一些我以前没时间做的事,比如调查复杂的 bug、编写文档和改进我们的诊断工具。

团队扩张考验了我作为管理者的能力。2021 年,TinyPilot 的工作流程相当简单。几乎每个人都以单人单位的方式完成工作,成果要么直接交给我,要么直接交给客户。当员工需要相互协调时,也总是发生在同一角色的队友之间。

整合支持工程师意味着要弄清楚不同团队如何协作。当支持请求需要履行人员和支持工程师配合时该如何运作?支持工程师和开发团队之间的反馈回路是什么样的?

PicoShare 成为我增长最快的项目

过去几年让我头疼的一件事是:通过 Google Drive 或 Dropbox 这类云存储服务分享单个文件实在太难了。它们不会给你文件的直接链接——只会给你一个指向其网页界面的链接,在那里他们会劝你的接收者注册账号。如果你把视频上传到 Google Drive,他们会让你等上 15 分钟以上进行重新编码,哪怕视频本来就已经优化得可以直接在浏览器中播放。

作为现有云存储方案的替代品,我做了一个极简的文件分享应用 PicoShare。你只需上传文件,它就会给你一个可以直接分享的直接链接。简单!无需重新编码,也不会提示注册任何东西。

将视频文件上传到 PicoShare 并在另一个浏览器窗口中播放的动画演示
PicoShare 演示

有一些开源工具提供类似的功能,但 PicoShare 的独特之处在于不需要数据库服务器。这意味着你可以在单个 Docker 容器中运行它,而其他方案需要更复杂的编排。

PicoShare 成为我有史以来增长最快的开源项目。它在发布两周内就获得了 600 个 GitHub star。截至撰写本文时,PicoShare 已有超过 10 万次安装

经验教训

不要成为任何人的最小客户

在整个 TinyPilot 网站改版风波中,我犯了很多错误,但核心问题是这家设计机构与 TinyPilot 根本不匹配。

该机构的其他客户的预算是 TinyPilot 的 5 到 20 倍。起初我以为这是天大的好事——这家拥有昂贵客户的豪华机构竟然愿意押注像我这样的小公司。

现实是,TinyPilot 是该机构优先级最低的客户。他们对项目管理不善,导致成本上升、范围膨胀、工期拖延。

现在,当我与新供应商合作时,我会问他们我的公司与他们的其他客户相比如何。如果我在规模、收入或行业等重要维度上是异类,我就会另寻他处。

以 50% 的产能运转

如果你的公司的产能恰好匹配客户的需求,那岂不是美事一桩?员工每周正好工作 40 小时,就能完成每一笔订单、满足每一个支持请求。他们既不会觉得过度劳累,也不会觉得无所事事,也不会有任何闲置时间。

实际上,那会是一个糟糕透顶的系统。以 100% 的利用率运转意味着你没有容错余地。销售激增或员工休假这类平常的事情就会立刻让你不堪重负。

我的目标是让 TinyPilot 的每个人以大约 50% 的产能运转。也就是说,50% 被动工作和 50% 主动工作的平衡。对某些角色来说,这个比例并不完全是五五开,但这是一个很好的经验法则。

技术支持团队是五五分配最明显的例子:他们一半时间用于响应支持请求,另一半时间想办法让用户根本不需要寻求支持。主动任务包括修复产品中的 bug、编写文档和改进我们的诊断工具。

TinyPilot 的每个团队由两个人组成。当其中一人不在时,另一人可以暂停自己的主动工作,去处理时效性强的任务而不至于手忙脚乱。如果我们因为某个热门 YouTube 频道提到我们而订单暴增,我们有富余的产能来消化它。

团队被动任务主动任务
创始人团队管理
供应商管理
审查工作
填补职责空缺
市场营销
销售
重新评估战略
招聘与培训
支持工程师回答技术支持问题编写文档
撰写教程
调查疑难 bug
软件开发者修复紧急 bug
发布新功能
改善开发体验
创建自动化测试
修复非紧急 bug
履行人员组装设备
履行订单
客户服务
制作支持手册
协助市场营销

Ansible 和 git 不是软件分发工具

刚开始做 TinyPilot 时,我不知道如何分发 Linux 软件。

为了发布 TinyPilot 的原型,我用了自己熟悉的工具:bash 脚本、Ansible 和 git。bash 脚本搭建了一个 Ansible 环境并执行一个 Ansible playbook。Ansible 安装依赖项、对操作系统做必要的修改,然后克隆 TinyPilot 的 git 仓库。

安装过程还算凑合,不算出色。它虽然慢,但可靠,而且不需要用户手动配置任何东西。

两年后,TinyPilot 的更新过程成了一团乱麻。它仍然依赖原型时期那些摇摇欲坠的基础,只是现在多了一张错综复杂的相互依赖之网。Ansible role 依赖于 Git 仓库,Git 仓库又依赖于其他 Ansible role,而这些 role 又依赖于一堆 YAML 文件中的参数。微小的改动就要吞掉数周的开发时间。

这一切都是因为我从来没有花心思去学习标准的 Linux 打包工具。

今年,TinyPilot 团队学会了使用 Debian 包。这远没有我想象的那么痛苦。我原以为我们需要部署各种包服务器和密钥服务器,但事实证明完全不需要。找到合适的指南后,整个过程相对容易。

Debian 包加速了我们的开发。工具链能更早发现代价高昂的错误,我们可以轻松地将预发布版本部署到测试设备上,而我们以前的安装系统让这个过程复杂得难以承受。

给去年的目标打分

去年,我设定了希望在这一年中实现的三个高层目标。以下是我对这些目标的完成情况:

将 TinyPilot 做到年收入 100 万美元

  • 结果:TinyPilot 收入增长 76%,达到 81.2 万美元
  • 评分:B

我一直知道 100 万美元是个激进的目标。我们没有达成,但我对我们离目标如此之近仍然印象深刻。

每周只用 20 小时管理 TinyPilot

  • 结果:我在 2022 年花在管理 TinyPilot 上的时间比 2021 年更多。
  • 评分:D

我曾希望通过自动化和授权把足够多的工作从自己身上卸下,将管理时间减少到每周 20 小时,但这并没有发生。由于销售增长、组建支持工程团队,以及应对芯片短缺引发的各种突发问题,我的管理时间反而增加了。

发布 TinyPilot Voyager 3

  • 结果:我们连设计阶段都没完成
  • 评分:F

TinyPilot 一直使用 Raspberry Pi 4B 作为核心硬件。Pi 4B 周围有一个出色的生态系统,但这种硬件相对昂贵,而且难以与定制芯片集成。

我 2022 年的计划是为更纤薄、更便宜的 Raspberry Pi Compute Module 4 制作一块定制电路板。这可以将制造成本降低多达 60%,并简化我们的硬件设计。

然而,我们所有的硬件工程时间都花在了追查制造问题和供应短缺上,所以在新产品上毫无进展。

第六年的目标

每周只用 20 小时管理 TinyPilot

去年我在减少工作时间上一败涂地,但现在这是我的首要任务。我对今年的机会抱有希望。我在 2022 年做的很多工作为 2023 年把自己移出关键路径打下了基础。

赚取 10 万美元利润

TinyPilot 的前两年半里,我专注于增长。无论我每月卖出 20 台还是 2000 台设备,硬件和软件工程的成本都是一样的,所以我需要达到一定的规模才能让生意可行。

2023 年的大部分时间里,TinyPilot 的产量将受到供应限制。得知我没有机会扩大销售令人失望,但好的一面是我可以放慢脚步,专注于利润而非增长。

TinyPilot 一直大致收支相抵,但如果我能避免进一步的硬件重设计,我认为今年可以达到 10 万美元的利润。如果没有 2022 年的硬件重设计,我本可以在工程上省下大约 10 万美元,在材料上省下 2 万美元。如果我能保持销售稳定并在硬件方面精简运营,2023 年应该会是盈利的一年。

关闭 TinyPilot 办公室

我从2021 年初起就为 TinyPilot 租了一间办公室。我们用它来组装设备、履行订单和存放库存。

拥有自己的本地办公室帮助我们快速适应硬件和流程的变化,但它带来了大量额外开销。今年,我希望把组装转移到中国——我们所有的零件都产自那里。我也正在把订单履行转移到第三方物流仓库。

取消 TinyPilot 办公室可以让我们免去维护实体场所、管理库存和排班现场轮班的工作。外包制造和履约也将给团队带来更大的时间和地点上的灵活性。

我还热爱这份事业吗?

每年写这些博客文章时,我都会问自己是否仍然热爱自己所做的事。

2022 年是艰难的一年——肯定是我单干以来最艰难的一年。我并不痛苦,但不能说我热爱这一年。

全球芯片短缺意味着我们永远无法用同样的方式生产两批产品。总有某个元件缺货或出现制造问题,所以我们一直在争分夺秒地解决问题、调整流程,以免库存耗尽。我们挺过来了,只有寥寥几天不得不将某些产品标记为售罄,但过程压力很大。

话虽如此,这一年当然也有很多值得感激的地方。我用于写作和软件开发的时间相对较少,但我对自己产出的东西感到自豪。扩展 TinyPilot 组织并弄清团队如何协作,提升了我作为管理者的能力。看到团队成员随着公司发展在自己的角色中成长、拓展技能,令人欣慰。

我仍然更喜欢为自己工作而不是为雇主打工。我仍然为自己拥有一家公司的自由心怀感激。而且我仍然想永远这样做下去。


封面图片由 Loraine Yow(洛莱恩·尤)提供。感谢我可爱的未婚夫和 Blogging for Devs 社区为本文提供了早期反馈。

原文由 Michael Lynch 发布

本文章由 stealth/ox-alpha 进行翻译