TinyPilot: Month 7

Michael Lynch

TinyPilot:7ヶ月目

一言でまとめると

TinyPilotは、うれしい悲鳴ともいえる課題に直面しています。

ハイライト

  • TinyPilotの売上は驚異的な成長を遂げ、12月の1万5,000ドルから1月には4万2,000ドルへと急増しました。
  • 売上の大半は、1本の好意的なYouTubeレビューによるものです。
  • 需要への対応に追われ、成長痛を実感しています。

目標の達成度

毎月月初に、その月に達成したい目標を宣言しています。結果は次のとおりでした。

TinyPilotの開発を手伝ってくれるフリーランス開発者を採用する

  • 結果: 1名をトライアル採用しましたがうまくいかず、現在別の方をトライアル中です。
  • 評価: A

開発者の採用は時間のかかるプロセスですが、計画どおりに進んでいます。トライアルを重ねるごとに、立ち上がりを早める方法が見えてきました。今後の採用で重視すべき資質も明確になってきています。

関連する視聴者層を持つブロガーまたはYouTuberから、TinyPilotのレビューを2件獲得する

  • 結果: YouTubeレビューを1件獲得し、ほかに2件が進行中です
  • 評価: A-

YouTuberが新しい動画を作るのにどれだけ時間がかかるかを甘く見ていました。公開された1本のレビューも、11月に声をかけたことがきっかけです。ほかに2名のYouTuberがレビューに同意してくれましたが、まだ制作中です。

ただ、その1本のレビューが、ほとんど手に負えないほどの反響を呼びました。詳しくは後述します。

『Hit the Front Page of Hacker News』で4,000ドルの売上を上げる

  • 結果: 2,600ドルの売上
  • 評価: C

コースは期待どおりには展開しませんでした。内容には自信がありますが、購入者数は想定を大きく下回っています。

さまざまな手法で販売促進を試みましたが、いずれも売上に目立った効果はありませんでした。

TinyPilotの統計

指標2020年12月2021年1月増減
ユニーク訪問者数3,48611,249+7,763 (+223%)
総ページビュー数5,78517,737+11,952 (+207%)
販売売上$15,358.31$41,992.92+$26,634.61 (+173%)
寄付$9.00$0.00-$9.00 (-100%)
合計売上$15,367.05$41,992.92+$26,625.87 (+173%)

TinyPilotにとって、とてつもなく大きな月になりました。売上は1万5,000ドルから4万2,000ドルへと跳ね上がりました。

毎月、「今月は出来すぎだ。こんなことは二度とないだろう」と思うのですが、翌月にはさらに成長しています。この幸運が続くことを願うばかりです。

TinyPilot、初のYouTubeレビュー

1月の売上の大半は、たった一つのきっかけによるものでした。Craft Computingという、プロと自宅愛好家向けのITハードウェアを扱うYouTubeチャンネルです。

私がCraft Computingチャンネルを知ったのは昨年初め、Proxmoxのインストールに関する素晴らしいチュートリアルがきっかけでした。数ヶ月後、ホストがITマネージャーとしての仕事を辞めて独立したと発表し、そこに親近感を覚えました。

11月に、チャンネルのホストであるJeffに連絡を取り、TinyPilotをレビューしてみないかと打診しました。彼は快諾してくれたので、すぐに1台を発送しました。その後数ヶ月音沙汰がなく、送ったVoyagerが企業から届く無償ハードウェアの山の中に埋もれているのではないかと思い始めていました。

1月12日、ちょうど寝る準備をしていたとき、Jeffからレビューを公開したというメールが届きました。

それは非現実的な体験でした。恋人とリビングの大きなテレビで動画を見たので、1年間見てきたYouTuberが自分の製品を手に持ち、大画面から自分に直接語りかけてくる姿を目の当たりにしたのです!

JeffはTinyPilotを気に入ってくれ、感心した点を数多く語ってくれました。見ている間ずっと、「実は……やっぱり気が変わった。この製品はダメだ。知り合い全員に買うなと伝えてくれ」と突然言い出すのではないかとヒヤヒヤしていました。しかし幸い、レビューは終始好意的で、指摘も些細なものでした。

