2008-02-19

効率の良い開発とは

ZDnet Japanに「Matzに聞いてみた:効率の良い開発についてどうお考えでしょう?」という記事があった。とても参考になるし、RubyだJavaだPHPだという垣根を越えて賛同できる。

記事はおおむね、フロントエンドとバックエンド、あるいはデザイナとプログラマという境界が曖昧になっている、そしてウォーターフロー式の開発ではスピードが足りないので、よりアジャイル開発に近いものが求められている。というような内容。

Rubyが効率の良い開発に最適かどうかはさておき(僕はRubyは得意ではない)、オーバーヘッドの少ない開発、小さな開発・リリースを繰り返す、という見方には非常に賛成。僕も常々そう思っている。

ただし、記事の中にあった楽天の開発方法については異議がある。楽天市場などではいざ知らず、グループ全体では「外注をしない」は必ずしも本当とはいえない。また、ざっくりと作って改良を続けていく、というプロセスも良し悪しがある。例えば楽天のライバル会社の例では、作り直すときには結局スクラッチから書き直さざるを得ないほどにプログラマ個人の独断で作られていたり、どこの会社とは言わないがテストコードが非常に少ないので小さな改良をするためのコストがとても大きかったりする。

つまり小さな開発・リリースをするための前提として、決まったアプリケーションフレームワークを使うとか、決まった形でテストコードを残すとかしないと、結局ドキュメンテーションのしっかりした開発と同じ程度のオーバーヘッドが生じる。コード自体やバージョン管理システムの履歴をドキュメント代わりにするためには、それなりの決まりごとが必要で、それを省略すると悲しいことになってしまう。とはいえこれは凡庸なプログラマにとっては言わずもがなのことなので、Matz氏は省略しただけのことかと思う。

実際に外から楽天のサイトを見て、クールなアプリケーションだと思えるだろうか。もしも思えないとしたら、その中では多くのプログラマが無言で泣いているのだ。

0 件のコメント: