TinyPilot: Month 31

Michael Lynch

TinyPilot: 31ヶ月目

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

一言でまとめると

移行にも、スムーズなものとそうでないものがあります。

初めての方は

こんにちは、Michaelです。私はソフトウェア開発者で、独立系コンピューターハードウェア企業であるTinyPilotの創業者です。2020年に創業し、現在は月商6万〜8万ドル、従業員は私のほか6名です。

毎月、こうした振り返り記事を公開して、ビジネスや仕事全般の状況を共有しています。

ハイライト

  • TinyPilotが新製品であるVoyager 2aの出荷を開始しました。
  • 新しい3PLベンダーとの契約を、取引開始から数週間で解約しました。

目標の自己評価

毎月初めに、その月に達成したいことを掲げています。結果は次のとおりでした。

Voyager 2aの初回出荷を行う

  • 結果: Voyager 2aの出荷を開始しました。
  • 評価: A

Voyager 2aは、結果的にTinyPilot史上最もスムーズなリリースになりました。これまでのローンチでは、いつも何か細かいことを忘れて直前になって慌てることがありました。今回は12月から必要な準備をすべて洗い出して進めてきたため、すべてが計画通りに進みました。

2月にフルフィルメントを3PLベンダーへ移行する準備を整える

  • 結果: 3PLベンダーとの契約を解約しました。
  • 評価: 対象外

残念ながら、実際に稼働し始めると、3PL側のワークフローに重大な欠陥が見つかりました。詳細は後述します。

5回目の年次振り返りを書く

  • 結果: 10日遅れで公開しましたが、内容には満足しています。
  • 評価: A-

今年の年次振り返りは執筆に苦労しました。最終的な記事は約2,500語でしたが、ボツにした下書きは5,000〜8,000語にのぼります。長い文章を書いては、200語の振り返りのために1,500語もの退屈な背景説明が必要だと気づいて削る、ということを繰り返しました。

公開したバージョンは、複雑な話に深入りしすぎることなく、その年の主要なトピックをうまくカバーできたと感じています。

TinyPilotの数値

指標2022年12月2023年1月増減
ユニーク訪問者数7,3088,092+784 (+11%)
総ページビュー数15,54916,665+1,116 (+7%)
販売売上$66,092.24$68,619.55+$2,527.31 (+4%)
エンタープライズサブスクリプション$290.70$290.700
ロイヤリティ$2,798.97$5,689.93+$2,890.96 (+103%)
総売上$69,181.91$74,600.18+$5,418.27 (+8%)
利益-$4,806.26$8,552.79+$13,359.05 (+inf%)

売上は昨年末のピークからは下がっていますが、これは意図的なものです。供給不足に対応し、フルフィルメント担当スタッフの負荷を抑えつつ新製品へ移行するため、広告を絞り、Amazonでの価格を高めに維持しています。

TinyPilotの3ヶ月移動平均利益は、5ヶ月連続で黒字を維持しており、過去最長の記録です。1月の数字は特に嬉しいものでした。大きな一時的コストがいくつかあったうえ、今年の残りの期間に想定しているよりも売上が鈍い中でも健全な利益を出せたからです。月8,500ドルの利益は、年間10万ドルの利益という2023年の目標にほぼぴったり沿っています。

生産台数を月140台から200台へ増強

昨年末、TinyPilotは2023年9月までRaspberry Piの新規割り当てが一切ないと告げられました。それまで生産能力は月約140台に制限されることになります。厳しい知らせでしたが、なんとかやりくりする計画はありました。

幸い、1月に少量ながら新たに割り当てが得られるという連絡がありました。これにより生産能力は月200台に増えます。8GBのPiを通常のほぼ2倍の価格で購入しなければなりませんが、販売を続けられるのであれば喜んでプレミアムを払います。

月200台という目標には満足しています。このペースなら無理なく販売でき、9月に供給不足が緩和した際にさらにスケールするための投資に回す時間と利益も確保できます。

金属ケースを間一髪で確保

毎年1月下旬から2月上旬にかけて、中国では春節(旧正月)を祝います。中国では旧正月を盛大に祝うため、ベンダーは完全に休業します。2週間ほど休むところもあれば、最大4週間連絡が取れなくなるところもあります。

TinyPilotは原材料の大部分を中国から調達しているので、春節の前後は慎重に計画を立てています。休業が始まる前に製造が完了するよう早めに発注し、さらに新規発注ができない4週間を乗り切れるよう、いつもより多めに発注する必要があります。

