TinyPilot: Month 27

Michael Lynch

TinyPilot:27か月目

一言でまとめると

完全にリモート化したTinyPilotはどんな姿になるだろうか。

ハイライト

  • 物理的なオフィスなしでTinyPilotが成り立つかを思考実験しています。
  • アウトソーシングを検討する中で、現在のワークフローの非効率な点が浮き彫りになりました。
  • E2EテストツールのPlaywrightにすっかり魅了されました。

目標の振り返り

毎月初めに、今月やりたいことを宣言しています。結果は次のとおりでした。

TinyPilot Proを次世代アップデートシステムへ移行する

  • 結果:新しいアップデートシステムを含むTinyPilot Pro 2.5.0をリリースしました。
  • 評価:A

今回のリリースで最も大きな変更は、アップデートの仕組みです。従来のTinyPilotはgitサーバーにアップデートを問い合わせ、常に最新バージョンへ更新しようとしていました。現在は、TinyPilotが次のバージョンを問い合わせるためのカスタムWebサービスを用意しています。新しいアップデートシステムにより、アップデートプロセスをより細かく制御できるようになり、新バージョンのテストも容易になりました。

このリリースには5か月かかり、想定より長引きました。通常のリリースサイクルは約2か月です。新しいバージョンによって、今後はより速く改善を繰り返し、テストできるようになると期待しています。

TinyPilot VoyagerをYouTubeクリエイターまたはブロガー2名にレビュー用に送る

  • 結果:採用を優先するため、この目標は中止しました。
  • 評価:対象外

サポートエンジニア1名との契約を終了することになったため、後任の採用に注力しました。結果的に採用は成功し、10月初めに新しいエンジニアを迎えることができました。

新たなケースの製造方法を検討する

  • 結果:金属ケースの試作品を発注しました。
  • 評価:A

現時点ではまだ選択肢を模索している段階なので、やや曖昧な目標でした。以前は射出成形のケースを検討しました。単価は安くなりますが、初期費用が高額になります。現在検討している金属ケースは、初期費用をそこまでかけずに効率よくスケールできます。

TinyPilotの統計

指標2022年8月2022年9月増減
ユニーク訪問者数11,9039,040-2,863 (-24%)
総ページビュー数23,21417,608-5,606 (-24%)
販売売上$76,082.06$68,640.50-$7,441.56 (-10%)
エンタープライズサブスクリプション$290.70$242.95-$47.75 (-16%)
ロイヤリティ$3,264.23$3,440.90+$176.67 (+5%)
総収益$79,636.99$72,324.35-$7,312.64 (-9%)
利益$21,580.82-$8,764.28*-$30,345.10 (-inf%)

* この利益の数字は、月中旬に正式な帳簿処理を行うまでの、手元の現金額の変動を単純に計算したものです。

数字はどれも恐ろしいほど真っ赤ですが、実際には力強い月だったと思います。7万ドルを超える収益をまた達成できて嬉しく思っています。

利益が落ち込んだのは、半年前に遡る原材料費1万1000ドルの請求書が突然届いたためです。それでも、ここまで大きく赤字になったのは少し意外でした。主には請求書のタイミングの問題だと思いますので、今後数か月で平均すればプラスに落ち着くでしょう。

金属ケースはTinyPilotにとって何を意味するのか

生産における残るボトルネックの一つがケースです。現在はケースを3Dプリントしており、印刷に時間がかかるプレミアム素材を使っているため、月産は約160個が上限です。また、マサチューセッツ州の助成金を活用している関係で、特定の3Dプリント業者1社にしか依頼できません。

月200台以上を販売しているため、近いうちにケースが律速要因になります。販売数が製造能力を下回っていた時期にケースを備蓄していたおかげで、あと数か月は現状のペースで出荷を続けられます。

ハードウェアパートナーからは、一般的なコンシューマー向けネットワーク機器のような金属ケースを提案されました。

金属製のTP-Link TL-SG1005P 5ポートスイッチの写真

もしTinyPilotをこのような金属ケースに切り替えたらどうなるだろうか。

金属ケースにすればコストを下げられるうえ、月160個という生産上の制約もなくなります。月に数千個の製造が可能になるからです。

ハードウェアパートナーが何気なく口にした一言が、考えを巡らせるきっかけになりました。ケースを中国で製造するなら、組み立て自体も中国で行えるというのです。

当初、中国での組み立てには魅力を感じませんでした。マサチューセッツでの組み立てプロセスはうまく回っているのに、なぜ変える必要があるのかと思ったのです。

