I just came across the blog of Alan Cameron Wills and had to subscribe in my feed reader. His first post,
back in April, covers a development topic that is near and dear to me
-- de-coupling components so that the parts of an application can be
viewed independently. If you've done it well, adding/changing
components to the overall system is trivial.
In the past, I've
used the phrase "build a platform" to describe the approach, but the
idea is the same -- rather than try to eat an elephant all at once
(tackle a big project), take it in smaller bites (break the big project
into small projects). View the app as a platform on which you can build
components and capabilities.
Alan focuses his blog topic on the
independence of those smaller projects (and says it all with far more
clarity than I could). When you view a big project as a set of
independent, smaller projects, it's easier to add other small projects
(new components) later. If you go in with that thinking up front, your
architecture is far more "pluggable" than if you view it as one big
application and just start tackling it "a form/function/feature" at a
time.
Good reading.
