TinyPilot:第 11 个月
一句话总结
如何提高 TinyPilot 的利润率?
亮点
- 尽管月收入达 3 万美元,TinyPilot 仍勉强维持收支平衡。
- 我正在探索让大公司为 TinyPilot 支付更多费用的方案。
- 我需要接受管理他人本身就是一份真正的工作这一事实。
目标评分
每个月初,我都会宣布当月想要完成的目标。以下是我的完成情况:
将 TinyPilot 的收入提升至 3.3 万美元
- 结果:将 TinyPilot 的收入提升至 3.9 万美元
- 评分:A
TinyPilot 在获得 ServeTheHome 的一篇重磅评测后销量大幅飙升,ServeTheHome 是顶级的 IT 硬件博客 / YouTube 频道之一。
将 TinyPilot 的运营完全迁移至新办公室
- 结果:TinyPilot 已完全在新办公室运营
- 评分:A
我们终于将 TinyPilot 的运营从我家搬到了真正的办公室。有几天压力很大,比如我一度不确定能否在 Linux 上让打印功能正常工作,但总体而言过渡很顺利。进货的零件直接发往办公室,员工在办公室组装和测试产品,外发的订单也从办公室发出。
收集对Refactoring English(《重构英语》)目录的反馈并进行迭代
- 结果:我收集了反馈,但还不确定如何整合
- 评分:B
我从 Write Useful Books 社区和我的邮件列表中获得了反馈。202 名订阅者中有 6 人作出了回应,虽然比我预期的少,但提供了有帮助的反馈。
人们似乎对“写出更好的博客文章”这类宏观任务更感兴趣,而对讲解如何改进动词用法的章节兴趣不大。我想重新排序,把有趣的部分前置,但又不确定该如何操作,因为后面的章节依赖于前面的内容。
令人兴奋的成果自然比基础知识更具吸引力。如果我写一本关于创作视频游戏的书,人们会对“如何构建具备智能 AI 的敌人”这样的章节感兴趣,而可能对“线性代数基础”不太感兴趣。这并不意味着我可以跳过基础知识,但或许意味着我在教授基础知识时,需要找到让课程更实用、更易于应用的方法
TinyPilot 数据
| 指标 | 2021年4月 | 2021年5月 | 变化 |
|---|---|---|---|
| 独立访客 | 5,880 | 7,283 | +1,403 (+24%) |
| 总页面浏览量 | 10,483 | 13,267 | +2,784 (+27%) |
| 销售收入 | $28,880.65 | $38,767.77 | +$9,887.12 (+34%) |
| 利润 | $843.56 | $6,858.72 | +$6,015.16 (+713%) |
TinyPilot 迎来了有史以来第二好的月份。在这样的销量水平下一切都能顺利运转,令人兴奋。当 1 月份出现类似的销售高峰时,我们曾不堪重负。幸运的是,我们改进了订单履行流程,因此所有系统都正常运转。
我只是个经理
2012 年至 2014 年,我在一家名为 iSEC Partners 的公司担任软件安全顾问。我的经理 Peter(彼得)负责管理纽约的整个团队。他经常自嘲地说:“我只是个经理——我是 overhead。”他这么说是觉得所有员工都在做有产出的工作,而他只是公司官僚体系的一部分。
但彼得是一位非常出色的经理,每个人都知道这一点。我想他之所以开玩笑说自己角色不重要,是因为管理工作让他没什么时间去做公司里更有趣的事情,比如安全研究和工具开发。
我现在对彼得的这种感受深有体会。我经常到了一天结束时,觉得自己一整天只写了邮件。但退一步想,我能理解为什么会有这样的日子。此刻,我在 TinyPilot 要与很多人协作:
- 三名远程软件开发人员
- 三名负责库存、组装和订单履行的本地员工
- 两家在 3D 打印和电气工程方面密切合作的供应商
因此,总共有八个人我至少每周沟通一次。除此之外,还有其他需要打交道的人和服务,比如办公室房东、我的人力资源/薪酬服务、我们的知识库以及库存跟踪工具。而客户支持和销售则完全由我一人负责。
考虑到这些,我大部分时间都在给人发邮件也就显得更合理了。我需要调整策略,更加拥抱管理工作。
避免去做团队成员能做的工作
我现在做的最蠢的事情之一,就是去承担团队中其他人完全有能力完成的任务。上个月,我谈到我每天只有一小时写代码。进一步想,我甚至不应该做这件事,因为我的队友也能写代码,而我在只有我能做的任务上已经落后了。
不再独揽只有迈克尔能做的任务
有一些任务理论上其他人也能做,但实际上他们做不了,因为目前只有我拥有所需的权限或知识。
这些任务主要跨领域或跨角色,例如管理只有本地员工使用的工具。以下是一些我应该委派出去的事情(按与我解绑的难度递增排序):
- 管理连接 Shopify 与库存电子表格的胶水代码。
- 管理构建 TinyPilot 生产镜像的脚本。
- 管理库存电子表格中的公式。
- 回答客户支持问题。
- 对 TinyPilot 版本进行最终 QA 测试。
每月 3 万美元怎么会不赚钱?
最近我向女友抱怨说,发展 TinyPilot 时遇到的许多问题很可能都有简单的解决方案,只是我不认识经营类似业务的人,所以不知道这些办法。她问我想向谁请教,并指出我完全可以想到一些人然后直接给他们发邮件。
我首先想到的是 Mike Perham(迈克·珀勒姆),Sidekiq 的创始人。迈克·珀勒姆在 Indie Hackers 上的访谈是我最喜欢的访谈之一。我还在 Google 担任员工时就听过,他的业务一直让我印象深刻,被视为理想的独立软件业务。他通过编写开源软件每月赚取约 8 万美元。最棒的是,客户在自己的机器上运行 Sidekiq,所以几乎不可能出现需要迈克·珀勒姆立即处理的紧急情况。
我并不认识迈克·珀勒姆,所以我给他发了一封自我介绍的邮件,询问他对 TinyPilot 有什么建议。他第二天就回复了,给出了几条慷慨的建议。其中最让我印象深刻的是他对我财务状况的反应:
把利润提上去。5% 的利润率不是一个健康的业务。要么降低成本,要么稍微调整一下价格,要么找一个更接近纯利润的纯软件附加组件。
那是一记有用的警钟。我知道利润很低,但每月 3 万美元仍然让我感觉处境不错。但以 5% 利润率的角度来思考,确实让人清醒了不少。
根据迈克·珀勒姆的建议,我更仔细地审视了开支。我还没完成 5 月的账务,所以以 4 月为例。

