One of the reasons that we have chosen to use the Eclipse RCP framework for the next version of EXTOL Business Integrator is that it promotes modularity. A modular application is a system comprised of smaller, simpler parts (modules). As things grow in size and complexity this becomes necessary. Automobiles, for example, are modular, comprised of numerous subsystems — power train, exhaust, brakes, electrical, etc. You, in fact, are modular. This principle from nature has long been understood in manufacturing: that the best way to design and build a complex thing is to first see it as an assemblage of smaller, less complex (and therefore more manageable) parts. Divide and conquer. Modularity also makes possible the division of labor, the modern assembly line, and with it the move from a culture of craftsmanship to mass production and economies of scale.
Designing modular systems tends to require more thought and planning up front but pays huge dividends down the line. Not only are they easier to build, they are easier to fix and maintain. Consider the problem faced by the U.S. government in the 18th century in provisioning firearms to its army. Each gun was unique and made by a different gunsmith, so if a single piece broke the whole thing needed to be replaced or needed custom repairs. The government hired famed inventor Eli Whitney to address the problem, and he proposed replacing traditional methods of gun manufacture with a system based on the use of interchangeable parts. So, if a part fails, swap in another that is identical.
Unfortunately, too much software is still manufactured like an 18th century musket: highly-customized, one-off creations built by craftsman programmers (‘codesmiths’); handcrafted works that may be beautiful to behold, but are a real bear to fix and maintain in the field. Continue reading