効果は強力で即効性がありました。翌日には33件の注文があり、5,000ドルの売上を記録し、これまでの販売記録を大きく上回りました。その翌日は注文数こそ減りましたが、より多くのお客様が高価格帯のキットを購入されたため、売上の合計はほぼ横ばいでした。

2021年1月のTinyPilotの日別売上と注文数

3日目には落ち着くだろうと予想していましたし、実際少しは落ち着きましたが、注文は途切れませんでした。在庫はこうした急増を吸収できるようにしてありますが、これほど長く続くとは想定していませんでした。

最初の1週間は、フルフィルメント担当と私でなんとか注文をこなしましたが、8日目にはすっかり疲弊していました。2日以内の発送期限に間に合うように補充できない部品がいくつか欠品してしまったため、一時的にほとんどの製品を入荷待ちとして表示しました。数日後には体制を立て直し、注文量も対応可能な水準に戻りました。

TinyPilot初のポストモーテム

ブレームレス・ポストモーテムは、Googleで働いていたときに学んだ最も価値のあるプラクティスの一つです。何か大きな問題が起きたら、まず安定した状態に戻し、その後何が起きたのかを分析するレポートを書きます。

名前が示すとおり、このドキュメントは誰かを責めないことが前提です。「Michaelが間抜けで間違ったファイルを削除したから障害が起きた」といった書き方は決してしません。

ポストモーテムの根底にある考え方は、チームの全員が優秀で勤勉であるという前提です。だからこそ、何かがうまくいかなかったときは人ではなく仕組みが失敗したのだと考えます。一見誰かの不注意に見える失敗でも、真の原因は、想定しうるヒューマンエラーを防げなかったプロセスにあるのです。

Craft Computingのレビューの後、フルフィルメント担当と私はTinyPilotで初めてのポストモーテムを実施しました。以下が見つかった主な課題と、それを防ぐために導入した対策です。

在庫目標が低すぎた

在庫はスプレッドシートで管理しています。扱っている各部品について、保有しておく最小数と最大数を決めています。例えばRaspberry Piは最小40台、最大80台としています。つまり、在庫が40台を下回った時点で、80台に戻るだけの数量を発注するということです。

TinyPilotの在庫スプレッドシートのスクリーンショット

TinyPilotの在庫スプレッドシート

問題は、これらの目標値を、在庫が尽きて計画が甘かったと気づくまで調整していなかったことでした。そうなると、欠品の最中は慌ててしまい、新しい目標値を冷静に考えることが難しくなります。

  • 対策: 直近の注文量に基づいて、在庫目標を毎月見直す予定を入れます。
  • 対策: 次の注文急増は、これまでのどの急増よりも激しいものになると想定します。
  • 対策: 部品が欠品したり、欠品寸前になったりした場合は、その在庫目標を2倍にします。

緊急度が分かりにくかった

在庫スプレッドシートでの通常フローは、最小値を下回った品目を「補充」することです。USBケーブルが発注点を下回ったときも、通常どおり地上配送で発注しました。

お客様の購入ペースが速く、新しい入荷が届く前に在庫がゼロになることに気づきませんでした。翌日、後続の入荷までのつなぎとして、翌日配送で追加発注しました。

  • 対策: 「在庫数」列の数値が危険水域に達したら強調表示します。
  • 対策: Amazon Business Primeにアップグレードして、2日配送を迷わず使えるようにします。
  • 対策: トレンドに基づくアラート機能を備えた在庫管理ソフトを探します。

発送準備期間が短すぎた

TinyPilotを始めた当初は、1営業日以内に発送すると約束していました。しかしすぐに、常にコンテキストスイッチを強いられ注文を急いで出荷しなければならない1日での対応は持続不可能だと分かりました。数週間後に、告知している対応日数を2日間に変更しました。

YouTubeレビューの後は1週間奮闘した末に入荷待ち表示をせざるを得ませんでしたが、もし発送予定が3日間であれば、入荷待ちを避けられるだけの余裕があったはずでした。過去の入荷待ちや寸前だったケースの約80%は、わずか1日あれば回避できていたことに気づきました。