12月の時点では、まだTinyPilotの新しい金属ケースの設計を最終調整しているところでした。メーカーの見積もりでは、注文の完了までに30営業日かかるとのことで、春節の休業期間ギリギリのスケジュールでした。

カスタム製品の初回ロットを発注する際は、いつも可能な限り最小ロット(だいたい4週間分)にしています。ところが今回の最小ロットは4ヶ月分でした。春節を乗り切るのに十分な数に加え、次の製造ロットが上がってくるまでの分も確保する必要があったからです。

なので、もともとプレッシャーのかかる発注でした。プロトタイプは確認済みとはいえ、初回の量産では何が起こるかわかりません。もし1,000個すべてが使い物にならない不良品だったら、また4ヶ月間は3Dプリントのケースに頼ることになり、足りない分を補うために割高な予備ベンダーに高い費用を払い続けることになります。

もう一つの大きなリスクは、メーカーの納期が遅れて春節前に何も出荷されないことでした。出荷予定日が近づく数週間、進捗の報告はなく、期限には間に合うと思うという返事だけでした。必要なら一部だけでも出荷してほしいと頼みましたが、それが可能かどうかも教えてもらえませんでした。

ようやく、てっきり休業に入ったと思っていた翌週の土曜日に、送料をすぐに支払ってほしいというメールが届きました。すぐに支払うと、数日後にケースの追跡番号が送られてきました。

1週間後、ケースが到着しました!そして何より安心したのは、どれもプロトタイプと変わらない品質だったことです。

段ボール箱にぎっしり詰められたTinyPilotの金属ケースの写真

16箱のうちの1箱

おかげでVoyager 2aを予定通りに出荷でき、次の製造ロットが届くまで十分な在庫も確保できました。

3PLベンダーへの移行でつまずいたこと

今年の目標の一つは、TinyPilotの自社フルフィルメントを外部の配送倉庫に移管することです。こうした業者は「3PL(third-party logistics provider)」と呼ばれています。

12月に3PLベンダーへの移行を始めた当初は、とても順調でした。先方は小規模な企業で、顧客もみな小規模事業者でした。規模感が合っていて、こちらのニーズも理解してくれているように思えました。

しかし、倉庫管理ソフトウェアであるVeracoreとの連携方法について指示を受け取ったとき、最初に違和感を覚えました。指示書はPDFで、これが一つ目の危険信号でした。システムにログインしてみると、20年間アップデートされていないかのような古いASPアプリケーションが表示されました。

VeracoreのPDF手順書の1ページ。ひどい出来のASPアプリのスクリーンショットが載っている

Veracoreの導入手順PDFと、ウェブインターフェースのスクリーンショット

ひどく時代遅れのソフトウェアを見てさすがに不安になりましたが、まあ大丈夫だろうと自分に言い聞かせました。TinyPilotチームは引き続きShopifyで注文を管理する予定でした。Veracoreは3PL側がこちらのシステムと同期するためのもので、自分が頻繁に使うことはないだろうと考えたのです。

まずはリスクの低い製品から3PLに切り替えることにしました。TinyPilot Power Connectorです。主力製品の10分の1の価格で、販売数も月30〜40個ほど。3PLのワークフローをエンドツーエンドで試すにはうってつけでした。

3PLでの注文処理をオンにした直後、最初のPower Connectorの注文がクリスマスの午後5時に入りました。当然、当日は祝日のため発送されません。翌日の午後に注文を確認しましたが、Shopify上ではまだ「未発送」のままでした。まあ、翌日も休みなのかもしれないと思いました。

27日の午後3時になっても、まだ発送されていませんでした。3PLにメールで、注文がきちんと届いているか確認しました。先方からは、すべて正常に動いているが、Veracoreは1日1回だけ注文ステータスをShopifyに同期するとの返事でした。発送状況や追跡番号は午後8時までにShopifyに反映されるとのことでした。

1日1回?なぜVeracoreは配送ラベルを印刷したらすぐに発送済みとしてマークしないのでしょうか?そうすればリアルタイムで情報がわかるのに。

それでも、まあ大丈夫だろうと思いました。100社の顧客がこのシステムで満足しているのだし、リアルタイムの発送情報が本当に必要な場面なんてあるのだろうか、と。

もし顧客が注文を変更したいと言ったら?

30件に1件くらいの割合で、顧客から変更の依頼があります。配送先住所を間違えたことに気づいた、あるいは気が変わってキャンセルしたいといった内容です。

今のTinyPilotの体制では、こうした依頼への対応は簡単です。カスタマーサポートを担当する2名が、そのまま発送作業も担当しているからです。まだ発送前であれば、Shopifyで変更を加えて通常通り処理を続ければ済みます。

