
As I spend most of my time recently thinking about SDK’s, UX patterns and interoperability, modularity is top of mind again and so are the words of Tim Berners-Lee in 1998…see below. It’s hard to get teams thinking about modularity for some reason.
Modular Design
When you design a system, or a language, then if the features can be broken into relatively loosely bound groups of relatively closely bound features, then that division is a good thing to be made a part of the design. This is just good engineering. It means that when you want to change the system, you can with luck in the future change only one part, which will only require you to understand (and test) that part. This will allow other people to independently change other parts at the same time. This is just classic good software design and books have been written about it. The corollary, the TOII is less frequently met.
Modular design hinges on the simplicity and abstract nature of the interface definition between the modules. A design in which the insides of each module need to know all about each other is not a modular design but an arbitrary partitioning of the bits.
Being part of a Modular Design
Its is not only necessary to make sure your own system is designed to be made of modular parts. It is also necessary to realize that your own system, no matter how big and wonderful it seems now, should always be designed to be a part of another larger system.
This is often much more difficult than modularity.
twitter
Facebook
XING
LinkedIn
last.fm









