Tuesday, December 26, 2006

Software Factories

Recently one of my colleagues spoke to me regarding Microsoft Software Factories.

And in the last SAP TechEd too, I saw a similar article that is titled on the lines of 'Manufacturing IT'.

Before reading the introduction from Microsoft, I guessed it has something to do with Model Driven Architecture. And I am not wrong.

Microsoft defines the Software Factories as the development environment that is configured to support the rapid development of a specific type of application. Yes, let's say you are developing smart clients clients (repeated activity of development), then having software factories for mobile clients would greatly improve the productivity& standards in the development.

Essentially, the software factory embodies patterns, tools, application blocks, and best practices.

This is the concept that most of the IT services companies of India are trying to achieve over a long time. But, as far as I know, no body has achieved any significant results / nobody has published/promoted those kinds of properietary/home-grown frameworks to the market.

The reason is - IT services companies executes projects for various kinds of clients from various geographies. And each of the solutions that they build have their own specific business requirements/context specialization.

So, its literally impossible to say 'One size fits all'. Its very difficult to say 'One framework will be able to solve all the problems in a specific area'.

And the significant difference that I see from a traditional 'Manufacturing factory' and a 'Software Factory' is that - Manufacturing Factory produces the 'same' kind of products, more in number. Each and every product that gets out of the factory has to look-alike, compliant to quality controls, and produce same end-user experience. There cannot be any exceptions.

The software factory can be applied to product line architectures for companies that build and deliver software products.

But, here, the number / volume of software products that get manufactured is immaterial. (Unlike Traditional manufacturing).

And thatz true for software service companies as well. They build 'one-off/pointed solutions' for customers. So why would they need to invest in 'Software Factories'?. Neverthess, the service companies have gone ahead in the past and built the most common denominator as the 'Framework' that can be repeated across several projects.