機能Aと機能Bがある。
機能Bは機能Aによって作成されたデータを使って処理をする。
このとき、機能A・Bの連携のインターフェイスはどのように決めていくだろうか?
機能Bが最も処理しやすいインターフェイスを第一案として定める進め方があると考えている。
このときのインターフェイスは機能Bが利己的に決めたものであるため、「エゴイスティックに決めるアプローチ」と名前をつけておく。
エゴイスティックに決めるアプローチは、機能A・Bをつくる開発者にそれぞれメリットがある。
機能Bの開発者は、機能Aとのインターフェイスの不確実性に対して一旦目をつむることができるようになり、実際に動くものを作ることが可能となる。
これは、機能B自体の不確実性に向き合うことである。
とくに機能Bが複雑な仕様であるほど、動くものを作ることの効果は大きくなる。
また、その中でインターフェイスも変更・改善されていくものであると考えている。
機能Aの開発者にとって、機能Bでデータがどのように使われるのか想定してインターフェイスを作ることが難しいことである。機能Bが複雑であればあるほど難しくなっていく。
したがって、機能B側からインターフェイスが提案されるほうが楽であると考える。
提案されたインターフェイスが現実的でないこともあるだろうが、その場合は協議して現実的なものに落としていけば良い。
なお、注意するポイントとして、インターフェイスに適合するようにデータを加工する際に、本来機能Bが持つべきロジックが機能A側に紛れ込んでしまう可能性はある。
機能Bの責務が明確ではない状況でこのアプローチをとることでこの可能性を上げてしまう。