按类别划分的 TinyPilot 开支
| 类别 | 总计 |
|---|---|
| 原材料 | $15,637.68 |
| 软件外包人员 | $9,331.79 |
| 本地履约员工 | $1,460.12 |
| 邮费 | $1,262.53 |
| 电气工程咨询 | $901.25 |
| 办公室租金 | $550.00 |
| 广告 | $370.00 |
| 律师费 | $270.00 |
| 办公设备 | $233.72 |
| 平面设计 | $169.00 |
| 贴纸 | $163.63 |
| 云服务 | $176.33 |
| 杂项 | $161.21 |
我的原材料成本并不令人意外。实体产品的利润率一般在 50-60% 左右,所以在约 3 万美元的销售额下有 1.5 万美元的成本符合预期。这里没有太多压缩空间,因为我购买的材料没有更便宜的替代品。有几个像线缆这样的物品,我为质量支付了溢价,但那在售价 300 美元的产品上也就差 1-2 美元。昂贵的部分是那些没有更便宜替代品的东西,比如树莓派或 HDMI 采集芯片。
我的第二大开支是软件开发,当我自己就能写软件时,这可能看起来很奇怪。问题在于,要写好软件需要不间断的专注时间,而 TinyPilot 有太多非软件方面的杂事,让我无法获得这种时间。到 2020 年底,TinyPilot 的软件开发陷入停滞,因为我是唯一的开发者,而我忙于处理新增产品的各种后勤事务。
我可以雇更便宜的开发者,但那很快就会酿成灾难。我合作的开发者都特别优秀。他们保持代码库的高质量,使软件持续保持可维护性和低缺陷率。
我曾与更便宜的开发者(约 $30/小时)合作过,他们要么完全搞不定工作,要么采用天真的实现方式,导致后续出现缺陷和维护难题。如果我用低成本开发者来组建项目,代码库会在几个月内变得无法维护。
除此之外,我没有其他可以大幅削减的开支。我的第三大开支是本地履约员工,但即使砍掉 50% 的成本,也只能将总开支降低 2.4%,所以不值得去破坏一个运转良好的体系。
遵循迈克·珀勒姆建议的另一种方式是增加收入。
从大客户身上获取价值
今年早些时候,我与一家大公司的 IT 经理交谈过。他非常喜欢 TinyPilot,并想在公司内部推广它,以替换他们旧的价值 2000 美元的企业级设备。结果成功了!该公司在一个部门内部署了 40 台 TinyPilot,并计划增加更多。
猜猜 TinyPilot 从这次部署中赚了多少。零。
他们没有从我这里购买硬件,而是自行构建了设备。而由于该软件采用了宽松的开源许可证,他们可以在公司内免费使用,无需向我支付任何费用。
这是开源领域一个极其常见的问题。开放许可证有助于人们发现你的产品并鼓励他们使用,但它也让大公司能够从你的劳动成果中获利却不给予任何回报。
我也为此事询问了迈克·珀勒姆。以下是他的回复:
听起来你的许可证让大客户把你踩在脚下了。这是你的代码,对吧?改一下许可证,例如只允许爱好者以单实例个人使用。MIT 或 BSD 许可证很适合赠送代码;但不适合作为业务的基础。
算是我的代码吧……为 TinyPilot 工作的自由职业者都签署了合同,声明我拥有他们贡献代码的知识产权,但我也接受了少数志愿开发者的贡献。据我理解,那些贡献过免费代码的开发者在技术上与我共同拥有 TinyPilot 代码的版权。
我将 TinyPilot 以 MIT 许可证发布,因为它也给了我灵活性。我想我可以将代码自行“分叉”到另一种许可证下,并说明它也使用了 MIT 许可的代码,但我不太确定具体如何运作。
我思考了从大型企业客户身上获取更多价值的方法,以下是我的想法:
为 TinyPilot 提供企业版功能
大客户会提出、而其他人不会提出的功能之一是对 TinyPilot 的编程化访问。比如,“我想监控远程屏幕以检测目标设备何时崩溃,然后生成警报。”
我打算与大客户洽谈推出具备此功能的 TinyPilot 企业版,并收取高额溢价。我觉得像 $50/设备/月这样的价格对家庭用户来说很离谱,但对一家财富 500 强公司而言,如果这意味着他们不必花费数周时间自行开发解决方案,这笔钱就微不足道。
提供 SaaS 附加组件
如果与设备处于同一本地网络,TinyPilot 很容易使用,但如果客户想通过互联网访问他们的 TinyPilot,目前则必须依赖第三方解决方案。我已向几位客户提出了“ TinyPilot Cloud Portal” 的想法:一个安全的网页界面,让他们可以在互联网上的任何地方远程访问自己的 TinyPilot 设备。
这将是一个不错的软件即服务订阅机会,可以以更高的利润率补充 TinyPilot 的硬件产品。
不过,我想避免托管一个需要我随时待命的服务。我正在探索与能够管理该服务运营方面的供应商合作的可能性。
咨询专门从事开源许可的律师
关于开源许可,我还有很多不了解的地方,所以我应该咨询律师以了解我的选择。理想的许可证应该让个人用户能够负担得起 TinyPilot,让他们可以在家试用,然后在商业环境中为雇主引入更贵的许可证,类似于 Sidekiq 的模式。
遗留项目
以下是关于我仍在维护但并非开发重心的项目的简要更新:
Is It Keto
| 指标 | 2021年4月 | 2021年5月 | 变化 |
|---|---|---|---|
| 独立访客 | 56,094 | 49,085 | -7,009 (-12%) |
| 总页面浏览量 | 123,723 | 108,862 | -14,861 (-12%) |
| 域名评分 (Ahrefs) | 11.0 | 11.0 | 0 |
| AdSense 收入 | $560.20 | $466.84 | -$93.36 (-17%) |
| Amazon 联盟收入 | $116.78 | $138.99 | +$22.21 (+19%) |
| 总收入 | $676.98 | $605.83 | -$71.15 (-11%) |
Is It Keto 仍在后台运行,但这个月我难得投入了一些工作。我的许多 Amazon 联盟链接已经过期,指向了已不存在的产品,所以我花了几个小时来修复它们。
时隔数月重新翻开代码,真的非常容易陷入对网站修修补补的兔子洞。我必须克制自己,因为尽可能专注于 TinyPilot 对我更有利。
Hit the Front Page of Hacker News(《登上 Hacker News 首页》)
| 指标 | 2021年4月 | 2021年5月 | 变化 |
|---|---|---|---|
| 独立访客 | 114 | 191 | +77 (+68%) |
| Gumroad 收入 | $341.61 | $417.85 | +$76.24 (+22%) |
| Blogging for Devs 收入 | $109.20 | $0.00 | -$109.20 (-100%) |
| 总收入 | $450.81 | $417.85 | -$32.96 (-7%) |
这门课程每月仍有几笔销售,但我没有花太多时间去推广它。
一个亮点是 Dan Willoughby(丹·威洛比)运用了课程中的经验撰写了一篇文章,该文章登上了 Hacker News 的第 2 名。他并不是靠“增长黑客”来钻系统空子。他只是花时间写了一篇高质量的文章,并获得了应有的回应。看到这一点感觉很棒。
Zestful
| 指标 | 2021年4月 | 2021年5月 | 变化 |
|---|---|---|---|
| 独立访客 | 892 | 659 | -233 (-26%) |
| 总页面浏览量 | 2,132 | 1,784 | -348 (-16%) |
| RapidAPI 收入 | $40.82 | $32.85 | -$7.97 (-20%) |
| 总收入 | $40.82 | $32.85 | -$7.97 (-20%) |
尽管 Zestful 仍处于维护模式,上周末我为其发布了一个官方 Python 软件包。这是我一直认为该项目应该拥有的东西,但因为不知道如何发布 PyPI 软件包而一直拖延。我最终在 3 月摆弄 Restic 时学会了如何操作,所以我想不妨利用这些知识为 Zestful 制作一个软件包。
现在,用户可以在几分钟内上手使用 Zestful。像这样安装软件包:
pip install zestful-parse-ingredient
然后,导入 parse_ingredient 模块,并传入一种食材:
import json
import parse_ingredient
ingredient = parse_ingredient.parse('2 1/2 tablespoons finely chopped parsley')
print(json.dumps(ingredient.as_dict()))
你将看到如下 JSON 输出:
{
"quantity": 2.5,
"unit": "tablespoon",
"product": "parsley",
"productSizeModifier": null,
"preparationNotes": "finely chopped",
"usdaInfo": {
"category": "Vegetables and Vegetable Products",
"description": "Parsley, fresh",
"fdcId": "170416",
"matchMethod": "exact"
},
"confidence": 0.9858154,
}
总结
完成了什么?
- 将 TinyPilot 的运营从我家搬到了真正的办公室
- 与我的库存经理合作,将所有流程都记录在 Notion 中。
- Notion 肯定有一些缺点和坑,但相比我们之前用于记录内部流程的 Google Docs,已经是很大的进步。
- 成功将职责从 TinyPilot 最初的库存经理(我的女友)移交给了新的本地员工。
- 我女友的研究生课程下周恢复,所以她将没有时间再处理 TinyPilot 的工作。
经验教训
- 在新员工培训方面,“写下来,而非口头演示。”
- 我们几乎完全通过书面指示而非现场讨论来培训第一名本地员工。
- 我们都对上手过程的顺利程度感到满意,这也促成了职责向新员工的平稳过渡。
- 第二名本地员工在 5 月中旬入职,我们预计由于一切都已记录在案,上手会更加容易。
- 管理也需要时间。
- 如果我想做好管理,就需要放手去做那些队友可以代劳的任务。
- TinyPilot 需要更高的利润率。
- 增加收入比削减开支更容易。
下月目标
- 发布 TinyPilot 的新版本。
- 实现 3.5 万美元的 TinyPilot 收入。
- 制作内置 Power over Ethernet(以太网供电) 的 TinyPilot Voyager 2 原型。
随机一篇博客