米国での組み立てコストを1台あたり10ドルとすると、中国の業者なら1〜2ドルでできるかもしれません。しかし、1台あたり9ドルの節約のために、順調に動いているプロセスを変えるリスクを負う価値はないと考えました。

しかし中国での製造について考えているうちに、それがTinyPilotのオフィスをどう変えるかに思いが至りました。何百個ものケースやUSBケーブル、小さなゴム足で棚がいっぱいになることもなくなります。それらはすべて製造元の手元に置かれるからです。原材料を製造元で管理すれば、在庫の追跡や生産に合わせた再発注も任せられます。

そう考えると、そもそもTinyPilotにオフィスは必要なのだろうか、という疑問が湧いてきました。

TinyPilotのオフィスでは何をしているのか

現在、TinyPilotのオフィスは主に6つの用途で使っています。

  1. 在庫の保管
  2. デバイスの組み立て
  3. microSDへの書き込み
  4. 組み立てたデバイスのテスト(品質保証)
  5. 顧客注文の梱包・発送
  6. 返品の処理

自社オフィスなしでも、これらの機能を維持できるのでしょうか。見ていきましょう。

在庫保管とデバイス組み立て

製造を中国に移せば、在庫管理も実質的に中国へ移ることになります。

在庫と製造をアウトソースできれば、TinyPilotのワークフローの多くがシンプルになります。一方で、問題が起きたときの影響は、製造元が何千キロも離れていると格段に大きくなります。

海外の製造元がデバイス製造を引き継げば、TinyPilotのオフィスでの作業の多くが突然なくなります。完成品だけを保管すればよくなるため、オフィスの保管スペースの大部分が空きます。在庫の追跡も、原材料や半完成品ではなく完成品だけを数えればよくなるため、はるかにシンプルになります。スタックの中で最も使いにくく品質の低いソフトウェアである在庫管理ツールのサブスクリプションも、ようやく解約できます。

輸入にかかる手間も減るはずです。原材料の多くは中国から来ているため、バラバラの原材料として扱うよりも、完成品として一度に受け取る方がはるかに管理しやすくなります。

輸入のクリティカルパスで私が足止めされることがよくあります。DHLがサポート用のメールアドレスではなく、荷物に記載された電話番号に電話をかけてくるからです。オフィスの電話番号がないため、結局私の携帯に直接かかってきます。月に数回の配送まで減らせれば、TinyPilotのスタッフが事前に配送を追跡し、相手が電話をかけてくる前に輸入関税を支払える程度の件数に収まるはずです。さらに、アウトソースした製造と3PL業者を組み合わせれば、製造元から直接サードパーティのフルフィルメントセンターへ発送してもらえるため、私たちが関与する必要すらなくなります。

デメリットは、製造元に大きな信頼を置かなければならないことです。半導体不足の影響で、電子部品は数か月から数年分の生産量を備蓄しなければなりません。もし製造元が1年分の部品を紛失したら、取り返しのつかない事態に陥ります。定期的な在庫確認を依頼したり、第三者の監査人を派遣したりはできますが、製造元に「すみません、2万ドル分の在庫をなくしました」と言われたときに、どのような対処ができるのかは正直わかりません。

TinyPilotの製品は、部品のアップグレードや設計上の問題の発見に伴い、細かな調整を何度も重ねています。自社で製造していれば、部品がうまくはまらないときや部品に過度な負荷がかかっているときにすぐに気づけます。海外の製造元に任せると、フィードバックのサイクルが遅くなります。問題に気づいたときには、すでに同じ不具合を抱えた製品が数百台作られてしまっているかもしれません。

microSDへの書き込み

TinyPilot1台ごとに、TinyPilotのソフトウェアを書き込んだmicroSDが必要です。現在は、私が書き込んだ後から顧客に届くまで誰の手にも渡らないため、改ざんの心配はほぼないと確信しています。私たちと顧客の間でmicroSDに触れられるのは配送業者のみで、もしUSPSが悪意を持ったとしても、TinyPilotより狙う価値のある標的は他にいくらでもあるでしょう。

microSDへの書き込みをどうアウトソースすべきかは悩んでいます。私たちはカスタムのブランド入りmicroSDを使っており、製造元はソフトウェアの書き込みにも応じてくれます。しかし、マルウェアのリスクが高いと感じ、躊躇しています。理論上は、渡したディスクイメージと一致するかをランダムに抜き取り検査することはできますが、それでも完全には安心できません。

