Tuesday, August 7, 2007

What is a Software Factory?

Can you describe what a "software factory" is?

The “Software Factory” is something that is common with larger, multi-departmental organizations where IT is serving a broad array of constituents. It may exist in any type of environment, but this is the most common scenario I’ve seen.

Factories are often focused around the development of foundational technologies – objects, web services, or modules that serve multiple applications and can be reused by the various constituent groups. One very interesting model segments the IT development organization into two segments; a “factory” that develops and certifies these foundational modules, and “customer facing” developers that use the components, as well as additional html/java/php etc. to assemble end-user applications.

In this type of model, the factory has little or no customer contact, but serves the other segments of the IT organization. There are also examples of the Software Factory within the big consulting firms – the earliest of which was Ernst & Young’s “Advanced Development Centers” that used a variety of acceleration techniques to serve clients directly. Accenture has followed up with a similar concept. I’m not sure these a true “factories” as they develop custom software that are almost all one-offs, but they use that expression nevertheless.

In my view, the value of a factory is their ability to focus on churning out a set of proven, well developed components that benefit the rest of the organization. You’re experience may be different, but that’s what I’ve seen.


No comments: