I'm digging into Lean Manufacturing and it's so interesting to learn manufacturing history and its trends. There are so many parallels between manufacturing and software development. Of course they are not direct, but a curious mind can draw them quite easily. Let's take Cellular Manufacturing as an example.
Cellular Manufacturing is a workspace organization technique. The main principle is to organize production of a single product in a small dedicated unit (cell) that consists of several people and several workstations. The benefits are surprisingly huge:
"The result is very fast throughput. Communication is easy since every operator is close to the others. This improves quality and coordination. Proximity and a common mission enhance teamwork."
It is a significant improvement over the functional space configuration, when you have large queues and long transition time.
Now, if we think about software development, it is becoming clear why distributed teams have problems and why functional departments will not survive in the near future.
Cellular manufacturing applied to software development directly leads to cross-functional teams that work on a single project. Cell is a single team that has its own inventory and cross-trained people. Expanding it further, it means that developers should be able to do testers' job, and vice versa.
From lean perspective, managers job is to setup cells configuration efficiently. It is not required to track individual work, but to track cell work instead. It brings process optimization to a higher level and powers system thinking.
It is really amazing how much we can extract from lean manufacturing and adopt this knowledge to software development...