This is a bit of a broad question, but I can still venture to give my perspective on what I think are two related and rather strong models for doing this with open source software projects.