参考:(Martin Fowler’s Bliki in Japaneseより)
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?HarvestedFramework
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?FrameworkBuilding
Fowlerさん、さすがいい言葉持っていますね。
昨日も、朝まで飲みながら話していた内容なのですが・・・
いえ、以下はフィクションです・・・(涙)
ある会社では、フレームワークを作りました。
Fowlerさんの言葉で言うとFoundationFrameworkということになります。
まあ、そのこと自体はよいとします。これまで標準化をしてこようとして、なかなかうまくいかなかったのが、これを土台としてちょっとでも進んでくれればよいと思うわけです。
しかし、完璧なフレームワークなど、そう簡単には作れません。だから、日々改善が必要なわけです。そして、本当に改善ができるのは実際にそれを利用している人たちです。
ところが、このフレームワークは実際にフル活用される前に販売され始めました。当社から発注するアプリケーションはこのフレームワークを使用して作らなければなりませんから、協力会社には順調に売れているようです。そして、1年もないサイクルでバージョンアップをしていきました。
そうなるとこれを使って作る方は訳が分からなくなっていきます。フレームワークは売り物ですから、気軽に修正するわけにはいきません。改善要望を出しながらも、対応されるまでは変な工夫をしながら無理矢理にでもそれを使います。
ある程度再利用可能なシステムができても、新しいフレームワークができるとそれに対応させてテストをし直します。他人のフレームワークなら、「このシステムはバージョンxを前提としています」でよいと思いますが、自社のフレームワークですから、古いバージョンを使うわけにはいきません。
この話に対して、私は、フレームワークを売るという場合は、残りかすを売ればよいのではないかと思っていました。フレームワーク使う・作る目的は開発をうまく進めると言うことです。日々の開発の中で再利用できるところを抽出・整理していくことによりフレームワークと呼べるものができてくる。うまくいくものができたら、それを売って儲けてもよいかもしれない。ある時点のものを売りながら、自分たちは日々の開発の中で改善を重ね、よりよいものにしながら使っていけば、他社より有利に開発を進められます。
残りかすというのは言葉が悪いかなと思っていたら、FowlerさんはHarvestedFrameworkという言葉を使っていたというわけです。結実型というのが訳としては気に入りました。「残りかすを売ればよいのではないですか」と言っても聞き入れてもらえないような気がしますが、「フレームワークも充実してきたので、これからは結実型のフレームワークを目指していきませんか!」という話なら聞いてもらえるような気もします。がんばろ。