Are Software Factories too complicated to be used in the real world?

Continuing this thought, one of the more interesting answers that came up at teh TechEd Architecture panel by Guy Ron is that the Software Factories initiative is most likely to fail from the evidence thus far. He mentioned a big project for the healthcare industry (HL7 Software Factory) and how, even today, a long time after it started, it still has not finished. Microsoft was trying to build (with third parties) the full object model of the HL7 so that applications can be built against it.

For now, it has proved too complicated to come up with such generic components to be reused in “factory floor” applications, which may be a testament to upcoming difficulties that the software industry will face when trying to get on board with this methodology.

Guy mentioned that it may prove useful for only smaller scale projects and domain (like UI) and not for “real world” domains.

That’s an interesting thought that I had not considered and I can certainly see the logic behind it. Personally, I’m not sure about Factories. I think they are a step, some step, forward. We’ve only been doing this for a few decades. We have a lot to learn. Software is still a craftsmanship, and not a manufactured product. How do we move to that Cross Posted from Blogs.Microsoft.Co.Il/Blogs/Royo
Published Tuesday, May 16, 2006 2:05 PM by RoyOsherove

Comments

Tuesday, May 16, 2006 11:10 AM by Arnon Rotem-Gal-Oz

# re: Are Software Factories too complicated to be used in the real world?

I totaly agree that it is complicated to apply software factories in vertical markets. Building a factory for a veritcal (such as the HL7 example) requires a deep understanding of the domain and a product line approach both of which are rather hard to get right.

I bloged about the current state of software factories with similar thoughts (following the software factories workshop that was held in Israel back in March) here: http://www.rgoarchitects.com/blog/PermaLink,guid,ffb5163e-ba6b-4e2e-b58d-4ecafa1d4562.aspx

Arnon
Wednesday, May 17, 2006 1:08 PM by Mauro Regio

# re: Are Software Factories too complicated to be used in the real world?

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.

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.
Monday, May 22, 2006 5:42 PM by ISerializable - Roy Osherove's Blog

# Steve Kelly on Software Factories: "It's worth the effort"

The saga continues as Steve Kelly, from MetaCase, sent me an email, from which I'll quote the chunks...