TinyPilot: Month 19

Michael Lynch

TinyPilot:19カ月目

要約(一行で)

週20時間でTinyPilotをどう運営できるか?

ハイライト

今月の目標の達成度

毎月初めに、その月に達成したい目標を宣言しています。その目標に対してどれだけ達成できたかは以下のとおりです。

Voyager 2 PoE版の発売

  • 結果:製造上の問題により、発売を数週間延期しました
  • 評価:D

製造されたPoEハードウェアの最初のロットが、試作品とは異なる挙動を示していることが判明したため、発売を延期せざるを得ませんでした。基板は修正できる見込みですが、数週間かかる予定です。

TinyPilotのサポートエンジニアの職務記述書を作成し、採用面接を開始する

  • 結果:職務記述書は作成しましたが、求人サイトにはまだ掲載していません。
  • 評価:C+

これは「重要だが緊急ではない」ことの一つで、つい後回しにしてしまっています。TinyPilotにサポートエンジニアがいれば、頻繁に陥る時間不足から解放されるので、もっと優先度を上げる必要があります。

4年目の年次振り返り記事を公開する

この振り返り記事は数週間かけて取り組んできたものだったので、公開できて嬉しく思います。退職記念日に投稿するという恒例を大切にしているため、厳密な締め切りがある数少ない取り組みの一つです。

投稿がHacker NewsやRedditであまり話題にならなかったのは意外でした。例年、年次アップデートはそこで人気になるのですが、今年はどちらでも反応はいまひとつでした。とはいえ、一つひとつの投稿には運の要素が大きく左右するので、一回の結果から多くを読み取るべきではないと思っています。

TinyPilotの統計

指標2021年12月2022年1月増減
ユニークビジター6,1567,282+1,126 (+18%)
総ページビュー12,84015,477+2,637 (+21%)
販売売上$52,224.65$51,066.78-$1,157.87 (-2%)
エンタープライズサブスクリプション$47.75$47.750
ロイヤリティ$1,100.47$5,075.00+$3,974.53 (+361%)
総収益$53,372.87$56,189.53+$2,816.66 (+5%)
利益$-15,207.05$-21,316.65-$6,109.60 (-40%)

売上は12月に比べてわずかに減少しましたが、本当にわずかな減少です。Voyager 2が在庫切れで4日間販売を停止していたことを考えると、12月よりもむしろ好調な月だったと感じています。

現在もキャッシュフローはマイナスで、おそらくあと1〜2カ月はその状態が続くでしょう。Voyager 2の設計に自信が持てるようになったので、今後18〜24カ月分の部品を備蓄しています。部品が在庫切れになるたびに回路基板を再設計しなければならず、これまでにも6〜7回再設計を繰り返してきましたが、コストもかさみ、非常に厄介なプロセスだからです。

週20時間だけでTinyPilotをどう運営するか?

今年の目標の一つは、TinyPilotの運営を週20時間だけで回すことです。現在は週45時間ほど費やしています。時間を厳密に計測する良い方法はないのですが、内訳はおおむね次のように考えています。また、理想とする時間配分は右の列のとおりです。

業務内容週あたりの時間理想の週あたり時間
変更の調整122
技術サポートへの対応82
開発業務の監督52
TinyPilotのリリース準備52
ソフトウェアアーキテクチャの意思決定42
従業員とのコミュニケーション33
主要なベンダー/販売代理店との連絡41
管理業務/給与/税務20.5
販売に関する問い合わせへの対応10.5
技術以外のサポート問い合わせへの対応10.5
合計4515.5

:これらは平均的に目指したい目安であり、厳格な上限ではありません。たとえば、お客様から「Voyagerを200台購入したいので質問がある」と言われたときに、「すみません、今週は販売対応の30分枠を使い切ったので」と断るつもりはありません。

最も時間を費やしているのが変更の調整です。ここでいう調整とは、TinyPilotが進化していく中での小さな修正をまとめる作業を指します。たとえば新製品のリリースでは、組み立てや発送に関する大きな変更が最初にまとめて発生し、その後も不具合を解消するために小さな調整が何カ月も続きます。このテーマは複雑なので、詳しくは後述のセクションに分けました(後述)

