あらためて CoC と less software を考える

by tanabe on September 20, 2007

ぼくがかつて Rolling with Ruby on Rails を翻訳したときは、(少なくとも見知った範囲では)convention over configuration や less software の定訳がなかったので、その訳にえらく頭を悩ませた覚えがある。それが今や一部の区域では CoC で十分に通じるくらい浸透しているようで、なんとも良い時代だ。

いや、そんな昔話がしたかったのではなくて、最近業務アプリケーションの開発を考えるときに、あるいは業務プロセスそのものを考えるときに、CoC と less software から影響を受けている。そして、あらためて強力で汎用的なコンセプトだよなぁと感心している。

CoC は「設定よりも規約を重視」とか「設定よりもよいよいデフォルトを」とか「パンがないならケーキを(ry」とか訳されているが、要するに「どうせ皆がそれに従うことで、しかもそれを前提にすれば作業が減るならいっそ規約にしちゃって作業を減らそうよ」ってことだ。ルールが制約を作り、制約が作業効率を生むという例。制約を管理・制限するために使うんじゃなくて、あなたの自由(より創造的なことに時間を使える)のために制約という道具を使いましょうという考え方なわけだ。

一方の less software は「より少ないソフトウェア」と訳されたりしているがつまりはムダの排除だ。ソフトウェアの開発は目的でなくて手段なのだから、目的に集中して手段に捉われる時間や資源は少なければ少ない方がいい。極端な話をすると、作るソフトウェアのゴールが見えたらあとはコーディングはそこに至る手段でしかないから、やらずに済むならそれに越したことはないわけだ。アプリケーションを作ったら負け。作らずにすむ仕組みを考える。(いわゆる、ショートカットを考えてアプリ自体要らなくなるとかとはちょっと違う)

ここで、休憩。