Wednesday, November 30, 2005
This blog is dedicated to the advancement of what I call the industrialization of software.  Software industrialization is about raising the level of abstraction for programmers to produce quality software products using modern software engineering approaches such as Software Factories. One aspect of the Software Factory approach employs model-driven development using Domain Specific Languages (DSLs) that code generates parts (or all) of the solution for a specific problem domain.  The Software Factory approach enables programmers to produce and assemble software in a predictable and repeatable manner something we dont do well as an industry, but is done well in other industrialized engineering disciplines like civil, electronics, electrical and mechanical domains.  Or at the very least, software engineering is nowhere near as evolved as these engineering disciplines.
The author of this blog lived the Software Factory approach while working at a company called 5by5 Software, now called Bridgewerx.  5by5 was initially a Microsoft Systems Integrator (SI) that offered professional services in the area of application integration, designing and constructing solutions using Microsofts BizTalk Server product.  Over a 4 year time frame, we designed and constructed over 25 application integrations solutions.  These solutions included messaging exchanges and workflow of all sizes, shapes and forms for various vertical industries.
During this 4 year time frame, we recognized several application integration design/code patterns.  Each pattern went through the process of discovery, reuse, refinement, and then iterated through this process again for each new project we undertook.  After designing and constructing 25 BizTalk integration projects, we found an overall framework design pattern that could be applied to all integr