技術サポートは、アウトソースすべき最も分かりやすい領域です。誰かに手伝ってもらうべきだと何カ月も前から考えていましたが、十分に優先できていませんでした。現在、その採用に取り組んでいるところです

開発業務の監督にも、必要以上に時間をかけています。これは単に、必要がなくてもソフトウェアに関わっていたいという気持ちが強いからです。何かの変更を早く見たいがために、自分でやってしまう方が手っ取り早い、ということがよくあります。もっと自制心と忍耐を持って、TinyPilotの開発チームに任せる必要があります。

TinyPilotのリリース準備にもまだ時間をかけすぎていますが、自動化と委任を進めています。以前は1回のリリースにビルド、テスト、リリース告知の作成で35時間ほどかかっていました。今は15時間程度まで短縮できています。開発チームがビルドプロセスの多くを自動化し、TinyPilotの現地スタッフが手動テストの大部分を引き継いでくれました。まだ改善の余地はありますが、着実に前進しています。

変更の調整にかける時間をどう減らすか?

変更の調整は、最も時間を取られる業務の一つであり、最も楽しくない仕事の一つでもあります。

最近の調整の例として、Voyager 2のケースに修正を加えたときのことを紹介します。TinyPilotのEU販売代理店から、Voyager 2の組み立ての約10%でUSB-Cポートがずれてしまい、USB-Cケーブルが挿せないほどだという連絡がありました。

右側に傾いたVoyager 2のUSB-Cポートの写真

TinyPilotのEU販売代理店から、一部の筐体でUSB-Cポートがケース内でずれていると報告がありました。

問題を解決するまでの流れは次のとおりでした。

  1. 販売代理店に、調査して折り返し連絡する旨をメールする。
  2. TinyPilotの現地スタッフに、同様の現象を見たことがあるかメールで尋ねる。
  3. 現地スタッフからは、見たことはあるが、販売代理店が報告しているほど極端ではないという返事が来る。
  4. スタッフに、組み立てのばらつきの原因(ケース、基板、組み立て手法など)を調査するよう依頼する。
  5. スタッフから、数時間調査したが原因を特定できなかったと報告を受ける。
  6. 販売代理店に、ケースを修正して問題を解決する旨をメールする。
  7. 3Dプリントパートナーにメールし、USB-C用の穴を広げることで対応するよう依頼する。
  8. 3Dプリントパートナーが試作品をプリントして発送してくれる。
  9. 現地スタッフに、新しいケースで組み立てて動作を検証するよう依頼する。
  10. スタッフが、新しいケースで問題が解消することを確認する。
  11. 3Dプリントパートナーに設計ファイルを送付し、ケースを新設計に切り替えるよう依頼するメールを送る。
  12. 3Dプリントパートナーからケースの設計ファイルが送られてくる。
  13. 設計ファイルを販売代理店に送付する。

たった数ミリのずれを直すのに、これだけの手間がかかったわけです。

振り返ってみても、明らかに委任すべきだった部分は見当たりません。販売代理店とスタッフや3Dプリントの設計者を直接つないで、「あとは販売代理店の言うとおりにしてください」と丸投げするわけにはいきません。

強いて言えば、3Dプリントベンダーとのやり取りをもっと任せられたかもしれません。ステップ7から11は、「スタッフに3Dプリントベンダーと一緒に修正案を詰めてもらい、できあがったら設計ファイルを送ってほしい」と頼む形にできたはずです。それで節約できる工数はわずかですが、TinyPilotの現地スタッフが組み立てプロセスにもっと主体的に関われるよう、任せる習慣をつけるべきでした。

もちろん、毎週このような事態が起きるわけではありませんが、TinyPilotのあちこちの関係者間の調整を要する似たような問題は週に1、2回は発生し、最終的な判断はたいてい私が下す必要があります。

