自力更生创业的第五年
五年前,我辞去了 Google 开发者的工作,创办了自己的自力更生(bootstrapped)软件公司。
头几年,我所有的业务都失败了。没有一家每月收入超过几百美元,而且全都处于亏损状态。
第三年过半时,我做了一个叫 TinyPilot 的设备。它让用户无需安装任何软件就能远程控制自己的电脑。产品很快走红,从那以后它一直是我的主要工作重心。
2022 年,TinyPilot 创造了 81.2 万美元的收入,比 2021 年增长了 76%。
在这篇文章中,我将分享在自力更生创业的第五年里学到的东西。
往期回顾
本年度亮点
TinyPilot 年收入增长至 81.2 万美元
| 收入/支出 | 2021 | 2022 | 变化 |
|---|---|---|---|
| 销售 | $459,529 | $807,459 | enable JS to see delta |
| 信用卡返现 | $2,241 | $4,327 | enable JS to see delta |
| 原材料 | -$224,046 | -$333,656 | enable JS to see delta |
| 工资 | -$142,744 | -$206,187 | enable JS to see delta |
| 电气工程咨询 | -$28,662 | -$124,643 | enable JS to see delta |
| 广告 | -$3,873 | -$51,764 | enable JS to see delta |
| 网页设计/品牌设计 | -$15,931 | -$30,215 | enable JS to see delta |
| 邮费 | -$24,227 | -$30,779 | enable JS to see delta |
| 云服务 | -$5,553 | -$7,865 | enable JS to see delta |
| 办公场地 | -$4,400 | -$6,600 | enable JS to see delta |
| 设备 | -$2,083 | -$5,915 | enable JS to see delta |
| 其他一切 | -$4,902 | -$8,183 | enable JS to see delta |
| 净利润 | $5,349 | $5,979 | enable 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 的独特之处在于不需要数据库服务器。这意味着你可以在单个 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 社区为本文提供了早期反馈。
随机一篇博客


