Selling Your Soul in the Bazaar
And the method of trial and error is your customer
When we are at home living in comfort, we don’t suspect how much trial and error it took for humans to achieve such coziness.
It demanded a good deal of time until people tamed fire. I don’t want to imagine how many homes and forests have been burnt down by the uncontrollable fury of it. The same can be said about electricity. We were amazed by the newest invention of the 19th century and used it to bring light and warmth to our homes. But it also destroyed enough number of houses until we came up with the correct implementation of short circuit fuses.
A much more optimistic example is cooking. When we eat, we don’t question how it came to be that people found a recipe for a good meal. We have heated food under different heating degrees, added different products, spices, changed flavors. Only after a number of spoiled products we understood the “secrets” of a great recipe. And what a secret that was: meals tasted like garbage before they tasted great.
Now let’s make a big jump to computer science. How many errors do you need for well-functioning software, sir? — Yes. It took RIP to implement EIGRP. Probably, computer science and engineering is the most frequent observer of the method of trial and error.
Each trial can be valued as an attempt for gaining information, as each error, if it is not a fatal one, is information. If there are 100 possibilities and only 1 correct way of accomplishing a task, failing 99 times will result in you finding the solution. Yes, it is stupid, but it is also a fact.
There are some philosophies, and if software development needs only one philosophy, then the most effective one would be Release Early, Release Often. It simply takes the benefits from the method of trial and error and applies it with maximum speed. Yes, there is a chance for burning out, making a fatal mistake with no way back, but at the same time, error exposure also means information exposure. Looking like an idiot has its perks of making you wiser.
The famous essay by Eric S. Raymond, published in 1997, called The Bazaar and the Cathedral, made the concept of Release Early, Release Often (RERO) a part of pop-culture. Then there came open-source and free software people, with the most famous one being Linux’s Linus Torvalds, and the concept of Bazaar exploded.
You can build a cathedral, slowly, solidly, trying to release a version that will be closer to the final version. Or, you can choose another way, based on the bazaar philosophy: “Release early and often, listen to your customers, delegate everything you can, be open to the point of promiscuity.”
For sure, the cathedral has its own benefits and proponents. But making your source code available for public testing and constant feedback speeds up the development process and makes you more productive. It also makes you consider the possible maintenance and scalability of your program. And if one were to believe in the method of trial and error and freedom of exposing oneself to the public judgment and hence — embarrassment, then that person would easily reap the benefit of selling their soul in the bazaar.