TinyPilotブランドのmicroSDの写真

現在、イメージの書き込みに対応してくれる業者を使っていますが、懸念が残ります。

引き続き自社でmicroSDへの書き込みを行い、製造元へ送るという方法も考えられます。製造元が正直であることが前提ですが、これは海外でコンピュータ製品を製造しているあらゆる企業が負っているのと同じリスクだと言えるでしょう。

組み立てたデバイスのテスト

デバイスを組み立てた後は、すべての機能が正常に動作するかを手作業でテストしています。

現在のテスト環境は時間がかかり複雑で、製造元にそのまま引き継ぐのは困難です。新しく組み立てたTinyPilotをターゲットコンピュータに接続し、別のコンピュータのブラウザからTinyPilotのWebインターフェースにアクセスする必要があります。従業員はTinyPilotの起動を待ってから、ターゲットコンピュータの画面が正しくキャプチャされているか、キーボードやマウスの入力が正確に転送されているかを確認しなければなりません。

現在のテスト構成を手描きで示したスケッチ

TinyPilotの現在のQAプロセスでは、2台のノートPCと複雑なケーブル接続が必要です。

このプロセスの自動化は以前から課題に挙がっていましたが、ハードウェアエンジニアリングのリソースが必要で、現在最も不足しているのがまさにそのリソースです。

こうして書き出してみると、市販のハードウェアとソフトウェアエンジニアリングのリソースだけで解決できることに気づきました。Raspberry PiでTinyPilotのテスト機を作れるはずです。

Raspberry PiはHDMI出力とUSB入力を備えています。Raspberry Piをテストランナーとしてプログラムし、TinyPilotがPiのHDMI出力の映像を正しくキャプチャしているかを確認できます。TinyPilotにキー入力を送るよう指示した際に、Pi側でTinyPilot経由のUSB入力として同じキー入力を受け取れたかを検証すれば、新しく組み立てたVoyager 2の接続がすべて正常に機能しているかを高い確度で確認できます。

簡素化したテスト構成案を手描きで示したスケッチ

Voyager 2のQAプロセスは、Raspberry Piにカスタムスクリプトを組み合わせて接続することで自動化できるはずです。

あとは、テストデバイス上でTinyPilot Voyager 2が検証に合格したかどうかを示す外部インジケータがあれば十分です。Piとネットワークスイッチを製造元に渡し、そちらでテストする方法を教えれば、十分にシンプルなセットアップとして引き継げるでしょう。

これは、アウトソースする方法を考えること自体が、アウトソースするか否かにかかわらず既存のワークフローに利益をもたらす好例です。

顧客注文の梱包と発送

ワークフロー全体の中で、注文のフルフィルメントは現時点で最もアウトソースしやすい部分です。

常に出荷可能な状態の箱を用意しているので、それを自社オフィスで保管する代わりに3PL業者に預けることができます。

段ボールの出荷用ボックスに入ったVoyager 2の写真

オフィスでは、梱包済みのVoyager 2を出荷待ちの状態で保管しています。

アウトソースする利点は、もともと柔軟な勤務時間がさらに柔軟になることです。現在は週6日、1日数時間オフィスに人を配置しています。3PL業者に任せれば、注文が滞りなく流れるだけのデバイスを組み立てている限り、特定の日に誰かがオフィスにいる必要はなくなります。

オフィスの物理的なスペースも空きます。箱や梱包材が狭いオフィスの多くの面積を占めているからです。

もう一つの利点は、顧客が選べる配送オプションが増えることです。現在はUSPSとDHLのみに対応していますが、これは配送業者ごとに調整の手間が増えるためです。3PL業者であれば、すでに主要な配送各社の集荷が毎日あるため、主要な配送業者ならどれでも容易に対応できます。

配送スピードもわずかに上がるかもしれませんが、TinyPilotはすでに注文の90%を1営業日以内に発送しているため、これはそれほど大きな意味はありません。

デメリットは、3PL業者を挟むことで複雑さが増すことです。現在、カスタマーサポートの体験は非常に良好です。顧客からメールが届くと、知識豊富なTinyPilotの従業員が直接対応します。その従業員が、顧客のデバイスを組み立て、梱包、あるいは発送した本人である可能性すらあります。配送状況の確認や注文のキャンセル、返品の手配まで、その場で対応できます。

