Software factory evangelism

Every few years, the industry rediscovers the idea that software development should be more like manufacturing—that if we could just standardise the components, the tools, the processes, we could produce software the way Ford produced cars. Model Driven Architecture made this case. Software factories, as Microsoft was promoting through the MSDN Architecture Center in 2007, made it again.

The appeal is obvious. Most enterprise software solves variations on familiar problems: authentication, data access, workflow, reporting. If the common patterns could be encoded into configurable toolchains—factories that generate correct scaffolding for a given domain—developers could focus on the genuinely novel parts of what they’re building rather than re-implementing the same plumbing for the hundredth time.

The idea is right in principle. The difficulty is always in the particular. MDA had been around longer than software factories, but production-grade implementations were rare. The abstraction gap between a platform-independent model and working code turned out to be harder to close than the theorists anticipated. Software factories narrowed the scope—targeting specific application types rather than general-purpose code generation—which made them more tractable but also more limited.

Getting an organisation to engage with any of this is its own challenge. The technical case is easy compared to the organisational one. Decision-makers will nod along to a presentation, express genuine enthusiasm, and then return to the work they were already doing. The friction isn’t usually scepticism about the idea—it’s the rational inertia of teams that are already under deadline pressure and can’t afford the learning curve of a new paradigm right now.

The lesson I took from an early attempt to introduce software factories to my team: come with a concrete demonstration on a real problem, not a concept pitch. Architecture evangelism that stays abstract will lose to the immediate demands of the sprint. Evangelism that says “here’s the same problem we solved last quarter, and here’s how we would have solved it faster” has a fighting chance.

Whether software factories as Microsoft envisioned them delivered on their promise is a longer conversation. The underlying instinct—reduce accidental complexity through better tooling and reusable patterns—remains worth pursuing.