もう一つの要因は、同時進行している変更の数の多さです。現在、私は7つの大きなプロジェクトを同時に監督しています。

  1. 電気設計ベンダーの切り替え
  2. 部品不足に対応するため、Voyager 2の電気設計の改訂
  3. Voyager 2のPoE版の製造とテストの最終段階
  4. ウェブサイトのリニューアル
  5. 初のサポートエンジニアの採用
  6. より大ロットでの生産を可能にするケース製造方法の検討
  7. 外部コンサルタントと連携したTinyPilotへのH264ビデオ対応の追加

こうして並べてみると、大きなプロジェクトを同時に抱えすぎないように、もっと慎重になるべきだと気づきます。変更する事柄を減らせば、調整にかける時間も減ります。

もう一つ改善できるのは、外部ベンダーを雇う際に「稼働時間(バンド幅)」を最重要事項として扱うことです。ウェブサイトのリニューアルは予想より何カ月も長引いていますが、それはデザイン会社がTinyPilotに割いている時間が、想定していた週20時間ではなく週5時間程度にとどまっているからです。今後は、ベンダーを選定する面談の段階で、週あたりの稼働可能時間についてもっと詳しく話し合うようにします。

これまでに手がけたプロジェクト

ここでは、現在も維持はしているものの、開発の主軸ではないプロジェクトについて簡単に近況を報告します。

Is It Keto

指標2021年12月2022年1月増減
ユニークビジター15,78125,948+10,167 (+64%)
総ページビュー35,74059,351+23,611 (+66%)
ドメインレーティング(Ahrefs)11.014.0+3.0 (+27%)
AdSense収益$171.00$291.47+$120.47 (+70%)
Amazonアフィリエイト収益$30.21$51.45+$21.24 (+70%)
総収益$201.21$342.92+$141.71 (+70%)

痛い結果です。Is It Ketoにとって1月は新年のダイエット需要で例年大きな月になるのですが、今年の1月の伸びは過去最低でした。

サイトの維持に何もしていないので文句は言えませんが、これほど早く勢いが衰えるとは思っていませんでした。

Hit the Front Page of Hacker News

指標2021年12月2022年1月増減
ユニークビジター106140+34 (+32%)
Gumroad収益$19.30$66.59+$47.29 (+245%)
Blogging for Devs収益$27.30$0.00-$27.30 (-100%)
総収益$46.60$66.59+$19.99 (+43%)

ブログ講座の方は依然として静かな状況です。新規購入が1件あっただけで、それ以外は動きがありません。私をフォローしていて講座に興味のある人は、すでに購入済みということなのでしょう。

Zestful

指標2021年12月2022年1月増減
ユニークビジター461564+103 (+22%)
総ページビュー1,1761,514+338 (+29%)
RapidAPI収益$1,252.31$847.38-$404.93 (-32%)
総収益$1,252.31$847.38-$404.93 (-32%)

Zestfulは少し落ち込み、収益は再び月1,000ドルを下回りましたが、クライアントは今も積極的にサービスを利用しており、数週間ごとに新規顧客候補からの問い合わせも届いています。

まとめ

今月達成したこと

学んだこと

  • 一度に変更する事柄を減らす。
    • 進行中の変更がどれだけあるかを把握し、以前のプロジェクトが終わるまで新しいプロジェクトを始めたい衝動を抑える必要がある。
    • プロジェクトごとに週あたりの負担が変動するため、余裕があるように感じてしまいがちだ。
    • 新しいプロジェクトを一つ増やすごとに、運悪く複数の変更が同時に自分の対応を必要とする週が発生するリスクが高まる。
  • ベンダーの稼働時間を最重要事項として扱う。
    • 単発のプロジェクトでベンダーを雇い、そのベンダーの稼働時間が週に数時間しかない場合、プロジェクトは長期化し、コンテキストスイッチで自分の時間がより多く奪われる。

来月の目標

  • Voyager 2 PoE版を発売する
    • 今度こそ本当に。
  • TinyPilotのサポートエンジニアを採用する
  • TinyPilotウェブサイト刷新のデザイン作業を完了する

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

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