2日間という枠が大きなストレスになっていました。実際にはほとんどの注文を翌日に発送していますし、お客様も告知が2日か3日かはそれほど気にしないはずです。

  • 対策: 告知している発送準備期間を3日間に延ばします。

パック単位の部品の再発注が不要な認知負荷を生んでいた

部品の中には単品で購入するものもあれば、1パッケージに2個や3個入ったパックで購入するものもあります。例えば電源アダプターは3個入りパックで購入しています。在庫スプレッドシートでは、電源アダプターのパック数ではなく絶対数を記載しています。

繁忙期に150個の電源アダプターを注文するつもりが、誤って150パック(3個入り)を注文してしまい、合計450個になってしまいました。

過剰発注はヒューマンエラーですが、私たちの仕組みがミスを誘発しやすいことを浮き彫りにしました。発注する人は、品目ごとに異なる暗算をしなければなりません。

対策: スプレッドシートに、1パックあたりの数量を考慮した「再発注量」の列を追加します。

TinyPilotをどうスケールさせるか

TinyPilotは想定をはるかに上回る速さで成長しています。幸い、これまでのプロセスでなんとか対応できていますが、このままいけばいずれ限界が来ます。いくつかの観点で、どのようにスケールさせていくか計画をまとめました。

サポートのスケール

TinyPilotのお客様が増えるにつれ、サポートのメールも増えています。日によっては、稼働時間の半分をテクニカルサポートに費やすこともあります。

ブログ記事で、Lunch Moneyの創業者であるJen Yip氏の考えを思い出しました。彼女は事業のあらゆる面を一人で担い、アプリにユーザーがよくある問題を自己解決できる機能を実装することでサポート負荷を最小限に抑えています。

TinyPilotへのサポート依頼の約半数は、実は製品の機能不足によるものです。よくある問い合わせに「WiFiをどうやってオンにしますか?」というものがあります。現在はコマンドラインでの操作方法を説明したリンクを送っていますが、本来はTinyPilotのウェブインターフェースから直接できるべきことです。

今後のソフトウェア開発では、ユーザーの混乱をなくす機能や、問題発生時にデバッグツールを使いやすくすることを優先していきます。

製造のスケール

3Dプリント部品の利点は、設計変更が迅速かつ安価にできることです。欠点は、スケールしにくいことです。Voyagerのケースを作ってくれているラボは、私の希望する材料では週に40個しか生産できず、すぐにボトルネックになるでしょう。

次のステップは射出成形です。ざっくり言えば、メーカーがケースの金型をスチールやアルミで作り、そこにプラスチックを流し込んで圧力をかけて成形します。金型の作成は時間も費用もかかりますが、一度できてしまえば1日1,000個を低コストで生産できます。数社に見積もりを依頼しましたが、2万〜4万ドルという金額で、現時点では少し高すぎます。

3Dプリントを並列化できないか、ほかのラボにも問い合わせました。問題は、私が気に入っているカーボンファイバー素材が3Dプリントのラボでは珍しく、扱っている業者が少ないことです。扱っているところでも、現在の支払額の10〜15倍の見積もりでした。ただ、Voyagerの利益率は十分に高いので、いざとなればケースのコストが上がっても利益は出せます。

別のラボからは、より速くプリントできる代替素材でも同様の結果が得られると言われました。そこにサンプルを依頼するとともに、メインのラボとも代替素材について相談しています。

恋人でもあり在庫管理担当でもある彼女が、基板のテストやVoyagerの組み立てといった最終製造工程を担ってくれています。フルタイムの大学院生でもある彼女が、注文処理や在庫管理、組み立てなどをこなす時間が足りなくなる日が来るかもしれません。そのため、彼女の稼働時間の限界に達したときに、どの業務を外注できるか検討しています。

開発のスケール

