Havoc Pennington on open projects: the student's annotated version
A few gems from Havoc Pennington's post about open projects. (It's stuffed with gems. Worth reading all of it to find more.) Highlighting the bits I think may be most useful to students of TOS professors.
First is why you need to think of your FOSS community as something closer to... say, a frat or co-op (probably more like a co-op) as opposed to, say, your department (which is more likely to look like a top-down centralized organization to you).
An open project and its community are the sum of individual people doing what they care about. It’s flat-out wrong to think that any healthy open project is a pool of developers who can be assigned priorities that “make sense” globally. There’s no product manager. The community priorities are simply the union of all community-member priorities.
Then: conflict and the ensuing "mess" is a sign of healthy normalcy. Of course you will want to resolve it, and grow in the process - but conflict avoidance itself is unhealthy. It's like something a friend once told me about dating: "If you haven't fought, you're not in a relationship." To work closely with people creates friction; it is in moving through that friction that we learn to be a team. See "forming, storming, norming, performing" for more.
As the community grows and new contributors appear, there will be growing pains figuring out how to work together. All projects that get big have to sort out these issues. There will be drama; it’s best taken as evidence that people are passionate.
And for the students who asked me "why I worked on open source and not for a company" (to which I replied "I work on open source for companies"):
My experience is that most “heavy lifting” and perhaps the bulk of the work overall in big open projects tends to come from commercial interests; partly people using the technology who send in patches, partly companies that do support or consulting around the technology, and partly companies that have some strategic need for the technology (for example Intel needs Linux to run on its hardware). There’s generally a fair bit of research activity, student activity, and hobbyist activity as well, but commercial activity is a big part of what gets done. However, the commercial activity tends to be from a variety of commercial entities, not from just one.
And this is why I've found FOSS participation to be an excellent career-growth strategy, especially for the first few jobs. When you work on a project, you're working alongside folks from multiple corporations, and they can evaluate you as a potential colleague (and you them). When you graduate and have your FOSS porfolio, multiple people from multiple companies can point to your portfolio and say to the hiring manager, "hey boss, I helped make that too." Validation by existing valuable employee. It's easier to hire a coworker you already have.