もし3PL業者がフルフィルメントした注文で問題が起きれば、TinyPilotのカスタマーサポート担当者はまず3PL業者の窓口に確認し、その担当者がさらに別の担当者に確認するといった具合に、やり取りが増えてしまいます。

返品の処理

オフィスなしで返品をどう処理するかは、まだ見通しが立っていません。

返品されたTinyPilotデバイスの整備を3PL業者に任せる気にはなれませんが、かといって返品をそのまま廃棄されてしまうのも避けたいところです。

別の返品先住所として私書箱を用意するという手もあるかもしれません。従業員が郵便局で返品を受け取り、整備したうえで3PL業者へ送り、整備品として販売してもらう形です。

まだ3PL業者と話をしていないので、もっと良い解決策を持っている可能性もあります。

すべてをアウトソースするとどうなるか

オフィスの機能をすべて外部業者や場所に依存しない代替手段にうまく移せたと仮定すると、私や会社にとってそれは何を意味するのでしょうか。

場所に縛られなくなる

現在、私たちは物理的なオフィスに縛られています。オフィスをなくせば、すべてのTinyPilot従業員が理論上どこからでも仕事ができるようになります。

時間に縛られなくなる

フルフィルメントや製造がなくなれば、時間的制約のある業務はカスタマーサポートだけになります。

従業員の不在に強くなる

ここ数か月、現地スタッフが数日間不在になることが何度かありました。予定された休暇もあれば、体調不良によるものもありました。

TinyPilotは十分な冗長性を備えているため、顧客に影響を与えることなく乗り切れましたが、システムの他の部分には負担がかかりました

製造とフルフィルメントをアウトソースすれば、従業員の不在への対応ははるかに容易になります。フルフィルメントのクリティカルパスから外れるため、出荷を維持するために慌てる必要がなくなります。

現地スタッフの役割が変わる

アウトソースにおける課題の一つは、既存の現地スタッフの仕事への影響です。オフィスをなくし、製造とフルフィルメントをアウトソースすれば、現地チームが現在担っている業務の約75%がなくなります。

現地チームは素晴らしい仕事をしてくれており、オフィスをなくしても社内で役割を持ち続けられるようにしたいと考えています。

現地チームは引き続きカスタマーサービスの業務を担います。アウトソースによって販売を拡大できれば、顧客が増える分、カスタマーサービスの需要も高まるはずです。

現地スタッフは、より多くのアウトリーチ業務も担えるようになります。以前、大口顧客に積極的に連絡を取り、製品の使用感を聞いた際には良い結果が得られました。時間の制約であまりできていませんでしたが、時間ができればその分野により投資できます。同様に、レビュアーやYouTubeクリエイターとの連携も増やせば、マーケティングにも役立ちます。

事務手続きが減る

現在、TinyPilotで法的に従業員として分類されているのは現地スタッフだけです。それ以外のメンバーは全員が業務委託です。現地スタッフがオンサイトで働いているため、米国の労働法上、業務委託ではなく従業員として扱わなければなりません。

TinyPilotのオフィスをなくせば、従業員を業務委託に切り替えることができます。「早く福利厚生を削りたいんだろう」と聞こえるかもしれませんが、皆にとって有益な形で移行できると考えています。目的は報酬を減らすことではなく、ストレスと事務作業を減らすことです。

従業員への支払いと業務委託への支払いでは、複雑さが大きく異なります。ほぼ毎月のように、マサチューセッツ州のどこかの官庁から、源泉徴収やコンプライアンス要件について書かれた難解な手紙が届きますが、自分が何をすべきなのか、そもそも何か対応が必要なのかすら明確ではありません。

コンプライアンスや適切な納税を支援するサービスもありますが、これまで特に優れたものには出会えていません。政府からの通知を給与計算サービスのGustoに転送しても、政府に電話して自分で確認してくれと言われるだけです。そして官庁に電話すると、電話のたらい回しに遭い、届いた通知について何も知らない担当者につながるため、結局は無視してそれが正しいことを祈るしかありません。

業務委託であれば事務作業ははるかに少なくて済みます。スタッフが従業員だったときと同等かそれ以上の報酬を得られるよう給与を調整でき、皆にとって事務手続きの負担が減ります。

コストが下がる

アウトソースはコスト削減にもつながりますが、これは私にとっては最も関心の低い利点です。

オフィスがなければ、家賃(月550ドル)、Gustoの給与計算サービス(月80ドル)、在庫管理(月59ドル)、労災保険(月30ドル)、賃借人保険(月10ドル)を支払う必要がなくなります。

