TinyPilot: Month 22

Michael Lynch

TinyPilot:22か月目

原文は Michael Lynch により に公開されました。 このブログを購読する

一行要約

私のお金は一体どこへ消えているのか?

ハイライト

  • TinyPilotは月に5万8000ドルの収益を上げているのに、なぜか赤字になっている。
  • 開発者の稼働時間を低レイテンシーで把握することの重要性は、思っていた以上に大きい。
  • 約2年ぶりに有料広告に再挑戦している。

目標の自己評価

毎月初めに、その月に達成したい目標を掲げている。結果は以下の通りだ。

TinyPilotを使った自宅ラボ用NASサーバー構築についてのブログ記事と動画を公開する

  • 結果:ほぼ完成しているが、まだ公開には至っていない。
  • 評価:D

ブログ記事は想定よりもかなり長くなっている。パーツ選びの思考プロセスについて書きたいことが山ほどあり、どれだけ時間がかかるかを甘く見ていた。あと2〜3週間での完成を目指している。

TinyPilotのウェブサイトリニューアルを完了させる

  • 結果:ウェブサイトのデザインはほとんど変わっていない。
  • 評価:F

本来6週間で終わるはずだったリニューアルが、もう7か月目に入った。にもかかわらず、またも恥ずかしながら、ユーザーから見える変化はほとんどない。

デザインエージェンシーとの契約は解約したので、今月で作業は終了となる。残りの数週間でリニューアルを完了してくれることを期待している。もし完了しなければ、別の開発者を雇って仕上げるつもりだ。いつまでも引きずりたくない。

WebRTC経由でのH.264ビデオの実験的サポートを含むTinyPilot Proのリリースを公開する

  • 結果:大口顧客には初期ビルドを共有したが、まだ一般向けリリースは出していない。
  • 評価:C

今月のテーマは「思ったより少し時間がかかった」だ。リリース自体はコードは完成しているが、顧客に公開する前に手動テストをもう少し終わらせる必要がある。

TinyPilotの統計

指標2022年3月2022年4月増減
ユニークビジター6,2125,268-944 (-15%)
合計ページビュー13,37511,974-1,401 (-10%)
販売収益$65,171.82$43,771.00-$21,400.82 (-33%)
法人向けサブスクリプション$47.75$47.750
ロイヤリティ$4,012.83$2,253.61-$1,759.22 (-44%)
総収益$69,232.40$46,072.36-$23,160.04 (-33%)
利益$-3,043.34$-19,392.76-$16,349.42 (inf%)

4月はTinyPilotにとって厳しい月だった。売上は米国でもEUの代理店でも、過去6か月で最低水準まで落ち込んだ。例年、月に5,000〜10,000ドルは数件の大口注文による収益だが、4月はそれがまったくなかった。

4月が単についていなかっただけなのか、景気後退の兆しで支出が減っているのか、あるいは競合の新製品に売上が食われているのかは、まだはっきりしない。

私のお金はどこへ消えているのか?

前回の振り返りでは、2022年第1四半期は平均で月5,300ドルの利益が出ていると報告した。しかし帳簿付けをしている際に、ブログで報告していた数字が実際の会計とズレていることに気づいた。実際には毎月3,000ドルの赤字だったのだ。

月収5万8000ドルもあり、TinyPilot1台あたり250〜325ドルの利益が出ているのに、どうして赤字になるのか。この数字には自分でも驚いた。

その理由を探るため、2022年第1四半期の月次経費を詳しく見直してみた。

費目月あたりコスト
原材料$24,896.46
ソフトウェア・サポートの外注費$14,900.43
デザインエージェンシー$7,938.32
電気設計$5,291.07
発送業務スタッフ$2,915.75
送料$2,393.49
税金・関税$1,423.14
オフィス賃料$916.67*
クラウドサービス$495.03
広告費$106.78
その他$265.34
合計$61,542.47

* 実際の家賃は月550ドルだが、第1四半期は大家が変則的なタイミングで小切手を現金化したため、帳簿上の家賃が膨らんで見えている。

最大の支出は原材料で、供給不足からTinyPilotを守るために今後18〜36か月分の部品を備蓄しなければならなかったため、通常よりさらに高くなっている。月あたり約6,200ドルは数年もつ部品のためのもので、備蓄が終われば月々の仕入れコストは大幅に下がるはずだ。

