Here are a few good links on understanding a bit about the idea of "software factories".
- The Case for Software Factories by Jack Greenfield
- The Next Dev Wave: Software Factories at eWeek
- Reading is Fundamental at Harry Pierson's DevHawk web log
- And of course, Jack and Keith Short's book Software Factories: Assembling Applications with Patterns, Frameworks, Models & Tools
“Software Factories….are focused on product families, and can therefore make specific assumptions about the problem domain, the architecture, the implementation technologies and the development process. This lets them provide appropriate pattern palettes and bindings tuned for individual product families.”
This idea of product families is the key. They envision that tools (the Whitehorse tools included in VS 2005 for example representing the tip of the iceberg) will enable the creation of software product families based on what they call a “software schema” that allow development teams to quickly build customized versions of their software for different clients. Through domain specific languages (DSLs) and models that capture lots of metadata they propose to automate much of the construction of the software so that if you change a requirement at a higher level it gets reflected in the architecture, implementation, and deployment environments. It really introduces software development methodology different from MDA, UP, XP, and Agile Modeling.
In short, the software factory encompasses the idea of "economies of scope" for building enterprise business software rather than "economies of scale" upon which manufacturing and commerical software such as operating systems are based.
It seems to me that following this approach would mean that the Microsoft partner community might become more verticalized as a whole with different partners making the investment to specialize in different product families (product line developers in their terminology). Of course, partners would also need the skills to customize product families using the tools and lower-level technologies (product developers in their terminology). I would also assume that the Microsoft tools will include a few product families that are perhaps more generic.