Some time ago I read the book by Jack Greenfield and Keith Short on software factories, and I liked the overall idea. I even got involved with a workshop at OOPSLA on this topic, kindly invited by Greenfield himself.
Since then, I have been reading papers, opinions and news related in various degrees to the concept of “software factories” as described by Greenfield and Short. A few days ago I attended an event where different Spanish government and corporate parties presented their ideas and objectives about software factories, and I was surprised to hear that everybody is into software factories now. Every single company talking at the event told tales about how they have created a software factory with 300 or 500 engineers in some low-tech, rural area of Spain. It was unclear why everybody used the term “software factory” to refer to a large building chock full with “engineers” developing software; we have always had that kind of place. It seems that development shops become now “software factories”, developers become “engineers”, and software development is not software development anymore but software manufacturing. So chic.
Interestingly enough, nobody mentioned the key factors that, as far as I understand, make a software factory a software factory, namely, the fact that you assemble software products from components rather than write code, and that you use mature tools and well-proven methods to do it. Some of the speakers sprinkled their discourse with CMMI spice, but, unfortunately, the result was quite bland.
While listening to one of the orators I could not help but think how all this may well announce a comeback of taylorism and certain tendency to renewed positivistic management. I think I have discussed at some point how different decades in the past century have been marked by specific flavours that are reflected in many different disciplines and aspects of life. For example, the 60s were anarchic and hippie, and the hacker ethic flourished. The 70s saw the coming of rationalism, relational databases and structured programming. In the 80s, the pendulum swung back to the “everything is valid” of hemeneutics, Smalltalk and humanistic influences in science. The 90s offered a mixed grill of compromises, and the 00s… well, I am not sure yet. Perhaps scientific management is rearing its ugly head again, happy to be 100 years old, and large companies, assisted by governments and funding agencies, are pushing towards an extreme philosophy of replaceable human resources, separation of labour and quantitative control. Let me quote one of the speakers at that dreadful event (my translation): “the human resources are told what their job for the day is, putting special emphasis on limiting their creativity; the appropriate inputs are delivered to them in the morning, and the expected outputs are obtained and measured at the end of the day”. This may sound machiavelic, but I promise it is a literal translation of an excerpt of the description that one of the speakers made of their CMMI-certified “software factory”. Phew. They don’t have people in there but human resources, which are apparently considered to be closer to a washing machine than to a carbon-based life form. These machines consume inputs and excrete outputs, which are diligently measured. I imagine managers are happy with such a clean picture of the world, but I doubt very much that their picture resembles the world I live in.
Brave new world.