次に大きいのはソフトウェアとサポートで1万4900ドル。新しい映像技術の統合を手伝ってもらうため短期で外部コンサルタントを雇ったので、通常より少し高めになっている。通常は1万2000ドル前後だが、それでもかなり高い。

TinyPilot Proの課金は開発・サポートコストを賄うはずだったが、まだライセンスチェックや更新リマインダーを実装できていない。TinyPilotユーザーの約3分の1はTinyPilot Proのライセンスが切れていることに気づかず、そのまま無料でサポートやアップデートを受け続けている。今後数か月の最優先事項は、TinyPilotのアップデートフローを全面的に見直し、有効な有料ライセンスを持つユーザーだけが最新のTinyPilot Proリリースを利用できるようにすることだ。さらに、年80ドルを自動で支払える定期課金への登録を簡単にし、有効期限のたびに買い直す手間をなくしたいと考えている。

デザインエージェンシーには月8000ドル近くかかっていたが、幸いこの支出はなくなる。最後の支払いは済ませ、契約は5月末で終了する。ウェブサイトの保守のために開発者を雇う可能性はあるが、稼働時間も単価も下がるので、月1000〜2000ドル程度になる見込みだ。

次は電気設計で月5300ドル。この費用は今後2〜3か月は高いままになる。パートナーの電気設計会社がTinyPilot Voyager 2を量産しやすいように再設計しているためだ。設計作業が完了すれば、保守は設計よりはるかに安くなるため、月2000ドル程度まで下がる見込みだ。

経費は大きく3つのカテゴリーに分けられる:

  • 継続コスト:家賃や人件費など、売上に関わらず発生する固定的なコスト。
  • 材料費と送料:ほぼ売上に連動するコストだが、収益の約3分の1のペースでしか増えないはずだ。
  • 一時的コスト:ハードウェアの再設計や部品の備蓄といった一回限りの支出。

売上から得られる利益で継続コストを賄い、さらに成長のための支出もカバーしなければならない。ソフトウェアを月1万2000ドル、電気設計を月2000ドルまで下げられると仮定すると、継続コストは月1万9000ドル程度になる。原材料が収益の約30%だとすると、事業を維持するには月2万7000ドルの売上が必要だ(2万7000ドルの売上から材料費を引くと手元に残るのは2万2000ドル)。

月2万7000ドルの売上は、過去6か月は十分に上回っていたので十分達成可能に思える。とはいえ売上は下降傾向にあり、景気後退の兆しも見えている。損益分岐点を超えつつ、成長や一時的コストのための余裕を確保し続けられることを願っている。

低レイテンシーな工数報告の重要性

前回のアップデートでは、デザインエージェンシーと仕事をする上で事前に知っておきたかったことをいくつも挙げた。4月には、そのリストに加えるべきことがもう一つ見つかった。工数報告が極めて重要だということだ。

3月末、エージェンシーはリニューアルについて新しいBootstrapテーマの導入を提案してきた。TinyPilotのウェブサイトはBootstrapというCSSフレームワークを使っている。いまだにサイトの初版を作ったときにBootswatchから入手した無料のサードパーティ製テーマを使い続けている。Bootstrapとそのテーマの上に、さらにページごとやコンポーネントごとに独自のカスタムスタイルを重ねている状態だった。

エージェンシーは、このアーキテクチャは複雑に入り組んでいると指摘し、サードパーティ製テーマやページごとのスタイルを、サイト全体で統一された独自のBootstrapテーマに置き換えるべきだと提案した。作業は数日で終わるという見積もりだった。もっともな提案に思えた。そうしなければ、リニューアルの残りの作業で3層ものCSSスタイルの競合と戦うことになるため、元は取れるだろうと考えたのだ。

ところがテーマの作業は結局5週間かかり、総コストは6100ドルになった。ユーザーの目に見える成果は次の通りだ:

TinyPilotウェブサイトの変更前のスクリーンショットTinyPilotウェブサイトの変更後のスクリーンショット。フォントと色がわずかに異なる

6100ドルかけたウェブ開発のビフォー(左)とアフター(右)

