El artículo de Greenfield es más explicativo que otros sobre su esquema, aporta algunos elementos de interés, pero también refuerza las dudas sobre el valor de su iniciativa. Pensaba pormenorizar algunos de sus conceptos, pero Kelly lo hace con claridad. Recomiendo leer su opinión, siguiendo el conjunto de la discusión, que incorpora referencias a Jezz Santos y Juha-Pekka, que completan la idea.
Jack does hint at more specialized factories than the earlier very generic "horizontal" factories he has tended to talk about. But the level of abstraction is not being raised much above how people currently code:Known good patterns and practices in the target domain are harvested, refined and encoded into domain specific tools and runtimes. The tools are then used to rapidly select, adapt, configure, complete, assemble and generate solutions that use the runtimes.
Let's do a thought experiment. Imagine yourself back in time to when applications were built with assembly language. Which of the words that I've italicized above would indicate a radical shift upwards in the level of abstraction? E.g. if you can select among some existing chunks of assembly language -- nice maybe, but you're still working on the same level: you've not moved to third generation languages yet. Only the final verb, generate, accomplishes that change.
In the same way, insofar as Jack's article is a good description of Software Factories, it looks like their emphasis is more on small percentage improvements of existing ways of building software. That's a shame, especially given that earlier they seemed more focused on the DSL and generation elements that they share with Domain-Specific Modeling. The $64,000 question is: why this change of emphasis? Jack, Jezz, Prashant Sridharan and other MS people have all made comments along the lines that doing real problem-domain-based DSM has proven too hard for them. Why are they failing, when so many others are succeeding? For examples of success, just take a look at the articles from the upcoming 7th OOPSLA workshop on Domain-Specific Modeling (e.g. 24, 14 and 10 are all graphical DSL examples).