Recently, Kent Beck wrote a post which raise an opinion about software disign. It's a nice metaphore for disign. That is: design is an island.
Kent wrote: Designing, then, is like walking an island. As long as you don't get your feet wet, your design is okay. It means that we should try to design enough to meet the current set of requirement, otherwise you might fall into the water.
The "water line" is always changed because the tides always change the sea level. It means the change of requirement. That is inevitable. So we must beware not to let your feet wet. Kent said:"Design that are acceptable at other time of the year break down in the 10% of the year when you do 50% of your business." So you should keep your design fresh. It's the feature of the excellent architecture.
"Climbing higher on irland requires effort, just as improving designs require effort." That's right. You should spend your money and time to improve your disign.
Kent recoginzed the distributed application such as SOA and REST as the archipelago. It's interesting. The analogy is perfect. It's the extension of metaphore of island.
Kent alos raise his opinions, for example earthquake and island sank. More details visit the kent beck's blog here. Enjoy it!