Why Do Developers and Firms Contribute to the Production of Open Source Software?