ソフトウェアとはガーデニングである
「The code garden (an analogy that sucks less)」という面白い記事がありました。 ソフトウェアとは継続的に管理が必要なものであるというアナロジーを庭園管理(ガーデニング)として表しています。
ソフトウェアは主に工場と同様に考えられてしまい、作る事に集中しがちだそうです。 技術者ではない人達にはソフトウェアメンテナンスの大事さがなかなか伝わりにくいそうなので、ピンと来そうなアナロジーを考えてみたのがこの記事だそうです。 ソフトウェアを書いた事がある人ならば、この園芸アナロジーは適切ではないのは解るだろうとも書いてありました。 「橋を作る」などのアナロジーが一般的らしいのですが、それでは「ソフトウェアには終わりが無い」という事を表しにくいので、このアナロジーを考えたそうです。
以下が理由の要約です。 面白かったです。 ただ、日本では一般家庭で大きな庭園を管理するということがあまり一般的だとは思えないので、ちょっとイメージが異なる部分もあるのかも知れないと思いました。 (もちろん、庭園管理をしている家もいっぱいあると思います。念のため。)
- 計画的にバランスを取れた植え付けをしなくてはならない。初期の学習と継続的な変化やメンテナンスが必要。
- リソースに拘束されたモデルである。大きな庭園が欲しいのであれば、メンテナンスのために多くを支払うか、初期投資を大きくするか、複雑度を下げるかを選択しないといけない。
- 庭園が一定の規模になってしまうとそれ以上の追加は出来なくなる。何かを追加したければ、使っていないものと置き換える必要がある。
- It imparts the reality that you can trade off quality for quantity, but only up to a point. You can have a tiny Japanese style garden where every rock and twig is given consideration, or you can allow a small amount of weeds. (うまく理解できず。「量と質はトレードオフだけど、それも一定値まで」と言っていると思われますが、日本庭園とのからみが良くわかりませんでした。)
- 管理を怠り過ぎてしまった場合、直すよりも置き換えるほうが簡単な場合がある。(雑草90%、花10%)
- 良く利用されている部分は多くのメンテナンスが必要であり、利用が少ない部分のメンテナンスは少なくても良い。しかし、メンテナンスをやめてしまうと誰も使わなくなってしまう。
なお、コメント欄には「○○の本にもそのように書いてあったよ」や「Code Completeでは農業に例えられているよ」という書き込みがありました。 また、個人的にはペットの飼育にソフトウェア管理を例えてみてはどうだろうかと思いました。
トラックバックURL : http://www.geekpage.jp/cgi-bin/tb.cgi?id=2007/7/17
コメント
| 通りすがり |
|---|
| >>4. 「量を質に転換するのは大事だけど、限界がある。日本庭園ではすべての岩や枝に意味があったりするし、(ガーデニングだったら)ちょっとくらいの雑草も許してるよね」 みたいな感じなんでしょうか。 汚くて直したいと思ってる部分が多少あっても気にするな、でも(5.に続いて)汚い部分が増え過ぎたなら作り変えた方がいい…というメッセージかなぁと受け取りました。 |
| tzifa |
| 4. 「狭くとも、全ての石木を慮るような日本庭園は望めるが、もしかしたら ただの小さな雑草地にしてしまうかもしれない。」 ということで現実的には量と質のトレードオフなのです。 多分。 1. 「バランスのとれた計画と最初の着手、加えて継続的な変更とメンテナンスが大事。」 だと思います。間違ってたらごめんなさい>< |
| 管理人 |
| 皆様、ありがとうございます! |








