契約前に専任開発チームをどう確かめ、コードの完全な所有権をどう保つか:契約、エスクロー、バス係数、Rust のトライアル課題。
開発チームが一夜で消えることはまれだ。少しずつ離れていく。シニアのエンジニアはより大きな取引先へ移り、いちばん難しい部分を理解していた一人が辞め、仕事は誰も知らせなかった再委託先へ静かに移り、一年後にあなたのメールに返信している会社は、あなたのコードを書いた会社ではない。
そのどれも、ウェブサイトには表れない。そのすべては、署名の前にあなたが投げる問いに表れる。所有権も同じだ:「コードはあなたのもの」は約束ではなく読むべき条項であり、いくつかの国では、法律上の原則が買い手を驚かせる。
短い答え:居続けるチームは、探して見つけるものではなく、確かめて選ぶものだ。名前の付いたエンジニア、その在籍年数、そしてほかに誰のために働いているかを尋ねること。所有権は、初日からリポジトリを自社の組織に置き、コードを書く全員から署名された権利の譲渡を受け、サプライヤーが手元に残すものを、名前まで読んだ一覧に限定することで保つ。リアルタイムのシステムなら、どちらの側にも属さないエンジニアがレビューする有償のトライアル課題を加える。
あわせて読みたい
「消える」というのは、たいてい四つのありふれた経営上の出来事のどれかであり、劇的なものは一つもなく、どれも予測できる。
「信頼できる」かどうかは、外から調べてわかるものではない:契約の条件と、あなたが尋ねて得た人員の事実から生まれる結果である。上に挙げたどの失敗も、仕事が書面になっていて、リポジトリが自社のものであれば乗り切れる。
そうしたチームは、検索では見つからない。見つかるのは候補であり、結果を決めるのは確かめる作業である。最良の候補は、同じ種類のシステムを動かしていて、一年たってもそのサプライヤーと続いている会社からの紹介と、自分で読める公開されたエンジニアリングの仕事 ― コード、技術文書、登壇 ― から来る。ディレクトリが役に立つのは、レビューに書き手の名前と案件名が入っているときだ。向こうから来る営業で分かるのはマーケティングであって、エンジニアリングではない。
次に、その提案書が「専任チーム」という言葉で何を指しているのかを確かめること。この言葉には二つの意味があるからだ:
この違いは、尋ねるのにコストがかからない。そして、1か月目のチームが12か月目のチームであるかどうかを、これ以上によく予測するものはない。
求めるのは保証の言葉ではなく、事実である。重みの大半を担うのは四つで、残りは下のチェックリストにある。
ほかのどれより重い問いが一つある:いちばん大きな顧客が来月いなくなったら、当社のプロジェクトはどうなるのか。考えたことのあるサプライヤーは、人員配置と売上の構成で答える。考えたことのないサプライヤーは、そんなことは起きないと答える。
所有権を決めるのは、法律上の原則、それに代えて契約が定めた内容、そしてコードが置かれている場所である。買い手が考えるのは二つ目で、ときに三つ目、一つ目はほとんど考えない。驚きが潜んでいるのは、その一つ目である。
英国知的財産庁(UK Intellectual Property Office)は、この原則をはっきり述べている:「あなたが他の個人または組織に依頼または委嘱して著作物を作成させた場合、著作権の最初の法律上の権利者は、その著作物を作成した個人または組織であり、委嘱したあなたではない。ただし、書面で別途合意した場合はこの限りではない。」請求書を支払っても、著作権は移転しない。
「職務著作(work made for hire)」は、言葉の響きよりも狭い。米国著作権局(US Copyright Office)は二つの場合を挙げている。従業員が通常の職務の一部として作成した著作物と、明示的な書面の合意にもとづいて特別に発注された著作物である。後者には四つの条件があり、そのすべてが満たされなければならない。その第一は、その著作物が「職務著作として特別に発注または委嘱することが認められる、上に列挙した九つの類型のいずれかに該当しなければならない」というものだ。カスタムソフトウェアはその九つに入っておらず、同局はこう付け加えている:「これらの要件のいずれかを満たさない著作物は、職務著作ではない。」あなたのプラットフォームを職務著作と称する条項は、雇用主ではない会社と交わしたものであれば、何の効力も持たないことがある。
効くのは、書面にして署名された譲渡である。米国の著作権法はこう定めている:「著作権の移転は、法律の作用によるものを除き、移転証書または移転についての覚書もしくは備忘録が書面であり、かつ移転される権利の権利者またはその正当に授権された代理人によって署名されていない限り、有効ではない。」サプライヤーが譲渡できるのは自らが持つものだけであり、だからこそ従業員、業務委託の技術者、再委託先との契約が、まずそれらの権利をサプライヤーへ譲渡していなければならない。その連鎖を見せてもらうこと。ルールは国によって違うので、文言は弁護士に確認してもらうこと。譲渡であれば、コードは改変でき、事業とともに売却でき、別のサプライヤーへ渡せる。ライセンスでは、そうはいかない。
どの実システムにも、サプライヤーが書いていないコードが含まれている。ソフトウェア部品表(SBOM)を求めること。米国サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)はこれを「入れ子になったインベントリであり、ソフトウェアコンポーネントを構成する材料のリスト」と説明している。コンポーネントごとに、名称、バージョン、ライセンス、そして出荷または販売するときにそのライセンスが何を要求するかを示してもらう。
たいていのエンジニアリング企業は自社のライブラリを再利用しており、たいていの所有権条項はそのライブラリを除外している。この除外(カーブアウト)自体は普通のことだ。普通でないのは、範囲の定まっていない除外である。サプライヤーなしではシステムをビルドできなくなりうるからだ。署名の前に、範囲を定めること:
ソフトウェアエスクロー契約は、ソフトウェアの利用者、ソフトウェアのサプライヤー、エスクロー事業者による三者間の取り決めである:サプライヤーがソースコードとビルドに必要な資料を預託し、合意した事由が起きたときにあなたへ開示される。標準的な開示事由は、破産、管財手続き、保守義務の不履行を対象とする。預託そのものが証明するのは、何かが預託されたという事実だけだ。それが動くアプリケーションへ再ビルドできるかを試すのは、別立てのサービスである検証(verification)である。
どのサプライヤーにも、当社を含めて尋ねてほしい:プロジェクトが終わったあと、何がそちらのものとして残るのか。そして署名の前に、その一覧を名前まで見せてもらえるか
普通のシステムでは、遅いことは煩わしいだけだ。リアルタイムのシステムでは、遅れは誤りである:価格が動いたあとに取引所へ届いた注文は、遅い答えではなく間違った答えであり、再試行では直らない。その結果、人を雇うことについて三つのことが変わる。
エンジニアの母集団は小さい。2025年の Stack Overflow Developer Survey では、31,771人が過去一年に多くの時間を使って扱った言語を回答した。Rust を挙げたのはそのうち14.8%、C++ は23.5%、C は22%、Go は16.4%だった。これは調査であって労働市場の全数調査ではないが、要点は比率にある:厳しいリアルタイムの仕事に使われる言語は、少数派のスキルである。「Rust のエンジニアを用意できる」と言うサプライヤーが説明しているのは、採用計画だ。すでに社内にいるエンジニアのうち、何人が Rust を本番に出したことがあるのかを尋ねること。
言語そのものは定着している。Rust プロジェクトの年次調査は2025年で10回目を迎え、11月17日から12月17日のあいだに7,156件の回答が集まった。その報告は、Rust の開発者をさらに求める組織による採用の傾向が続いていると述べている。あとから雇うチームは、いまのパートナーから来る必要はない。
速さについての主張には、計測が伴わなければならない。本番のリアルタイムの仕事を持つチームは、促されなくても五つを告げる:何を計測したのか、どのパーセンタイルか、どれだけの負荷のもとでか、どのハードウェアの上でか、そしていつの日付か。平均よりパーセンタイルのほうが重要だ。平均は、リアルタイムのシステムが壊れる遅い裾を覆い隠すからである。この五つが添えられていない数字は、営業上の数字である。
トライアル課題は、これを証拠に変える:サプライヤーの通常の条件で有償、期間はおよそ2週間、題材はあなたの実際の課題、受け入れ基準は着手前に合意し、成果物は取引を続けるかどうかにかかわらずあなたのものとする。
Rust が必要だと言うと、三種類のサプライヤーが名乗りを上げる。総合的なアウトソーシング企業は、あなたのプロジェクトのために Rust のエンジニアを採用する:期限に採用の余裕があるなら妥当だが、難所がシステムそのものであるときは弱い。専門特化したエンジニアリング企業は、自社のエンジニアが本番に出した Rust のシステムをすでに動かしている。個人の業務委託エンジニアは優秀でありうるが、キーパーソンのリスクを最も純粋な形で抱えている。
主張と証拠を分けるのは、四つの確認である:
「C++ のチームを Rust に転換させる」というのは正当な計画であり、三か月目に判明するのではなく、名前と日程を添えて提案書に書かれているべきものだ。言語がすべてを決めるわけでもない:リアルタイムのシステムは、データベース、ネットワーク、デプロイの経路でも同じくらいよく壊れる。
本稿はランキングを出さないし、ランキングを出す相手には注意したほうがよい。ランキングは、あなたの期限も、プロトコルも、規制当局も、ピーク時の負荷も、一年後に誰がそのシステムを運用しているかも知りようがない。サプライヤーが合うかどうかを決めるのは、まさにそれらの事実である。
ランキングの代わりになるのは、自分で作るショートリストである。まずピークを数字で書き出すこと:いちばん忙しい日の、いちばん忙しい1分における毎秒リクエスト数、応答ごとに守らなければならない期限、そしてそれを外したときに何が起きるか。その1ページを、同じ要件書、同じトライアル課題、同じ契約条件の草案とともに三社のサプライヤーへ持ち込み、答えを一行ずつ比べる。
各項目について書面の回答を求めること。「あとで相談しましょう」もまた一つの答えであり、記録に残すべきものだ。
人と依存:
所有権:
リアルタイムの証拠、トライアル、出口:
上で説明した種類のサプライヤーのうち、amBrain は専門特化したエンジニアリング企業である。amBrain は、アルメニア・エレバンを拠点に、低レイテンシのトレーディングプラットフォーム、マッチングエンジン、リアルタイムビディングシステムを Rust で構築するソフトウェアエンジニアリング企業である。amBrain は2019年からソフトウェアを作っており、英語、ロシア語、アルメニア語で世界中で仕事をしている。
チームと形態について:最大40人のチームで、うちおよそ75%がシニア。働き方は三つの形態がある ― フルデリバリー、専任チーム、あるいはあなたのチームに入るエンジニアだ。
所有権についての文は一行で、短くすることはない:顧客は、プロダクトとコードの完全な所有権を保持する。ただし、amBrain の再利用可能なコンポーネントは除く。この条項こそ、本稿が範囲を定めよと言っているカーブアウトである。だから署名の前に、その一覧を名前まで当社に求めてほしい。
リアルタイムの仕事について:amBrain が構築したミニ取引所は、MOEX のコロケーションで本番稼働している。amBrain が公開している実測のレイテンシと出来高の数字は、ここでは繰り返さない。それらは業種ページに、計測の対象となった仕事の隣に置いてある。
この節が書いていないことは、意図してそうしている。本稿は事例紹介ではない。amBrain は、離職率の数字も、エンジニアの在籍年数も、バス係数の数値も、通知期間も、エスクローの取り決めも、認証も公開していない:そのどれも計測されておらず、計測されていない主張こそ、本稿がどこからも ― 当社からも ― 受け入れるなと言っているものだからだ。上で述べたそれ以外のすべては市場の慣行であって、amBrain の働き方の説明ではない。
まだ始まりの段階にいるなら、次に役立つ一歩はサプライヤー探しではない。1ページの文書である:ピークを数字で書き、期限を書き、上のチェックリストへの書面の回答を求めて、三社のサプライヤーへ送る。当社でも、ほかのどこでもよい。
現在のアーキテクチャと気になっている障害シナリオをお持ちください。30 分で一緒に確認します。