Harry points to Jack Greenfield’s article in the MS Architect’s Journal that offers some more detail on the “Software Factories” concept.
Reading this article got me thinking about one of my favorite companies, Timbuk2. Timbuk2 has built a pretty successful business selling customized messenger bags over the internet (they’re great bags, BTW – I have 2). Buying a bag from Timbuk2 involves selecting the general size and type of bag from a list of preset options, and then selecting from a range of options (color, fabric, padding, etc) to come up with a bag that meets your own unique needs. And they can ship them out damn fast, too – customizations and all. In fact, getting a custom bag from them doesn’t really take longer than getting one of their ready-made bags – from my experience, the time cost of the operation is dominated more by billing and shipping than by manufacturing.
How can Timbuk2 turn around custom bags so fast? They leverage micro-customization and economies of scope. All their bags are made of the same constituent parts and are assembled according to the same general pattern. Options that don’t fit the pattern or are built from parts not readily available are discounted outright. For example, you can get any color and fabric combination available, but you can’t get a messenger bag with two shoulder straps (that’s a backpack, and they don’t sell those). By constraining the domain of possible customizations, they’ve removed a bunch of variables from their manufacturing process. Thus, they can focus on streamlining the various combinations of options they do support and find ways to optimize their manufacturing process accordingly. As a result, building a red/silver/red bag with a pencil pouch and interior divider isn’t much different than building a black/orange/black bag with a shoulder pad. Since the general template is the same for all bags and the parts themselves interact with each other in deterministic ways, the overall cost of customization is very small.
Timbuk2 has obviously learned a lot about building messenger bags. I think they teach us a lot about building software, too.