Why do people make software for free?

When I first tell people about open source software, one of the most common questions I get is this: "I just don't understand why people would create software if they don't get paid for it! How does that work?" This question makes sense, because we all know that people need to make money to provide for their families. And every good capitalist knows that the profit incentive is what drives people to create and innovate. This is true for many industries, but it does not explain why open source software is created. Here is how I answer this question:

The birth of an open source project

Most open source software projects were created by a programmer who needed a piece of software to accomplish a certain task. Rather than purchasing a commercial software product (assuming that one existed), this programmer decided to create the software from scratch.