I got a response in my comments to my post about Software Factories perhaps being too complicated to be used in the real world. It was from Mauro Regio , one of the initiators of the HL7 project mentioned in that post.
Here's what he had to say:
"Guy's comment is missing the fact that Software Factory is a long term initiative and that what is available today (in terms of tools and platform) is a "down payment" on what needs to (and will) be built to provide factories architects/developers with necessary capabilities and achieve the right level of quality.
He also uses HL7 Factory as an example of something that did not work, because it's not finished.
As the initiator and architect of that work I have a different opinion.
Actually, we have done two pieces of work around HL7.
The first one, is a factory that creates HL7 web services, i.e. services that can be deployed at the edge of an organization that wants to "talk" HL7 with another one.
The services are conformant with HL7 web services profiles and they are automatically produced/configured using the factory.
Sounds complex and real world enough to you? if not ask a HL7 solution provider!
That work is a proof of concept, not a product. The intent was to show that factories can actually be done in a "real world" domains, although aiming to automate a small portion of it.
That factory IS finished, it served the goal for which it has been built.
The second initiative, is a community project recently started to create what Guy mentioned, a HL7 library on .NET platform. That project is well underway and it will release a first instance of the library later on this year.
I think Guy is making a good point when he says factories have to aim at small domains. I'd like to add, to small "real world" domains.
At the same time, small factories can and need to be composed into larger one to become more relevant.
He also uses HL7 Factory as an example of something that did not work, because it's not finished.
As the initiator and architect of that work I have a different opinion.
Actually, we have done two pieces of work around HL7.
The first one, is a factory that creates HL7 web services, i.e. services that can be deployed at the edge of an organization that wants to "talk" HL7 with another one.
The services are conformant with HL7 web services profiles and they are automatically produced/configured using the factory.
Sounds complex and real world enough to you? if not ask a HL7 solution provider!
That work is a proof of concept, not a product. The intent was to show that factories can actually be done in a "real world" domains, although aiming to automate a small portion of it.
That factory IS finished, it served the goal for which it has been built.
The second initiative, is a community project recently started to create what Guy mentioned, a HL7 library on .NET platform. That project is well underway and it will release a first instance of the library later on this year.
I think Guy is making a good point when he says factories have to aim at small domains. I'd like to add, to small "real world" domains.
At the same time, small factories can and need to be composed into larger one to become more relevant.
It's through composition of small factories into a larger one that we aim to widen their scope. The next step is to optimize that composition, pretty much like what the manufacturing industry does today on a supply chain.
So are factories too complicated? They are fairly complicated, yes!
Is it a robot used in an automotive production line complicated? You bet it is!
Is it useful and efficient? Ask Ford, BMW, or any other car manufacturer?
Do we have the tools we need to execute on the factory vision? Not yet!
However, if you start with things like Guidance Automation Toolkit (GAT) and Domain Specific Languages (DSL) Toolkit, you're headed in the right direction.
Don't expect to build a very sophisticated "robot" today.
However, don't expect to see the factories vision to fail either!
Actually, you'll see Microsoft and partners coming out with various
software factories in the next few months.
I'm sure that will give you more confidence about what I just said.
Regards
Mauro Regio
Architect | Microsoft Corp. "
So are factories too complicated? They are fairly complicated, yes!
Is it a robot used in an automotive production line complicated? You bet it is!
Is it useful and efficient? Ask Ford, BMW, or any other car manufacturer?
Do we have the tools we need to execute on the factory vision? Not yet!
However, if you start with things like Guidance Automation Toolkit (GAT) and Domain Specific Languages (DSL) Toolkit, you're headed in the right direction.
Don't expect to build a very sophisticated "robot" today.
However, don't expect to see the factories vision to fail either!
Actually, you'll see Microsoft and partners coming out with various
software factories in the next few months.
I'm sure that will give you more confidence about what I just said.
Regards
Mauro Regio
Architect | Microsoft Corp. "
Thanks for the clarification, Mauro.
I've looked up some more links pertaining to the HL7 project:
- The Architecture Journal: Design and Implement a Software Factory (relates to HL7)
- Collaborative Workspace for the HL7 Software Factory (link seems to be broken :( )
- HL7 Reference Implementation of Web Services Profiles: Workspace Home
- HL7 Web Service Profiles