マーケット・イン、プロダクト・アウト、フレームワーク・アウト

マーケット・イン、プロダクト・アウトと対立する概念では全くないんだけど、アプリケーションを開発する場合にマーケット・インの場合でもプロダクト・アウトの場合でも、フレームワークに沿ってつくることを意識する必要がある。とくに小さなスタートアップの場合は。

プログラマーにとっては割と自明のことなんだけれど、経営者であったり、技術にあまり詳しくないステークホルダーがこれを理解してないと最初からつまづくことになる。

フレームワークにそって作りましょうというと、フレームワークに媚びやがってとか、アップル信者め、みたいな話になりがちなんだけど、そういう奴らこそ実はWebを前提にしてたりして、何だ結局「ブラウザ」というフレームワークに(無自覚に)媚びちゃってるだけじゃんということになる。(Web前提で作るのがダメってんじゃなくて、フレームワークに媚びるという視点で反論するとってはなし)

 

話がそれたけど、理由はシンプルにフレームワークに逆らえば逆らうほど開発は工数がかかるし、保守運用に至ってはその開発よりさらに大変なことになるから。

フレームワークってのは、iOSにかぎらず世界中の超優秀なプログラマーが長い時間をかけて作ってきたものなので、スタートアップ企業に初期にいるようなイマイチな(僕のような)プログラマーが下手に手を入れなければものすごく拡張性が高い状態で提供されている。

マーケット・インで、市場のニーズが確定していて、それに必要だからフレームワーク離れてカスタムするというのは全然OKなんだけど、マーケット・インにおけるニーズを調べている段階(leaps of faith questionsを検証している段階)とか、プロダクト・アウトでも、プロダクト・アウトだからこだわりを持って最初からカスタムするぞ、じゃなく、フレームワークに従うことによるコストの最小化で浮いた時間をプロダクト・アウトたる価値に集中して、開発を進めて行ったほうが実りあるものになるはず。