TinyPilotの運営のほかの業務に追われ、残念ながらソフトウェアに割ける時間がほとんどありませんでした。12月からは、不足を補ってくれるパートタイムの開発者を探し始めました。仕事内容を説明するために次の2つのドキュメントを用意し、いくつかの小さなチャンネルで共有しました。

これまで採用してきたフリーランスの職種の中で、ソフトウェア開発が常に最も難しいと感じています。ソフトウェアに対する基準が高いため、品質や保守性に対して同じような情熱を持つ開発者を見つけるのが困難なのです。

面接の代わりに、いきなりトライアル採用を行っています。最初の方はうまくいきませんでしたが、プロセス自体には満足してもらえたとのことでした。また、新しい開発者がコードベースに慣れやすくなる方法を見つけるのにも役立ちました。

既存プロジェクト

今も維持はしているものの、開発の中心的対象ではないプロジェクトについて、簡単に近況を報告します。

Hit the Front Page of Hacker News

指標2020年12月2021年1月増減
ユニーク訪問者数2,5951,042-1,553 (-60%)
合計売上$1,431.00$2,565.22+$1,134.22 (+79%)

開発者向けブログについての私のコース『Hit the Front Page of Hacker News』が、ついに1月にローンチしました。ローンチ前後に売上は伸びましたが、期待を大きく下回りました。このコースの目標は年末までに2万ドルを売り上げることでしたが、達成は難しそうです。

これまでの売上が期待外れだったとCory Zue氏に話すと、TinyPilotの収益で目が肥えてしまったのだとからかわれました。このコースは1月だけで、私がインディー開発者として最初の1年間に稼いだ額よりも多く売り上げたのです。

今月後半には、コースの収録やマーケティングから学んだことに絞った振り返りを書く予定です。詳しくはそちらをご期待ください。

Is It Keto

指標2020年12月2021年1月増減
ユニーク訪問者数49,37380,177+30,804 (+62%)
総ページビュー数93,242182,367+89,125 (+96%)
ドメイン評価(Ahrefs)10.011.0+1.0 (+10%)
AdSense収益$334.72$677.36+$342.64 (+102%)
Amazonアフィリエイト収益$149.99$238.02+$88.03 (+59%)
合計売上$484.71$915.38+$430.67 (+89%)

Is It Ketoは、まったく手をかけなかったにもかかわらず過去最高の月になりました。ダイエット関連のサイトのため、新年の抱負の時期に毎年アクセスが急増します。

Zestful

指標2020年12月2021年1月増減
ユニーク訪問者数507419-88 (-17%)
総ページビュー数1,5111,194-317 (-21%)
RapidAPI収益$103.33$155.50+$52.17 (+50%)
合計売上$103.33$155.50+$52.17 (+50%)

Zestfulはメンテナンスモードにもかかわらず、わずかに成長しています。伸びは、利用量が増えた長年の顧客1社によるものと思われます。

まとめ

できたこと

  • Hit the Front Page of Hacker Newsをローンチしました。
  • TinyPilot Proがベータ版から正式リリースになりました。
  • TinyPilotで初のポストモーテムを実施しました。
  • フリーランス開発者2名をトライアル採用しました。

学んだこと

  • YouTubeレビューは非常に強力ですが、時間がかかります。
    • 最初のレビューの結果を見て、ぜひさらに開拓したいチャネルだと感じましたが、新たなレビューを確保するには数ヶ月かかるでしょう。
  • 成長に合わせて、プロセスの前提を見直しましょう。
    • これは何度も学ばされている教訓です。何かの作業のためにプロセスを作ると、それが習慣になります。すると、そのプロセスについて批判的に考えることをやめ、当初の条件がもはや成り立たなくなっていることに気づかなくなってしまいます。
    • 定期的に一歩引いて、プロセスが今も最適かどうかを見直すことが大切です。

来月の目標

  • TinyPilotのアフィリエイトプログラムに、ブロガーまたはYouTuberを5名集めます。
  • サポートまたは製造コストを下げる機能をTinyPilotに2つ追加します。
  • ラックマウント版TinyPilotの可能性について、10名のお客様からフィードバックを集めます。

原文は Michael Lynch により に公開されました。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。