この質問の中心
The focus of this question
この質疑応答では、顧客ごとの開発と、全顧客が使えるプラットフォームの開発をどこで分けるかが話題になります。FDE(Forward-Deployed Engineering)は顧客の近くで仕事をします。しかし、顧客の要望をすべてコア製品に入れるわけでも、すべてを顧客専用のまま残すわけでもありません。
This Q&A discusses where to draw the line between development for one customer and development of a platform that every customer can use. FDE (Forward-Deployed Engineering) works close to customers. However, that does not mean putting every customer request into the core product or leaving everything permanently customer-specific.
話し手の判断ルール
The speaker's decision rule
The speaker suggests the following boundary:
- 一社だけに固有のものは、その顧客のための仕事として残します。
- 他の顧客にも使えそうなものは、長期的にはプラットフォーム側で汎用化します。
- What is unique to one company remains work for that customer.
- What seems useful to other customers is generalized on the platform over the long term.
ここでいう「汎用化」とは、特定の顧客のためだけに作った機能を、他の顧客も利用できる共有機能や共有プリミティブ(再利用できる基本部品)に作り直すことです。この判断は、単に顧客の要求を受け入れるかどうかではありません。将来も同じ仕組みを使えるか、という観点で実装の置き場所を決めます。
Here, “generalizing” means redesigning a feature made only for a particular customer as a shared capability or shared primitive (a reusable basic building block) that other customers can also use. This decision is not simply about whether to accept a customer's request. It decides where to implement something by asking whether the same mechanism can be used in the future.
例(説明用)
Example (for explanation)
ある顧客だけが必要とする特殊な処理なら、FDE側でその顧客向けに実装することがあります。一方、同じ種類の処理が複数の顧客で必要になれば、共有プリミティブや製品機能にできるかを検討します。これは説明のための例であり、話し手が特定の処理や移行条件を挙げたわけではありません。
If a special process is needed by only one customer, the FDE side may implement it for that customer. If the same kind of process becomes necessary for several customers, the team can consider whether it can become a shared primitive or product feature. This is an explanatory example; the speaker did not give a specific process or migration condition.
なぜ境界が必要なのか
Why a boundary is necessary
同じコードや仕組みを顧客ごとに何度も作ると、重複が増えます。その結果、保守する対象が増え、FDEの仕事が開発会社(dev shop)のようになりやすくなります。反対に、繰り返し使える能力をプラットフォームにまとめれば、一度の改善を複数の顧客に生かせます。つまり、汎用化には重複を減らし、技術的なレバレッジを高める効果があります。
If the same code or mechanism is built repeatedly for each customer, duplication grows. As a result, there is more to maintain, and FDE work can start to look like a development shop (dev shop). In contrast, putting a reusable capability into the platform lets one improvement benefit several customers. In other words, generalization reduces duplication and increases technical leverage.
ただし、顧客固有の仕事をすべて共有プラットフォームへ移すべきだ、という意味ではありません。固有性が高いものまで無理に製品化すると、その顧客には不要な複雑さを持ち込む可能性があります。話し手は「一般化できるものは長期的に一般化する」と述べていますが、いつ移すかを決める基準、担当者、期限は示していません。
However, this does not mean that every customer-specific piece of work should be moved to the shared platform. If something highly unique is forced into the product, it may introduce unnecessary complexity for that customer. The speaker says that what can be generalized should be generalized over the long term, but he does not give a criterion, owner, or deadline for deciding when to move it.
FDEは納品だけでなく、製品を見つける役割も持つ
FDE also helps discover products, not only deliver them
この考え方では、FDEの顧客対応は単なる納品作業ではありません。顧客の現場で何を作る必要があるかを調べることで、今のプラットフォームに足りない能力も見えてきます。顧客向けの仕事が、将来ほかの顧客にも役立つ製品やサービスを見つける「スカウティング(探索)」になります。
In this model, FDE's work with customers is not merely delivery. By investigating what must be built in the customer's environment, the team can also see which capabilities are missing from the current platform. Customer work becomes “scouting”: finding products or services that may help other customers in the future.
The process can be organized as follows:
- FDEが顧客の課題に合わせて、現在のプラットフォーム上で解決策を作ります。
- その解決策の中から、一社だけに必要な部分と、他社にも必要になりそうな部分を見分けます。
- 後者を長期的に共有プリミティブや製品へ発展させます。
- より強くなったプラットフォームを使って、次の顧客に対応します。
- FDE builds a solution for the customer's problem on the current platform.
- The team separates the parts needed only by one company from the parts that may also become necessary for other companies.
- Over the long term, it develops the latter into shared primitives or products.
- It serves the next customer using the stronger platform.
この循環が、顧客への提供とプロダクト発見をつなぎます。FDEは顧客のために作るだけでなく、どの能力を製品として育てる価値があるかを学ぶ場所にもなります。
This cycle connects customer delivery with product discovery. FDE does not only build for customers; it is also a place to learn which capabilities are worth developing as products.
最初から豊富なプラットフォームは必要か
Does the platform need to be rich from the start?
話し手によれば、FDEチームの初期には共有プリミティブが少なくても問題ありません。顧客案件を進めながら、必要な能力を見つけてプラットフォームを広げていく道があります。したがって、最初から完成した巨大な基盤がなければFDEを始められない、という説明ではありません。
According to the speaker, it is fine for an FDE team to have only a few shared primitives at the beginning. The team can handle customer projects, discover the capabilities it needs, and expand the platform along the way. Therefore, he is not saying that FDE cannot begin without a large, complete foundation.
一方で、顧客ごとに作ったものを永久に個別管理すれば、前の章で説明された保守負担につながります。少ない部品から始めることと、共有できるものを長期的に共有側へ戻すことは、両立します。
On the other hand, permanently managing each customer-built piece separately leads to the maintenance burden described in the previous chapter. Starting with a small number of building blocks and returning what can be shared to the shared side over the long term are compatible.
注意点と、この質疑応答の限界
Notes and limits of this Q&A
この回答の直前にあった聴衆の質問は、記録上、完全には残っていません。そのため、プラットフォーム側と顧客側に分ける具体的な変更例は分かりません。また、話し手は「一般化できるものを長期的に一般化する」という方向を示しましたが、移行のしきい値や承認の仕組みまでは説明していません。
The audience question immediately before this answer is not fully preserved in the record. Therefore, we do not know specific examples of changes that should be assigned to the platform side or the customer side. The speaker also points toward generalizing what can be generalized over the long term, but does not explain a migration threshold or approval process.
したがって、この章から読み取れるのは、固定された運用手順ではなく、固有性と再利用性を見て、顧客専用の実装と共有プラットフォームの境界を考えるという原則です。終盤は次の質問へ移る途中で時間を確認する場面になっており、そこから新しい製品方針を推測することはできません。
Therefore, what this chapter supports is not a fixed operating procedure, but the principle of considering the boundary between customer-specific implementation and the shared platform by looking at uniqueness and reusability. Near the end, the speaker is checking the time while moving to the next question, so we cannot infer a new product policy from that moment.
出典:Kevin Bai「Forward Deployed Engineering 101」該当箇所(16:12)