N2 ToolBox(跡地)

跡地です。引っ越しました。http://d.hatena.ne.jp/nosen

フレームワークの生産性

2009-06-29 22:53:39 | 意見
たけぞうさんの日記より

フレームワークの選択は開発者の趣味?

これは釣られるエントリだなぁ。。

「フレームワークによる開発効率の差は開発者視点の趣味レベルの話でしかない」
「何を使っても開発コストは大差ない、それよりも安心して導入できることが大切だ」

と言われてしまったたけぞうさんの気持ちはすごくよく分かるのですが、
相手の方の意見は簡単に全否定することが難しい主張だと思います。

一般的に言って、あるプロジェクトが高い生産性を発揮したとして、
その生産性がプロジェクトを構成する特定の要素によって達成されたものかどうかを証明することは、
ほぼ不可能に近いと思います。

プロジェクトの生産性は、
「どういうフレームワークを使って開発するか」ということのほかに、
「どんな開発者が開発するか」
「どんな顧客のために開発するか」
「どんな作業環境で開発するか」
などなど、様々な要素に影響を受けるからです。

これら種々の要素のうち、特定のフレームワークが特に生産性の向上に寄与することを明らかにするためには、
フレームワークだけを他のものに交換し、
その他の条件はもとのままでプロジェクトを再実行する必要があります。

この「他の条件はもとのままで」ということは、実現不可能です。
同じ開発者が開発するとしても、その開発者には前にそのプロジェクトを実行した経験が
蓄積されてしまっているので、すでにその開発者の状態がすでにもとのままではない。
これは顧客についても同じことが言えます。
だからといって、開発者を他の人に入れ替えてしまったら、さらに条件が変わってしまいます。

加えて、特定の開発者が特定のフレームワークを使うから生産性が高くなる、等の
要素間の相互作用が生産性に影響を与える可能性まで考えると、

「あるフレームワークにはプロジェクトの生産性を高める効果がある」

ことを客観的に証明することはほぼ不可能であることが分かります。

それゆえ、

「フレームワークの生産性には、趣味レベルの違いしかない、どれ使っても一緒じゃん」

的な主張に対して効果的な反論をすることは難しいのです。

だからといって、冒頭の主張が正しいとは、僕は全く思いません。

同様の理由により、

「十分な安定性があれば、どんなフレームワークを採用しようと結果は変わらない」

こともまた証明することはできないからです。
というか、そもそも「十分な安定性」も同様に決して証明できないでしょう。

プロジェクトはその定義からして1回こっきりのもの、そして再現性の無いものに対して
科学的な手法で何かを証明することは出来ません。

陳腐なたとえですが、
それは1回こっきりの人生、いい大学に入って、大企業に就職したから幸せだなんて、
だれも言い切れないのと同じことです。

だから、フレームワークを選択するという問題は、むしろ宗教的な問題なのだと僕は思います。

大事なことは、開発者が自分が使うフレームワークの有用性を信じることができるかどうか。

少なくとも、いやいや押し付けられたフレームワークを使って開発者の生産性が向上することはありません。
それは、客観的に証明するというよりも、人間の共感する力によって理解すべきことです。

プロジェクトを成功に導くために、全力を尽くすのがプロだとすると、
たけぞうさんが遭遇した冒頭の意見は、その意見自体が正しいかどうかということよりも、
それを言ってしまうことによって、
「実績はそれほどでもないかもしれなけど、開発効率はいいはずだ」と
フレームワークの力を信じる開発者のモチベーションを意識せずに
殺してしまっているという意味で、空気の読めない素人くさい意見だと僕は思います。


最新の画像もっと見る