His latest post is about Software Factory verticalisation, ie how can we leverage off the essentially horizontal (cross-cutting) software factories that Microsoft P&P are developing, to specialise them for our particular (and narrower focussed) domain?
His post raises some interesting related issues about the practical application of software factories.
The current crop of horizontal factories - SCSF(Smart Client Software Factory), WCSF(Web Client Software Factory), WSSF(Web Service Software Factory) - are all general purpose / cross cutting. They should provide a way of insulating / abstracting from the physical solution domain, eg .NET 2.0/3.0/3.5, etc.
The issue I'm raising is - how do we future proof our factory developed applications, to allow us to take advantage of ever changing technologies, and allow us to "easily" upgrade to the next version of our vertical or horizontal factories.
Without strategies to handle this, are we destined to have to rewrite / refresh our apps / products every few years ? If we accept this - then it's legacy / obsolescence by design, and we loose many / most of the gains we have made by using a software factory approach.
It seems to me that the answer lies with modelling (via DSLs) so that our IP assets are maximised in (DSL) models and other factory assests, and we "just" have to update the mappings to lower levels when they change.
But with the factory approach spanning vertical factories to horizontal factories to physical solutions, this introduces some interesting configuration management and upgrade challenges.
Also "interesting" is the choice of which horizontal factory (from Microsoft P&P) you should use. For our smart client product line, we were planning to use the SCSF, but depending on who you talk to - development of it has either stopped / slowed to a crawl, and the supposed replacement is Acropolis. I don't see any evidence with Acropolis that they are taking a software factory approach. This is indeed a challenge for those of us who would like to embark on a software factory / product line approach.