人件費も理論上は1台あたり数ドル下がります。中国の製造業者は私たちの人件費の何分の一かでデバイスを製造でき、3PL業者は規模の経済により私たちより安く注文をフルフィルメントできるからです。

柔軟性と俊敏性は下がる

すべてをアウトソースすれば「ハッピーパス」は最適化されますが、例外への対応やミスの修正は難しくなります。

これまでは、見た目のムラを減らしたり使いやすくしたりするために、製品を迅速に改善してきました。すべてをアウトソースするとフィードバックループは遅くなります。数人の顧客から報告があるまで問題に気づかないかもしれません。その時点では、すでに何百台ものデバイスがパイプライン上の問題箇所を通過し、顧客や倉庫へ向かっている可能性があります。

エラー率は上がる

アウトソースすれば、エラー率はほぼ確実に上がります。現在のエラー率は限りなくゼロに近い状態です。過去18か月で約2,500件の注文がありましたが、誤った商品を発送した、あるいは製造上の不具合があったという顧客からの連絡は2〜3件しかありません。

経験豊富な製造・フルフィルメント業者でも、私たちが自社で達成しているエラー率には及ばないと思います。それでも、現在のエラー率は顧客満足を保つために必要な水準を大きく上回っていると考えています。0.3%程度のエラー率であれば、顧客体験に大きな影響を与えずに許容できるでしょう。

アウトソースは複雑さを増すのか、減らすのか

アウトソースの主な目的は複雑さを減らすことです。今もマネジメント時間を週20時間まで減らそうと取り組んでいます。

最も懸念しているのは、製造とフルフィルメントがTinyPilotの中でも最もマネジメントを要しない部分だということです。アウトソースしても取り戻せる時間がないかもしれません。すべてにおいて再現可能なワークフローを構築するまでには多大な労力がかかりましたが、それ以降はほぼ順調に回っています。

製造やフルフィルメントで私の関与が必要になるのは、部品不足や、私にエスカレーションされるほど特殊な配送トラブルといった場合です。外部業者に移行しても、そうした問題への対応は引き続き私が担うことになり、会社をまたいでの管理はより困難になります。

一方で、自前の製造・フルフィルメントの仕組みを維持し続けるより、外部業者と仕事をする方が楽になるはずだという感覚もあります。オフィスは順調に回っているとはいえ、オフィス自体やそれに付随するあらゆるプロセスを維持するだけで、大きな精神的負担がかかっています。

現在、私たちは複雑さという点で局所的な最小値にいるのではないかと期待しています。プロセスを切り替える摩擦によって一時的に複雑さは増しますが、アウトソースによって最終的にはより複雑さの低い状態に到達できると考えています。

プロセスを整えるにつれて複雑さが下がり、アウトソース時に急上昇した後、安定すれば現状を下回るまで下がることを示すグラフ

サイドプロジェクト

こんにちはPlaywright、さようならCypress

私はE2EテストツールのCypressを愛用してきました。2018年のWeb開発ミートアップでGleb Bahmutov氏のデモを見て以来のことです。ここ数年、PlaywrightというMicrosoft製のCypress競合について耳にする機会が増えていました。

1年前にPlaywrightを試したときはそれほど感心しませんでした。最近Hacker Newsのスレッドを読んでいると、誰もがPlaywrightはCypressを超えたと口を揃えていたので、もう一度試してみることにしました。

今では、Hacker Newsの意見に同意せざるを得ません。実験として、PicoShareのE2EテストをすべてPlaywrightで書き直してみました。ほぼすべての面で、Playwrightの方がCypressより扱いやすいと感じました。

CypressからPlaywrightへの移行プロセスについては、より詳しい記事を準備中ですが、要約すると、WebアプリのE2Eテストには今ならCypressよりPlaywrightをおすすめします。

まとめ

何ができたか

  • TinyPilot Pro 2.5.0をリリースした。
  • 8月にサポートエンジニアに応募してくれた全員に個別に返信した。
  • 2人目のTinyPilotサポートエンジニアを採用した。

学んだこと

  • タスクをどうアウトソースするかを考えるだけで、既存のワークフローの改善機会が見つかることがある。

来月の目標

  • 新しいサポートエンジニアを立ち上げる。
    • 1人目は質問の80%を自力で回答でき、2人目は50%を自力で回答できることを目指します。
  • 2つ目の金属ケース試作品の製造を開始する。
  • 3社の3PL業者に連絡し、フルフィルメント移行のプロセスについて話を聞く。

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

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