Every morning a long line of people forms in front of a small kiosk on the corner of the Fifth Avenue. As you get closer, the weary sign that is hanging above the entrance reveals the real reason behind the formed line. In handwritten letters the sign states: “Free Pancakes.”
The kiosk is owned by Josh, a short middle-aged man who used to bake pancakes professionally for a well known chain restaurant. After being in the pancake business for over a decade, Josh has decided to leave his stable job in order to pursue his lifelong dream - baking pancakes on the street.
“I love baking pancakes,” said Josh, while oiling the pan. “It has been my dream ever since I was in high school. Sometimes I am even baking them in my dreams. Most people would consider that crazy, but I truly care about my craft. Baking a delicate pancake is far from being easy; you have to bake it just right: too little and you are eating raw dough, too much and the pancake will taste like a coal.”
The kiosk casts a friendly vibe in comparison to the generic pancake chain restaurant across the street, but the business side of running a free pancake takeaway is not for the faint of heart. When asked about how he manages the costs of running his kiosk, Josh reveals a simple strategy: “I don’t need much to survive. I live in the van in the nearby parking lot, so I save a lot of money on the rent. Since I can walk to my kiosk I save on the transportation costs as well. The store manager next door was kind enough to let me use their electricity for free. The pans and stoves are all second hand that my friends and acquaintances tried to throw away. There is no way I am letting an old school cast iron pan into the trash; such pan can last forever.”
What about the ingredients, they aren’t free, are they? “At first, I’ve tried to buy them with the donations, but somehow I couldn’t find the ends met,” answered Josh. “I’ve tried everything: from moving the donation jar from left to right side of the counter, using a purple colored paper for the jar’s note and increasing its font size to 15 pixels. At some point I even changed the font to Comic Sans, but people still didn’t donate enough to keep the kiosk running.
“Occasionally, I asked my customers if they could spare some money, so I could keep the free pancake gig going, but I got all sorts of excuses: “I am in a hurry, I don’t have any pocket change, the company I work for doesn’t allow me to donate to anyone that works in the food industry, you should be happy to have me as a customer as I can just leave and get my pancake elsewhere, and so on.”
One day, a customer brought a bag of flour and some eggs they happened to have at home which gave Josh an idea. “These days we try to use the leftovers that stores are no longer allowed to sell. A flour that is a few days past the expiration date is just as good as the new one that you can buy at the store. I don’t quite understand this world: if I am able to use the leftovers to make the pancakes, why can’t other professions do the same? Why can’t a plumber install a pipe that is past the expiration date too? If people followed this idea, we could quit working for the man as we wouldn’t need money at all.”
Unfortunately, it will take quite some time before our society reaches the mentioned state of mind. But, who are Josh’s customers he keeps talking about? “They are all sorts of people,” said Josh, “from kids, mailmen, blue collar workers up to business owners, investment bankers and even politicians. Everyone loves pancakes early in the morning and I love making them. There are regulars, of course, but ever since I ended up on the front page of a well known food critic website, my user base keeps growing. I just reached 10'000 likes on the social networks and I am very proud of that. So many people rely on my service, I can’t just let them down now.”
Despite the Josh’s tremendous efforts to keep the kiosk running, he is still not able to please everyone. A couple of rows ahead of us in the line, an elderly lady was eager to share her frustrations: “What kind of a wacky pancake joint doesn’t make them with blueberries? The only real pancakes are blueberry pancakes!”
“Sometimes I find it hard to keep up with their demands, but I try to do my best,” added Josh, “this world needs more free pancakes and I am gonna deliver them!”
A nice little story, isn’t it? It’s the kind of story that is often put in the local newspaper just after the depressing politics section in order to give readers a glimmer of hope for this world. It’s also surprisingly similar to the current state of open source software.
The term “open source software” is not exactly defined and it changes based on whom you ask. For the purposes of this article, I will refer to it as the software that is free (as in “it doesn’t cost money”) and for which you have the access to the source code. While the software being free of charge is not a prerequisite for wearing the open source badge, nowadays, that is often implied.
Writing a large piece of software, that solves a complicated problem, takes a lot of time. It can take years. During those years, the programmers who are developing the software naturally have to survive somehow. While the early societies relied on the exchange of goods, the modern world mostly runs on the exchange of money, since that proved to be more convenient.
If the programmers don’t sell their software (it’s free, right?), then how are they going to survive in the world where money is needed? There are a couple of options:
- Just be rich and you can spend your time however you want.
- Rely on donations from the kind souls and possibly provide paid support.
- Get a job and write open source software in your free time.
- Get a job in a company that is publishing parts of their software for free.
While all the options from the list are viable, the 3rd one is the most commonly picked option. Picked might be the wrong term here, because you don’t really have much of a choice. There are not a lot of companies that are working out in the open, and even if they are, that doesn’t mean you will enjoy working on the assigned project. Donations are rare as well, thus either someone has to give you enough money to survive while you are working on your project or you have to work on it in your free time. But, why would anyone spend their free time writing software and then give it away for free?”
Why would anyone do anything in the first place? Why are people writing books, drawing, dancing, learning foreign languages or doing one of the billion other activities? Because they want to impress someone? Because it’s fashionable? Or maybe it’s because of their internal need to be creative?
A lot of programmers enjoy writing code, but somehow most programming jobs are not that fulfilling. There is always a bunch of broken ol' code that nobody understands or cares about and digging through that swamp is as fun as having your teeth drilled.
The best thing about computers is that experimenting with them is relatively cheap. As long as you have one, your experiment only costs you your time and the price of the electricity, therefore you can program a bunch of ideas without having to be a millionaire 1. In fields that demand expensive equipment, like pharmacy, such garage experiments are far less likely to happen.
Judging by the amount of source code that you can find online, a lot of programmers like to make their own little experiments and also publish them online. Occasionally other programmers will find such open source projects useful and they will integrate them into their own code.
Sometimes these open source projects mature to the point where they end up in the codebase of a large company. After all, if the license permits them to just grab the code that was already written, why wouldn’t they do that? The open source project has a nice logo, catchy name and often a better documentation than most of their internal software. It’s almost like a real product, except that it’s free and it comes with a far better customer support 2.
This project “fame”, however, brings a lot of problems. The bigger the project, the more users will report their issues 3, until it comes to the point where the maintainer will basically feel obliged to work on things they don’t necessary need or care about (on top of their day job, of course). Eventually they will write the usual “I’ve met so many wonderful people, but I am leaving this mess due to evil corporations just taking my code for free” rant and leave the project for good.
It’s truly remarkable what some people are willing to go through for an occasional pat on their back, but I don’t really understand the complaints of those burnout posts. Okay, so you wrote a bunch of code and since you wanted other programmers to use that code, you have licensed it with one of the permissive licenses (MIT, BSD, Apache, whatever…).
Since the project ended up being useful, a lot of people started using it. During the integration process they have discovered problems and they started reporting them. What’s the problem here? It was your decision to publish the code and answer the bug reports, wasn’t it? If you don’t feel like doing this kind of volunteering, you can just avoid it. Nobody forced you into a position of being a maintainer and writing software for free.
I think there are two causes behind this maintainer burnout situation:
Programmers are overly attached to their work and believe that a chunk of code is their baby that has to be preserved no matter what.
Humans are secretly craving for fame and recognition. Being invited on yet another interview or conference on the basis of your work feels good to your primate brain.
So, what’s your solution loudmouth?
Perhaps stop giving away the pancakes?
Maybe it’s time to admit that this work for free model is not really sustainable for the individuals, unless they work on it strictly as a hobby. Sure, you will always be able to find someone who managed to get enough sponsors or have decided to live in a tent, but for every one of those, there are hundreds of others who didn’t and just burned out.
If your project solves a problem that a lot of companies care about, why don’t you charge money for it? If it succeeds you will be able to fund the development, while at the same time you will get rid of the angry freeloaders and “evil” companies that are profiting off your back.
And if the project doesn’t succeed? Well, what’s the difference 4?
Assuming your time does not have a price tag. For a very busy person, spending a couple of evenings just trying things out may be quite expensive (as in not worth their time). ↩︎
Questions are usually answered by the maintainers, who know how their code works. With commercial software that is often not the case and you may have to fight hard to get past the front lines of ticket closers. ↩︎
As part of the risk analysis for a project I used to work on, we had to go through all the 3rd party libraries and determine whether any of the reported bugs on the public issue trackers could cause us any troubles. Somehow users discovered hundreds of bugs in every single library that we used - e.g, a simple logging library had 300+ open bug reports. I am surprised that anything even works given how buggy our foundations are. ↩︎
You can still publish the source if you want to and work on your project whenever you feel like. ↩︎