長期的にはこのリファクタリングは役に立つが、今やるべきではなかったと感じている。リニューアルはすでに半年遅れ、予算の5倍を超えている。コードが美しくリファクタリングされた冴えないサイトより、多少コードが汚くても見栄えの良いサイトの方がましだ。

では、なぜこんなことになってしまったのか。TinyPilotのいつもの開発者たちは、私が望んでいないことに深入りすることは滅多にないのに、デザインエージェンシーでは何度も同じことが起きている。

決定的な違いの一つは、TinyPilotの開発者たちが、時間の使い方を低レイテンシーで可視化してくれることだ。彼らは作業セッションが終わるたびに、短いメモを添えて稼働時間を記録してくれる。

Deel上のTinyPilotの工数報告のスクリーンショット

TinyPilotの自社開発者は作業の都度、工数を報告してくれる。

私は彼らに作業を依頼しているときは、その工数をチェックする。2時間で終わると思っていたタスクに14時間かかっていれば、難易度を見誤ったか、説明が不十分だったということだ。どちらの場合も開発者に確認を取り、続行するか軌道修正するかを一緒に決める。

一方、デザインエージェンシーではフィードバックループがはるかに遅い。毎月15日に送られてくるのは、その月これまでに稼働した合計時間だけだ。月末になって初めて、工数の内訳が記載された詳細なレポートが届くが、その時点ではすでに手遅れだ。

「2022年4月は40時間中16.02時間を使用済みです」と書かれたメールタスク別に内訳された工数レポート

デザインエージェンシーは月に2回しか工数を報告しない。月中には不透明な合計時間だけが届き(左)、月末にやっとタスクごとの詳細な内訳が届く(右)。

もう一つの問題は、エージェンシーが週単位ではなく月単位でしか工数をコミットしないことだ。2月は最初の3週間はまったく開発作業をせず、最後の10日間にすべての作業を詰め込んできた。これによりフィードバックループの悪さがさらに深刻になった。タスクに時間がかかりすぎているのか、そもそも着手すらしていないのかを区別できなかったのだ。

今後もしデザインエージェンシーと仕事をすることがあれば、発生した請求時間をリアルタイムで共有できるツールを使うことを必ず求めようと思う。この情報は数週間も遅らせるにはあまりにも貴重だ。期待値のズレを早期に発見するのに役立つのだから。

有料検索広告に足を踏み入れてみる

有料広告を試したのはTinyPilotの初期のことだが、その効果をうまく測定する方法がなかった。販売サイトは独特なカスタム構成で、ShopifyやGoogle Analyticsのような一般的なコンバージョン計測ツールを統合するのが難しいのだ。計測がうまくいっているように見えたときでさえ、売上の約30%しか記録されず、設定を間違えたのか、ユーザーの70%が広告ブロッカーを使っているのか、どちらかだった。

アフィリエイト広告を試したときに、偶然にもコンバージョン計測の問題が解決した。顧客がアフィリエイトリンク経由で訪問すると、TinyPilotのウェブサイトはアフィリエイトIDをブラウザのローカルストレージに保存する。顧客が購入する際に、そのアフィリエイトIDを注文の属性として保存するのだ。この方法ならGoogle Analyticsに依存せず、広告ブロッカーとの戦いも不要になる。

同じ仕組みを有料広告の計測にも使えることに気づいた。広告URLに含まれるリファラル情報をアフィリエイトIDと同じように扱えばいいのだ。これを使って、GoogleとBingで広告を出稿し、有料広告に再挑戦してみた。

Google広告: TinyPilot KVM over IP | Easy Remote Access | Open-Source, PoE, HTML5 TinyPilot is a simple, modern KVM over IP device with PoE. No software installation or Java plugins. Setup takes 5 minutes.

初めて出したGoogle検索広告。

指標GoogleBing
広告費$1,715.10$1,018.09
表示回数15,6237,023
クリック数701196
クリック率(CTR)4.5%2.8%
クリック単価(CPC)$2.45$5.19
コンバージョンによる収益$4,202.88$789.97
広告費用対効果(ROAS)2.450.78

ほぼすべての指標でGoogleがBingを上回っている。Bingはクリック単価が2倍も高いのに、収益は3分の1しかない。

