可能なら、エンジニアリングは内製化することをお薦めする。
組織と同じく、プロダクト開発は長いのである。安定したチームにプロダクト作業を任せていくのが1番だ。
とは言え、外部ベンダーに開発を頼むケースもあるだろう。
そんな時の注意点を挙げたい。
「将来的に内製化するかわからなくても、内製化が進めやすい契約にしておく」
というのは、契約によっては、開発を一括してベンダーに依頼し、社員がコードを見たり触ったりできないケースがある。この様なケースでは、将来的に内製化しようと思っても、社員へのKT(Knowledge Transfer)が進まず、ベンダーに依存し続けるしかない。
そして、別途KT用の追加契約(費用)が求められる。
開発者がコードを触れないと、コードの共同所有は進まない。だから、いつまで経ってもコードを自分達のアセットと思えないし、ベンダー依存状態から抜け出せない。
プロダクトにはライフサイクルがある。
今、大きな売り上げがあっても、いつか衰退する。プロダクトバックログも売り上げに直結する機能から、徐々に下支えする機能に移っていく。ROIで考えたとき、利益が減っていけば、固定費(外注費)がリターンを圧迫する。
だから、将来的には、内製化したいと思う可能性が高い。
エンジニアリングをベンダーに依頼する場合、社員がコードを見たり、協力会社の社員とペア作業・モブ作業ができるようにしておく。
エンジニアリングはエンジンだ。ボンネットを開けて、いつでもエンジンが見えるようにしておこう。