Blog

Wednesday, February 22, 2006

Cay We Build a Software Factory?

OK. So tonight it is my turn to be contrarian - Glen doesn’t get to hold that title exclusively wink

Keith Ray quotes William Pietri on why the factory concept doesn’t apply to software. I beg to differ on this but with a deeper explanation.

First off, very few factories are actually production lines. Most factories are actually work or job shops that pass materials from one station to another for value-adding work. The routing of the material depends on the customer order for the end product. The timing and prioritization depends on what was ordered, who ordered it and often how profitable it is. A whole specialist function is dedicated to routing and scheduling work in factories. In software we clearly don’t have this problem nearly as badly. Routing is a fairly simple matter.

However, the key to whether or not you have a “factory” or not, is not whether there is an assembly line with a quality control function at the end, but whether you have division of labor and specialist functions performing specialist tasks. The more specialization, the more division of labor, the longer the value chain and the more complex the problem of managing - including scheduling, routing, inventory control and so forth. Clearly the agile movement has dialed us back from the increasing specialization in the 1990’s (this was driven by the increasing complexity or languages, development environments, architectures, persistent storage, build tools, user expectations for user experience and so forth) towards a generalist workforce with fewer specializations and fewer job titles. There is definitely a craftsmanship vibe in the agile community and the more extreme agile methods are really pure craft. Craft pre-dates mass production and doesn’t need factories because there is no division of labor.

However, if I have a process which though still very agile - low levels of waste in the process, high trust environment, highly iterative, tight feedback loops, regular delivery of value to the customer, high levels of quality assurance and pride of workmanship - but, I still have specializations and I still have division of labor in the production of the finished product, then I still have a factory, though a vastly simpler one than the typical manufacturing organization. Technorati tag: Agile, David+Anderson, Glen+Alleman, Keith+Ray, Extreme+Programming, Software+Factory

Posted by David on 02/22 at 12:59 PM Agile • (0) TrackbacksPermalink
Page 1 of 1 pages