Ruby On Rails系統のフレームワークの選定 

 フレームワーク選定するにあたって、軽量フレームワークで、素早い開発ができるかどうかが、今のトレンドのように思える。

 

 一般論とは言えないかもしれないが、プロジェクトがうまくいくカギは2つあるように思える。

 1つは要件が確定していること。一括請負で一括納入することが前提だが、プロジェクトの期間の中盤を超えている状態で、要件が1割すら確定していない状態でプロジェクトの成功に希望を持てるだろうか?

 もう1つは、実装コードが軽量で、DRYな状態が保たれており、素早い開発がおこなえること。非常に重くて、カスタマイズの手の施しようのないソースを抱えていて、プロジェクト終盤の混乱の中で発生する仕様変更や、品質問題に耐えうる自信をプログラマは持てるだろうか?

 

 この両輪を揃わないと、プロジェクトの収束は難しい様に思われる。

 そこで収束の為の1輪として期待されるのが軽量なフレームワークであること。代表的なものに規約により従来よりもコード量を削減することができるRuby on Railsがある。

 PHPならCakeフレームワークがあり、JavaならSAStrutsや、Playフレームワークがある。

 正直どれでもいい。プロジェクトを完遂するためのコントロールを握ることができるなら。

 

 フレームワークの選定はだいたいが、いつも政治活動になる。みんなやりたいものが違う。フレームワークなんて使いたくないという人もいる。トップダウンで決められてしまう場合もあるし、既に決まっていて、開発も始まっている状態が多い。

 すでに決まったフレームワークをひっくり返すのは、難問だ。でも、やらなければいけないときはあると感じている。

 

 必要なのは「本当に今のフレームワークである必要があるのですか?」という前提を疑う問いを起すことと、「今のフレームワークを最後まで使い続けるのと、それをやめて新しいやつで1からやりなおすのと、どっちが早い?」という問いに明確に答えることが出来ること。

 

 どっちが早いかという問いに答える為の材料が必要だ。チェックポイントを検討してみよう。なお、プロジェクト完遂のための両輪のうちの1つは整ったことにして、ここではその事には言及しない。

 

 例えば、政治的な理由からCakePHPが一番、異論が少なく、協力者も得られそうだとして、それを候補にあげるとする。

 

 チェックポイントとして次のような点があげられる。こっからは技術の話。

 

 1、フレームワークは軽いか?コードを書くときに少ないコードで書けるか?学習コストは低いか?

 2、フレームワークに変な癖がないか?

 3、画面回りの作りこみは楽か?テンプレートエンジンなどは利用できるか?

 4、データベース周りの実装はややこしくないか?SQLクエリ自由に書くことができるか?

 5、スキャフォールドでどこまでできるか、むしろ、どこまではできないか?

 6、ライブラリは使えるものが多いか?

 7、技術的な資料や情報は多くあるか?日本語で情報があるか?

 8、周りで、既にプロジェクトに使っている事例があるか、できればソースコードが共同所有されているか

 

このあたりで引っかかるところがなければ、混乱の中でコントロールを握りやすい。

 「本当に今のフレームワークである必要があるのですか?」という問いの答えを相手の頭の中に考えさせることさえができたら、後は「どっちでやった方が早いか」という問いに明確に答えるだけで、すべて成る。

 それと「そのフレームワークを使ったら納期に本当に間に合うのか?」という問いには答えてはいけない。たとえ「はい」といえば、本当にフレームワークを変えることができるとしても。