Can great design be produced in a software factory?

Friday, July 23, 2010 gc 0 Comments

The concept of a software factory has always seemed broken to me. The main idea of a software factory is to hire designers to create the right components, and hire less skilled people to assembly the components together to create new software systems. The appeal: you don't need so many smart creative people. The problem is that it doesn't work.

On the surface, it sounds great because you don't need so many software developers. And you hire less skilled (and less paid) workers to assembly the components like factory workers. But factory workers don't make design decisions on-the-fly during the manufacturing process. And assembly usually requires some code. The software factory metaphor is at least a little broken.

If you think about it, every line of code is a design decision not a manufacturing one. Coding is about making small little design decisions; one after another. So coding is a design process not a manufacturing process. Taking this further, the actual manufacturing is done by the compiler and build system.

Luckily, the cost of compiling and packaging is close to zero so why not do it as often as possible. We can constantly build what we have designed, then analyze and test the results.  The build process is our manufacturing process, so manufacture after every commit; manufacture at night; manufacture in the morning; keep manufacturing. It is as close to free as we can get.

So, if you want a better model for a software factory then think of one not composed of people, but robots. A software robot that constantly checks for design (code) changes and then performs the manufacturing (build) process; a robot for testing; a robot for shipping. One implication: if people (designers) aren't in the factory then they probably should not be put in a warehouse. Buy some robots instead.

Ultimately, the software factory is about shipping. If you use this model for the software factory, you will ship often and make your customers happy.

So, great design can be manufactured in a software factory as long as your factory consists of robots not people. Coding is easy if you do great design and great design is great code.

Keep designing.

You Might Also Like