最も重要な指標は広告費用対効果(ROAS)で、Googleでは2.45だ。つまりGoogle広告に1ドル使うごとに2.45ドルの収益が得られている。そこから部品と人件費で約0.76ドルかかる。収益はおよそ「2.45ドルの売上 − 1ドルの広告費 − 0.76ドルの部品・人件費 = 0.69ドルの利益」となる。

言い換えれば、Google広告に1ドル使えば0.69ドルの利益になるのだから、これは非常においしい取引だ。しかもこの収益は下限値だ。ユーザーがスマホで広告をクリックし、後でデスクトップから購入した場合、私の計測ではGoogleの成果としてカウントされない。つまり、実際には計測値以上に稼いでいる可能性もある。

広告文やターゲティングの調整はまだ一切試していない。もしマーケティングエージェンシーに任せれば、この成果はさらに大幅に改善できるのではないかと思っている。

Googleの予算は1日150ドルまで増やし、利益が出続ける限りさらに引き上げていくつもりだ。

Bingの予算は1日50ドルに据え置き、広告を少し調整している。Bingでは「unifi 24 port switch」(まったく用途の異なる製品)や「kvms pro」(CCTV管理ソフトの一種)のような無関係なクエリにまで私の広告が表示されていたのだ。

当初はDuckDuckGoで広告を出すつもりだった。そこのユーザーは私の製品と相性が良いと思ったからだ。奇妙なことに、DuckDuckGoの広告は直接の競合であるBingを経由してしか買えない。DuckDuckGoで広告を出すには、Bingで広告を出稿し、Bingの提携配信パートナー(AOL、Yahoo、DuckDuckGoを含む)への配信を有効にしなければならないのだ。

DuckDuckGoで広告を出す唯一の方法は、Bing、Yahoo、AOLで広告を出すことだ。

サイドプロジェクト

PicoShare

大きなファイルを簡単に共有するために作ったシンプルなウェブアプリ、PicoShareの開発を今も楽しんでいる。

特に気に入っている機能の一つが、ゲスト用アップロードリンクを作成できることだ。TinyPilotのパートナーと仕事をしているときなど、メールでは送れない大きなファイルを相手に送ってもらいたいことがよくあるが、Google DriveやDropboxのようなクラウドストレージにわざわざ登録してもらう手間はかけさせたくない。

PicoShareのゲストアップロード機能を使えば、次のようにゲストリンクを作成できる:

PicoShareのゲストリンク作成画面のスクリーンショット

するとPicoShareはhttps://picoshare.tinypilotkvm.com/g/sWy2Pi5Dm8afJuxsのようなカスタムゲストリンクを生成する。ゲストがそのリンクにアクセスすれば、サインアップなしで私のPicoShareサーバーにファイルをアップロードできる:

PicoShareのゲストリンク経由でのアップロード画面のスクリーンショット

すでにTinyPilotでも使い始めているが、以前使っていたMega.nzやDropboxよりもはるかにスムーズだ。

もう一つ追加した機能は、アップロードに添えられるプライベートなメモだ。ファイルに関する詳細を覚えておきたいときに便利だ:

メモ入力欄のあるPicoShareのアップロードページのスクリーンショットメモが表示されたPicoShareのファイル一覧ページのスクリーンショット

PicoShareでは、アップロードにプライベートなメモを添えられるようになった。

まとめ

何ができたか?

  • 有料検索広告で有望な成果が出始めている。
  • TinyPilot Proのバージョン2.4.1がコードコンプリートし、H.264ビデオのサポートが実現した。
  • TinyPilotがuStreamerにドキュメントを提供し、WebRTCでH.264ビデオをストリーミングする方法を解説した。

学んだこと

  • 業務委託先やエージェンシーと仕事をする際は、低レイテンシーな工数報告が不可欠だ。
    • そうでなければ、プロジェクトが予算やスコープを超過していることに手遅れになるまで気づけない。

来月の目標

  • TinyPilotを使った自宅ラボ用NASサーバー構築についてのブログ記事と動画を公開する。
  • TinyPilotのウェブサイトリニューアルを完了させる。
  • マーケティングエージェンシーまたはフリーランサーを雇う。

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

コメント