There has been much written about cooking and recipes and how they are analogous of the open source way—from The Magic Cauldron chapter in The Cathedral and the Bazaar, to websites dedicated to the idea, like forkthecookbook.com. There is also a particular meal that I think truly exemplifies the open source way: the hot pot.
The hot pot, for the uninitiated, is a style of cooking prevalent in east Asia, where a simmering pot of broth is used as a communal cooking medium for everyone at the table. The ingredients are various thinly sliced meats, tofu, vegetables, quail eggs, and other tasty treats. They are added to the pot to cook on an as-needed (or eaten), basis, as people add food from the pot to their own bowls to mix with a staggering variety of condiments.
This is the ultimate open source meal. In general, recipes are 'open source' in that almost always, the chef takes the source code (base recipe), modifies it, and makes a derivative work, sometimes contributing the changes back to the original source. With the hot pot, the process begins even before the cooking; the dinner hosts create the conditions or space in which the community will participate, including physical space (there are enough chopsticks for everyone) as well as the mental space (newcomers are welcomed and the 'how-to' of hot pot is explained, so they understand how it works).
When it is time to get cooking, the dinner hosts start with a base recipe (say, the stock or broth, and a small selection of fillings). The community (or other dinner guests) then make contributions—additional vegetables, more meat, new condiments, etc.—with consideration of what would benefit or be most appreciated by the majority of the community. All of this gets incorporated as part of the whole meal, essentially merged with the 'master' to be the new starting point. The community has created the project.
Then, when it is time to actually eat, each individual community member adds ingredients to pot, some to eat themselves and some to simply add to the pot for everyone. This part can be unusual the first time, in that what each person adds to the pot is not necessarily theirs; it is simply part of the pot. The contributor doesn't necessarily own the piece of food, and it's perfectly acceptable for someone else to pull it out and add it to their bowl. With an aromatic pot of ingredients ready to be eaten, each person then adapts the dinner to their particular needs: it's a remix. They pull out the fillings that they'd like to eat, mix their own concoction of condiments, and dig in. Replace and add more ingredients to the pot, and repeat.
Community discussions of proposed 'pull requests' also take place. Wait, you brought fish balls? Are we really going to add that to the pot? While there's a general understanding of how the meal works, there can certainly be active discussion about what goes in, though consensus is often much faster than in software (everyone, after all, is hungry).
The hot pot is a continuous cycle of a starting point, modifications, integration of changes, moving the starting point forward, and repeating. It's agile. It represents the best of what open source can offer: bringing people together and creating community. And, it offers something that meets a variety of potentially unique uses or needs for individuals while simultaneously improving the situation for many, while fueling innovation for the future.
2 Comments