3PLに移行した途端、この「1日1回の同期」が裏目に出ました。顧客から変更依頼のメールが来ても、その注文がすでに発送済みなのかどうかがわからないのです。Shopifyで見ている情報は最大24時間遅れているからです。

3PL側の解決策は、注文を担当する従業員にメールで変更内容を伝えるというものでした。とても良い仕組みとは思えませんでした。

現在、Shopifyが私たちの「信頼できる唯一の情報源(source of truth)」です。誰もが注文に関する情報をShopifyという一元的な場所で共有できています。メールで別のやり取りを始めれば、情報が複数のサイロに分散し、同期が困難になります。

個人宛にメールするという点も気に入りませんでした。その人が病気や休暇で不在だったらどうなるのでしょうか。3PLによれば、通常は別の誰かがその人のメールをチェックするとのことでした。通常は、というのが引っかかりました。

顧客が通常とは違う方法で支払う場合は?

TinyPilotでは、ウェブサイトの通常のチェックアウト以外で購入されるケースがよく2パターンあります。

  1. ウェブサイトでは対応していないカスタム注文が必要な場合(例:大量購入割引)。
  2. 発注書(Purchase Order:いわば大企業が使う掛け払いのようなもの)で支払いたい場合。

(1)の場合は、カスタム注文を作成し、顧客にクレジットカードで支払うためのリンクを送ります。顧客が支払うと、Shopifyで自動的に「支払い済み」となり、発送します。

(2)の場合は、カスタム注文を作成し、顧客から署名入りの発注書が届くのを待ちます。発注書を受け取ると、実際にはまだ入金されていなくてもShopify上では「未払い」のままですが、発注書に基づいて発送します。

お分かりの通り、(1)と(2)は互いに矛盾します。3PLに「『支払い済み』になるまで発送を保留する」よう指示すると、発注書払いの(2)の顧客には対応できません。逆に「未払いでも発送する」よう指示すると、(1)の注文は顧客が支払う前にすぐ発送されてしまい、支払われない可能性もあります。

3PL以前は、発注書の場合には注文にメモを残して意図を明確にしていました。しかし3PLは注文を一度しかインポートしないため、後からメモを追加しても先方には伝わりません。

3PLの解決策は、ここでも担当者にメールで特例を説明するというものでした。

こうして書き出してみて、明らかな解決策を見落としていたことに気づきました。「『支払い済み』になったら発送する」というルールにしておけばよかったのです。そして(2)の場合は、発注書を受け取った時点で手動で「支払い済み」にマークすればよかったのです。未払いの発注書を追跡する別の仕組みは必要になりますが、3PLとの連携を場当たり的なメールで複雑にするよりは簡単です。

3PLの乗り換え

総じて、最初の3PLの変更管理の仕組みは脆弱で、高コストなミスを招きやすいと感じました。

うまくいっていないと伝えると、3PLは快く受け入れてくれました。契約上は2ヶ月前の予告が必要で、月額最低料金350ドルの支払いをあと2回求めることもできたはずですが、そうはしませんでした。

3PLを選定していたとき、同じくらい気に入った候補が2社ありました。運転して行ける距離にある方を選んだのですが、もう一方も「いつでも連絡してください」と言ってくれていました。

最初の3PLでエッジケースの問題に直面したとき、2番目の候補にどう対応するか聞いてみました。オーナーはVeracoreは時代遅れだと指摘し、自社の倉庫管理ソフトウェアならどう対応するかを説明してくれました。場当たり的なメールで穴埋めするのではなく、Shopifyで管理を続けられる、はるかにスムーズな方法でした。現在、そのベンダーへの切り替えを進めています。

まとめ

できたこと

学んだこと

  • 3PLが非標準的な注文をどう扱うかを確認すること。
  • ECプラットフォームと3PLの受注管理システム間のインターフェースは、可能な限りシンプルに保つこと。
    • 私の場合、3PL連携をシンプルにできたはずの簡単なプロセス変更を見落としていました。
  • 新しい3PLへの移行は一気にやらないこと。
    • まずは少量・低価格の製品から始めて、本番の高リスクな製品に移る前に問題点を洗い出すこと。

来月の目標

  • 出荷可能なTinyPilotデバイスの在庫を通常の水準に戻すこと。
  • 新しい3PLベンダーへの移行プロセスを開始すること。
  • 開発チームとサポートエンジニア間のチーム横断的なコラボレーションを開始すること。

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

コメント