Open source: dangerous to computing education?

No readers like this yet.
A key and a building

Opensource.com

Mark Guzdial, respected professor and Vice Chair of the ACM Education Board, has expressed some concerns about the impact that open source is having on computing education. Are these concerns legitimate?

He starts from an awfully dramatic position:

At a time when we are trying to broaden participation in computing, open source development is even more closed and less diverse than commercial software development.

It's certainly fair to note that the barrier for entry to open source projects is often higher than it needs to be, but to call open source development "even more closed" than commercial software development is clearly, obviously, logically, indefensibly, wrong.

If you want to tinker with the source code for Sid Meier's Civilization, you must first be hired by Sid Meier. If you want to tinker with the source code for Freeciv, you just go get it.

Of course, that's not what Mark means. Mark is talking about the "culture" of open source development -- that getting the code is one thing, but making an impact on the project is another matter entirely.

In this, Mark has a point. Even though the code is free for anyone to hack on, it can be difficult and intimidating to become an actual contributor to an open source project. Open source projects can benefit greatly from knocking down these barriers, and most have a lot of work to do in this regard.  It's a problem I face, and fight, every day.

The argument that Mark follows up with, however -- that commercial development experience provides students with an inherently better ramp-up experience -- is deeply flawed.

When students develop toward being expert professionals, they frequently engage in a process that educators call legitimate peripheral participation (LPP). It's LPP when you start out in a company picking up trash (doing something legitimate on the periphery), and in so doing, hear what's going on and figure out what happens in this company. Students can get started in software development at a company by doing tasks that aren't directly about writing software, but are about the whole enterprise. These legitimate peripheral tasks serve as a stepping stone into the process, like writing documentation or running subjects in usability testing.

This is the heart of Mark's argument, and what's so fascinating to me is how he can be so right and so wrong at the same time, and how he misunderstands what is so obviously the greatest strength of the open source development model.

First, let's talk about breadth of opportunity. Mark seems to assume that every student developer has the opportunity to engage in commercial development. This is demonstrably untrue. It may be true that an elite school like Georgia Tech provides these kinds of opportunities to most of their conputing students -- but what about everywhere else? For that matter, what about the kids at Georgia Tech who, for whatever reason, don't make the cut? Unless you can guarantee 100% co-op or internship placement for every computing student on Earth (and let's be honest, we'll never get even close to that number), there will always be aspirant student developers who have no chance at all to see a commercial codebase, or to engage in Legitimate Peripheral Participation.

He's exactly right about the importance of LPP, though.

In fact: the open source world is completely built upon, and could not exist without, Legitimate Peripheral Participation.

Let's run a quick search and replace on Mark's previous statement:

When students develop toward being expert professionals, they frequently engage in a process that educators call legitimate peripheral participation (LPP). It's LPP when you start out in a community picking up trash (doing something legitimate on the periphery), and in so doing, hear what's going on and figure out what happens in this community. Students can get started in software development in a community by doing tasks that aren't directly about writing software, but are about the whole project. These legitimate peripheral tasks serve as a stepping stone into the process, like writing documentation or running subjects in usability testing or helping newbies on forums, or asking questions on a mailing list, or filing or triaging bugs, or maintaining the project wiki, or simply putting the software to work to solve real-world problems.

Hmm, that message looks suspiciously familiar to me.

If we take the core of Mark's message -- that LPP is crucial to creating expert developers -- then it quite logically follows that we benefit by giving every student as much opportunity for LPP as we possibly can, does it not?

All software is buggy. All software needs better documentation. All software could benefit from testing. All software provides copious opportunity for LPP.

But only open source software provides the access necessary to make LPP possible for every student.

It's exactly what we see in projects like the Humanitarian FOSS Project (which was actually featured in CACM a few months ago), or in the UCOSP project. It's also what Seneca College does with every student who comes through their CDOT program.  Here and there, professors are starting to figure this process out.

Unfortunately, there are not, as yet, a lot of professors who are confident enough to dive into the world of open source development -- which is the reason that Red Hat started the Professor's Open Source Summer Experience, so that professors who want to take that plunge have some support.

Sure, there are challenges. Getting students deeply involved in open source isn't easy -- but it's not nearly as difficult as most professors think it is, either, and certainly no more difficult than getting students deeply involved in commercial software development.

Mark, do you want your students to do usability studies that actually matter, and that might improve the lives of millions of users worldwide?  Despite your assertions to the contrary, there are open source projects begging for your help right now. All you have to do is reach out to them.

Oh, also, about this tweet:

Open source development needs to grow-up and become education-friendly.

It's a two-way street, Mark. Let's work together instead of talking past each other.  If you're not too busy at SIGCSE, maybe you could come by the HFOSS Symposium and share your concerns in person, with people who care deeply about resolving them.

Tags
User profile image.
Greg DeKoenigsberg is the Vice President of Community for Ansible, where he leads the company's relationship with the broader open source community. Greg brings to Ansible over a decade of open source product and community leadership, with the majority of this time spent building and leading communities for open source leader Red Hat.

40 Comments

Greg, thank you for putting together such a thoughtful and interesting response to my blog post! You raise excellent points, and in particular, point out that open source offers students opportunities for involvement in real and impactful code development. I'll stick by my claim, though: "Open source development is even more closed and less diverse than commercial software development." You're absolutely right that students cannot work on any commercial software project that they choose, but they can choose to get involved in any open source project. What I was claiming is that the actual, empirically-measured demographics of commercial developers is much more diverse than the empirically-measured demographics of open source development. You're right that the potential is much greater in open source. The reality is that it's not happening.

In general, new computing majors get jobs. The problem that open source solves is not a lack of opportunity for students. Today's computing students get opportunities to engage in software development with real users. The Bureau of Labor Statistics data suggest that there are far more people in IT than have IT degrees -- there are more jobs than trained people to fill those jobs. Open source does offer a large, even world-wide stage that students do not normally get a chance to develop for, but it's not the only available stage. The available statistics suggest that it's easier for minority students to get in the door into commercial software development (not <i>any</i> project, but <i>a</i> project) than to get into open source.

HI Mark--

Sounds like you are looking at US-only data? In my view, one clear benefit of the open source movement is it makes these sort of watching & learning opportunities available to people who live in countries that don't even have commercial software development, wouldn't ever get the sorts of opportunities you describe.

I don't have quantitative data to support this, but my experience at Red Hat was that we saw people participating (and we sometimes later hired them) from all over the world who might not otherwise have access to a commercial software project if not for open source.

Would love yours (or others') perspectives on whether open source provides greater opportunity for those without easy access to commercial technology companies and the learning opportunities they provide.

I believe and trust your statistics, that open source developement is predominantly White or Asian Male, but I have difficultly seeing how you draw your conclusions above. It appears that your implication is that the fact that our demographic profile is somehow the result of a bias favoring the most involved individuals, creating a barrier to entry for all others. What makes you think that the lopsided participation in FOSS is actively present, rather than just a natural development? How would you describe this barrier?

"The available statistics suggest that it's easier for minority students to get in the door into commercial software development (not any project, but a project) than to get into open source."

I work with open source every day. I have no clue as to the minority status of 95% of the people I work with since we don't show up at an office. I could be working with little green aliens from Mars for all that I know.

Don't start off trying to make changes to the memory manager or scheduler in the Linux kernel. They tell me to get lost and I've been writing code for twenty years.

Pick a smaller project to begin with. My current interest area is Smart Energy so I'm working on Contiki with 802.15.4, We can use all the help we can get - green aliens included.

<cite>I work with open source every day. I have no clue as to the minority status of 95% of the people I work with since we don't show up at an office. I could be working with little green aliens from Mars for all that I know.</cite>

I'm sad that you seem proud of this &mdash; wearing blinders about your community's lack of diversity and refusing to put any effort into reasoning around how to achieve more of it is a large part of <b>why</b> open source communities are at <1% participation from women.

(That said, I'm on Greg's side of the fence here. Someone could make the argument that people shouldn't join open source projects in protest at the lack of diversity present, but it wouldn't look much like Mark Guzdial's argument.)

That's not how I read Jon's comment. After all you can't determine much about someones ethnic profile from an email address, it's just another contributor. I've always thought that was a good thing that distributed world wide development is inherently blind to persons background, they are judged purely on their technical merits. I thought that was how we avoid discimination, unconcious or otherwise?

Alex, yes ... but some discrimination is double plus good.

<cite>I've always thought that was a good thing that distributed world wide development is inherently blind to persons background, they are judged purely on their technical merits. I thought that was how we avoid discimination, unconcious or otherwise?</cite>

No, I really don't think so &mdash; I think this is a fallacy of equal treatment vs. equal consideration. Equality requires to us to treat <i>what a minority group wants</i> with equal consideration to what our group wants, not merely that we act in ways that are "equal treatment" on the face of it (but may well not be equally considerate). You can't adequately find out what a minority group wants if you're busy pretending that you're all in one big neutral group.

One example (of many) might be that women tend to express a strong preference not to have their work interactions and conversations sexualized, for lots of reasons. Is someone who claims to be blind to their colleagues' preferences likely to make that accomodation, or not? Or, to pick another example, some men enjoy exhibiting aggressive behavior on mailing lists, but most women don't. If a man says that he flames men and women equally often, is he being discriminatory or not?

(I guess we're drifting significantly off-topic here; sorry about that.)

...I think you're right in the heart of the topic, because you're right in the heart of one of Mark's chief concerns about open source: that because it isn't sufficiently inclusive, it's difficult for him to call it "open" with a straight face.

"The fallacy of equal treatment versus equal consideration" may actually be one of the most succinct criticisms of the open source culture I've ever heard.

What's to be done about it is another question -- but I suspect that academia might be well-placed to help. I know that HFOSS cares about this issue, which is one of the reasons I'm engaged with them.

<cite>"The fallacy of equal treatment versus equal consideration" may actually be one of the most succinct criticisms of the open source culture I've ever heard.</cite>

For what it's worth, it's more pithy than succinct to me. How does one measure "consideration" so that two different "considerations" can be compared for equality?

Sure people that enjoy flaming or using inappropriate language for technical discussion should be pulled up for it. Regardless of whether the recipient of the message is offended or not poor manners is still poor manners.

Some projects are better than others but certainly a lot of the distributions have policies in place to ensure civility in the discourse. I don't think it's an accusation that can be levelled at the whole Open Source eco-sphere. Some projects certainly could try harder though.

"If a man says that he flames men and women equally often, is he being discriminatory or not?"

By definition, no, he is only a jackass (if he flames a lot). Your view appears to be that uniform treatment is wrong <b>because</> different people are <b>owed</b> different treatment on account of physiological or other differences. That way lies much philosophical trouble.

<cite>By definition, no, he is only a jackass (if he flames a lot). Your view appears to be that uniform treatment is wrong because different people are owed different treatment on account of physiological or other differences. That way lies much philosophical trouble.</cite>

Do you object to the presence of separate male and female restrooms on philosophical grounds, then? Would we be being "less discriminatory" without them, and would that be preferable?

There are widely-accepted examples (such as the one above) of equal consideration being the only ethically correct way to act; you'll need to find a stronger argument against it than this.

<cite>"Do you object to the presence of separate male and female restrooms on philosophical grounds, then? Would we be being "less discriminatory" without them, and would that be preferable?"</cite>

This seems rather inconsequential an accommodation, so I can't find myself caring. OTOH some do: witness the kerfuffles over unisex bathrooms, or the horrible plight of transsexuals who seem welcome in neither gendered place.

<cite>"this building doesn't have a wheelchair-accessible entrance, and we're not being discriminatory because we're treating everyone equally by giving them all the same entrance to use</cite>

I don't have a problem with this scenario in the context of private property. The opposite -- state-mandated excessive accommodation (against self-interest) is more troubling.

Okay; I guess we could move on to another example. How do you feel about maternity leave from employment? Is it discriminatory and therefore wrong? If an employer announced "As of today, neither men nor women receive any new-parent leave, and this policy is non-discriminatory because it is the same for both genders", would that be defensible?

At least in the societies I've lived in, the employer's act would be considered discriminatory and moreover illegal, precisely because it fails to give equal weight to *the particular needs of* women. If we reject the conclusions of the equal treatment principle in this case, we should find a better ethical principle to replace it with.

I think (hope?) this will be my last post to this thread, so to sum up: there is an intuitive appeal to equal treatment as being a correct measure of equality, but on analysis it provides answers that are widely considered to be unequal and unethical. This has implications for open source communities, because behavior that makes those communities unfriendly to minorities is often defended using equal treatment justifications.

"If an employer announced "As of today, neither men nor women receive any new-parent leave, and this policy is non-discriminatory because it is the same for both genders", would that be defensible?"

Why sure. But as you know, enlightened (?) governments choose to intervene in the private affairs of employers / employees, and make this practice rather rare. You will realize that such policies are come out of just the sort of 'need-based' philosophy you support, and therefore using it in an explanatory role is circular.

<cite>Your view appears to be that uniform treatment is wrong because different people are owed different treatment on account of physiological or other differences. That way lies much philosophical trouble.</cite>

To return to this, you seem to be implying that equal consideration could result in ableism or a similar negative consequence &mdash; I think this is confused, and precisely backwards.

It's possible to make an ableist decision ("this building doesn't have a wheelchair-accessible entrance, and we're not being discriminatory because we're treating everyone equally by giving them all the same entrance to use") by using the equal treatment principle, but not by using the equal consideration principle. ("People in wheelchairs have an interest in entering our building, and we should give as much weight to their group's preference as our own when deciding what kind of entrances to build".)

If someone did want to make an ableist argument, I think the principle of equal consideration would be the *least* attractive starting point for them to do that from.

One problem with "<em>equal consideration for what a minority group wants</em>" is that all we really know is what minority group <em>activists</em> want -- what ordinary members of the group want is not necessarily the same. The other problem is that most of us are dealing with individuals, not with groups. And in my experience, most individuals who are part of a minority group <strong>do</strong> want to be treated without reference to their group membership, simply based on their own merit and qualifications.

Could it be that there are fewer women involved in software development (open or closed source) because fewer women are interested in the subject?

And many of the other reasons minorities are not equally represented in a community like FOSS are not related to barriers erected by that community, but are related to larger societal issues which the community is not really in a position to address.

<cite>Could it be that there are fewer women involved in software development (open or closed source) because fewer women are interested in the subject?</cite>

I don't think so, but it doesn't matter. The 20% of industry programmers who are women are clearly interested, so your explanation does nothing to explain the massive disparity from 20% industry to 1% FLOSS, which is what we're supposed to be talking about. Once we've got FLOSS somewhere near 20%, let's start wondering if the reason we can't get further is that women aren't interested in programming.

<cite>wearing blinders about your community's lack of diversity and refusing to put any effort into reasoning around how to achieve more of it is a large part of why open source communities are at <1% participation from women</cite>

Nor is wearing blinders about interest levels. I work a Univ. Engineering dept. There is less than a 5% make up of women in most of the classes and not all of them are CS Majors, some are just there to get a credit for somewhere else. And among those that I personally know the one's that have interest in opensource do just fine as contributors. But like the guys, not all of them _want_ to do opensource. You can make it as friendly as you want, but if there is no interest you are never going to get the participation.

Many Minorities also have less access to the resources of the majority. That is Helios's project is so important. If you don' have the access, you can't participate regardless of anything else.

Unless you have have the facts behind the stats they are pretty useless.

Mark, as an educator in the field I think you should actually take some of the blame for these alleged(1) shortcomings in the diversity of the Open Source community. Open Source developers and communities are not born fully formed, they are made up of many people who have graduated from programs like those offered at Georgia Tech. How many of your minority and female students are actively encouraged (or even *required*) to participate in Open Source before graduating? Do you offer courses on learning how to participate or do you leave it up to the students to figure it out on their own? In my experience, higher education in computing provides a solid foundation of technical ability, but it rarely addresses the social skills needed to participate in groups driven by non monetary incentives.

(1) - Could you cite the studies you are basing this claim on, please?

I cite a couple of sources in my original Blog@CACM post: http://cacm.acm.org/blogs/blog-cacm/72144-the-impact-of-open-source-on-computing-education/fulltext You can read more by seeing the papers of resources like Mike Terry and Jim Herbsleb.

Mark Guzdial writes:

What I was claiming is that the actual, empirically-measured demographics of commercial developers is much more diverse than the empirically-measured demographics of open source development.

In wikipedia terms, what I see is a big [CITATION NEEDED] here. If it's so empirically measured, then at least you can give us some studies to prove this. Some evidence? Some data to work on?

Yes, there are areas where free open source software has been more difficult for some demographics to enter. Women is the classic example - of the 20% of women who work with computers, only 3% (according to a 2006 survey) work in open source.

However, to say that therefore the whole FOSS process is less open to learning programmers and computer professionals than closed-source software is a fallacy of generalisation. It ignores the vast swathes of software I cannot read, let alone contribute to, in closed source development. It ignores the licensing fees that prevent and restrict budding computing professionals from closed source operating systems and proprietary programs. It is common for open source programmers to be hired by companies based on the work they do on open code; there is no similar process at all in the closed source software world - each new proprietary company must expect its new hires to be completely unfamiliar with its code base. And it completely dismisses the fundamental difference in attitude - closed source software company rarely if ever ask the community what features they want, and the kinds of contributions that are commonplace in the open source world - translations, artwork, usability testing, documentation, etc.

It's rather like the owner of a luxury hotel criticising the youth hostel down the street for not taking in _everybody_.

Ultimately, this is why closed source will fail and open source will succeed - because open source permits contribution from a far larger group of people than closed source software.

Have fun,

Paul

Oh please. Lets dispel this right now. The reason that closed program development is more diverse on ethnicity is because there is a legal requirement do so, at least in the US. Mark are you familiar with corporate HR depts? I suggest you look into it. Its the primary factor.

FOSS on the other hand is a loose coalition of volunteers. Nobody asks your skin color if you have the experience to do kernel development on ARM processors. No HR dept to discuss a 'hire' with. No filling out a ethnicity questionnaire.

So if you compare how the two entities operate, the difference is one of how they are organized not a matter of diversity.

He's comparing apples and oranges.

Actually you're wrong.

He's comparing Apple(s) and Orange Linux

http://orangelin.sourceforge.net/

:))

Greg, thanks for drawing the attention of the FLOSS world to this debate and Mark's position, which I find quite disturbing. I agree with your points, and I ended up <a href="http://ebb.org/bkuhn/blog/2010/02/17/education-floss.html">writing a blog post of my own</a> about some of the other points in Mark's arguments that you didn't address. In particular, this diversity problem is CS wide, and not specific to FLOSS.

<cite>In particular, this diversity problem is CS wide, and not specific to FLOSS.</cite>

It *is* specific to FLOSS, though. Even the examples of ~20% participation by women in industry and academia would be a massive, celebratory improvement over the <1% participation by women that we have now.

There are many things to disagree with about Guzdial's post, but the existence of a lack of diversity in free software communities isn't one of them.

I am a serial startup guy as well as someone who has been involved with Open Source since the mid 1980's, before the word existed, and all I have to say is: Nonsense.

Most Open Source projects are operated by what are effectively small startups. Every small startup I've ever worked for has had a serious estrogen deficit -- women go for the security of big businesses with their good pay, job stability and excellent health benefits, not for risky startups with poor benefits and mediocre salaries (but the chance of a big payoff if you're one of the one in a thousand startups that actually make it). White male or Asian male appear to be the startup experience, and that's no different for Open Source than for any other startup.

In other words, it is comparing apples to oranges to compare Open Source with the large businesses that we have diversity information about. I've had female engineers under me before -- in fact, the team lead for the most important team of the last project I architected (a commercial project for a startup, not Open Source, BTW) was female -- but they're very rare in the startup environment (indeed, she was the only female engineer in our engineering department) and that's hardly different from the demographics of Open Source.

In conclusion: When the original author of this "study" properly compares apples to apples (i.e., compares small startup teams to the existing small Open Source teams), then I'll consider it as having value. Until then... not so much.

And BTW, what is this nonsense about "everybody who graduates with a degree in Computer Science gets a job writing computer software"? This is utter ridiculousness. The ACM and IEEE Computer Society actually do studies on this sort of thing, and find that less than 70% of people who graduate with degrees in Computer Science actually get jobs doing any sort of software development or maintenance, and after five years, under 40% of the people who graduated with degrees in Computer Science are actually doing computer software development. Clearly it is the case that at elite engineering universities, 100% of the graduates will likely obtain jobs in private industry. But elite engineering universities do not represent the majority of computer science graduates, most of whom have no opportunities for internships during the course of their education and limited opportunities for moving into software development after graduation. Open Source, for those of us who graduated from lower-tier universities, is literally a career saver. If not for open source, I'd be driving a cab somewhere, not serving as a software architect and development manager with a six figure salary.

"find that less than 70% of people who graduate with degrees in Computer Science actually get jobs doing any sort of software development or maintenance, and after five years, under 40% of the people who graduated with degrees in Computer Science are actually doing computer software development."

I would read that completely differently than you do. I would suggest that the majority of people who went through CS find out they don't really want to be programmers, and move on. It takes a particular type of person who wants to get absorbed in these types of problems to the level required - and I think this is the key to the demographic `shortcomings' (maths and physics seemed to have a similar demographic when I was at uni). How much of this claimed demographic diversity are still cutting code 5 years after graduation? After-all, this is what contributing to free software mostly entails - simply cutting code.

I would also suggest that free software developers actually come from the group who do really want to be programmers, so are still paid to write software (I can't see how it can 'save' a bad programmer from not having a job - if you're good enough to work on a decent free software project, you're more than good enough to get paid to write software, and vice versa). And these are mostly white and asian males from opportunity and *interest*, not because of discrimination or bullying.

If anything, educators may be part of the cause for not making programming an interesting passion to a wider demographic (much of the 'diversity' of applications in CS courses are because that's where a lot of jobs are, not because of the passion of the applicants). But computer scientists aren't there to teach programming, are they?

I find this whole notion that somehow free software isn't suitable for education simply short sighted and almost willfully ignorant. What can be more suitable for education than a community only and specifically interested in sharing ideas freely?

Isn't that the essence of education?

Education isn't just about training. Education isn't just about `improving shareholder value' - which is the only goal of most proprietary software development.

Ok, the guy you were taking to task is obviously just a politically correct troll who shouldn't be fed. But there are really issues holding back participation in Open Source projects. Documentation being the biggest.

Compare the ease in introducing a student to the various environments. JAVA or C#/.net? Zillions of good books, multiple mature development environments. Windows C/C++ development? Write the check for MSDN and you are golden, any decent Uni these days has already bought a site license for everything Microsoft.

Now try to get someone started on the Linux desktop for example. If you want console/curses you have lots of excellent choices but nobody wants to start there anymore. Name ONE book suitable as a text for writing graphical apps. Start with GNOME. Amazon shows a few books. Almost all have 1999 or 2000 publication dates and would thus be useless for a newb trying to develop for GNOME 2.x. One newer book with a single chapter devoted to GNOME and an "Official Guide" that is long out of print.

Ok, Most of the distros these days do most of their work in Python + GNOME bindings so that must be a good place to start. Any docs on that? Lots of books on Python, some even discuss GUI programming... with Tk. There is an online guide to Python with GTK+ but even I know GTK+ isn't the whole GNOME acronym zoo so close but no cigar.

And not just picking on the GNOMEs, lots of material on Qt but not a lot to get a new programmer up and going writing KDE apps either.

A book that documents a recent version that is suitable as an introductory textbook is probably the #1 need if we want to see students learning to develop on Free Software as a first platform instead of waiting for them to learn .NET or Java first and hope they come over later.

On our project, we solved this problem by writing the code in x11. It has some really old books you can get cheap, but the functions still work. It does not hurt that we are developing a 2d mmorpg rather than some fancy window thing.

QT has excellent reference documentation, and most successful Open Source projects have extensive online reference documentation. But it appears that your main complaint is that there isn't sufficient tutorial documentation. But there is. It's called the source code. There are literally thousands of small QT programs that can teach you how to write QT programs, not to mention the examples that come with QT itself. Or as Open Source types are fond of saying, "Read the Source, Luke" :).

This is not, of course, how people are taught to learn things in school. In school, people are taught that you must have a book that leads you by the hand in order to learn anything, and if you don't have a book, you are helpless. But in reality as vs. school, tutorial material is not often encountered. When my then-employer put me to work writing Java code (I'd been hired for my Linux/C expertise, but a need developed), I'd never seen Java before. I mostly learned Java by reading the code for similar modules that had already been written by experienced Java engineers on that team, and using that as my guide. Indeed, I started my modules literally by copying someone else's class that followed the same design pattern to my new name, then going in and gutting it and putting my new guts into it to make it do what I needed to do. I made extensive use of Sun's online Java reference documentation, but despite the fact that there are a million Java tutorial texts on the market, I never read past Chapter Three in the one I bought -- there simply is no time in a commercial software environment for that kind of silliness, you're expected to get up to speed now, not months from now.

In short, once again there is no difference here between learning an Open Source technology and learning a proprietary technology (which Java was at the time). People who need the sort of extensive handholding that you describe in order to learn new things will not thrive or even survive in either environment -- but at least in an Open Source project you don't get fired if it takes you a couple of months of reading the source code in order to familiarize yourself with how things are done. In the commercial environment, you're typically on probation as a new hire, and if you're not contributing within weeks you're out of there -- no fuss, no muss, no glory, no job. If you come into that environment with the notion that you're going to have time to spend a month of working days reading a tutorial and following its directions to learn Java programming, you are sadly deluded about the nature of the commercial software environment, and will get schooled the hard way -- via the school of hard knocks.

... looks like this:

http://www.flickr.com/photos/wedesoft/4369292635/

It's all about money, honey.

If the federal government would start a grant program that helped subsidize open source software and pay community members for their work, open source would thrive. As it is, people are not interested in doing work for free - that's called a "hobby". They just aren't that altruistic.

I guess no one thought to bring up the multi-million dollar open-source industry now found in mobile phones. With the advent of various app stores all with apps built by community developers, I find it hard to accept these statements. Open source is not hard to get into. You download and you code. The acceptance comes when you actually code something that is useful. That's the biggest difference between commercial development and open source. Commercial Developers are looking for the best programmers that they can find (keyword). Open Source programmers are only as good as they work that they produce (not how well they wow at an interview), not to mention they have to compete against the whole world, not just the local CS graduates.

The demographics in Open Source reflect upon nothing. More and more women have been entering the CS world over the past few decades, but it's still not enough to counteract the high amount of White and Asian males. Anyone with history knowledge would know why those two groups are dominant in a lot of fields.

I've been a software developer for over 30 years. Part of that time I spent training and teaching programmers and software engineers. I agree that there are many barriers to participation in the so-called "open source" community. I disagree with the articles premise that open source is a barrier to education. I confess that during my 30+ years as a software developer, more real world projects started with a box of parts and a handshake than anything I've ever seen students experience at any level.

I have all of the skills to participate in any linux community project that I'm interested in. I decided to offer some technical writing effort. I'm not talking about some super-critial extra complex application or kernel component. I wisely thought to start with something on the edges and well off the critical path. Boing! I run into barriers.

I've downloaded "packages" of source code and documentation. I've visited "project sites" to review specifications and blueprints.
After hours of reading and searching, some things just don't make sense, so I send questions on the associated blogs and forums. Yes, I got answers from "developers". Many of those answers sounded like this: "... I'm too busy working the code to take time explaining or writing ..."

So here is a perfectly viable open source contributor who needs details from a subject matter expert but cannot break through.

~~~ 0;-Dan
Austin, TX

While most of the relevant issues have been covered and firmly debunk Guzdial's arguments, I think an important point to make out is that one of the main motivators in FOSS is "scratching an itch". A user or developer needs a particular functionality or a piece of documentation. So they create a project or join an existing one. There is *absolutely nothing* stopping higher education institutes "scratching a different itch" by creating, or adopting projects and making sure that there is a "fair" representation of minorities. Creating and maintaining the infrastructure for a FOSS project is very cheap (can be done with only time if needed), and a grouping of several universities could manage a large number of inclusive projects for less than they probably spend on coffee in the CS departments. Sure it's easy to pass the buck and complain and harder to actually do something about it. I'm certain there are many, many thousands of projects out there that would be over the moon to receive contributions from minorities, and if you are willing to initially avoid the large commercially-backed projects then I'm also certain that many project maintainers would put the time in to make the environment suitable.
Please, the FOSS community has enough FUD to deal with - don't exacerbate the problem when there are clear and easy solutions to the issues!
Anton

Firstly, I want to point out that after reading Mr. Guzdial's comments, he's taken the word "open" and done a play on words. Open source is simply the ability to see code - that's it. Open source does not mean fair, equal, or instant membership into any group you desire. Now, open source projects have been known for developers with short fuses and snide comments - after all, they are volunteering their time - so they don't answer to anybody. There never was a guarantee that you could quickly penetrate into the inner sanctum of these open source projects - you have to earn your way up - it's called a meritocracy.

As for Mr Guzdial's comments that open source is 95% white and asian males - my response is how is that different from commercial software companies? Is this really a system of discrimination, or is this more a sociological thing? Writing code is a form of mathematical abstraction - how many women do you know love mathematical abstraction? I'm not trying to make light of problems with discrimination - but I think Prof Guzdial's observation is in reality more damning of the way we raise and educate kids to view many of the hard sciences than the open source projects themselves. Many women (and I'm talking about those raised in western societies) view computer science, mathematics, physics, and other "hard-core" sciences as cold and austere subjects as opposed to them being truly human endeavors.

Fortunately, open source - the legal definition of it, not Prof. Guzdial's playing with the word - offers a solution. Prof Guzdial can work with like minded computer science professors, and they as a group can fork an open source project that in their minds is notorious for not being open in his sense of the word. This project could then take on students that study under these professors, and these professors can create slots specifically for women or other groups they deem as underrepresented. From that, the professors can see how well they can draw women and other groups into their open source project - get an idea how many would actually volunteer and from the real live world experience they get in running this open source project. They could come up with a code of conduct that other open source projects could use.

This way, Prof Guzdial's assertions can be tested. In the mean time, those students who want to cut their teeth on writing code should at this point ignore Prof Guzdial and just join a project. If the project is unappreciative of the efforts, move to another one.

I can't disagree more with his statements. I write code not because of some college project or due to anything I learned in college. In fact, I could say I write code in spite of my experiences in college. College taught me that working is better than doing it right, getting it done fast is better than making it solid and, as an engineer, you don't need to know what you're writing just follow the directions. On the flip side I learned the opposite in the open world. Add on top of that I also learned HOW to program in the open world while college taught me how to write code in one language (Java v1.3) where they more or less said an engineer won't write anything but Java (seriously, it was the early 2000's and Java was cool).

The projects for 'ramping up' to become a professional in college were almost funny. I saw people writing Java classes that do more or less nothing. On the flip side, those who were playing in open space found that just because they write 50 lines of so-so code doesn't make them a hot shot and that they are judged on the quality and consistency of their participation which is something most code shops employ (Billy isn't contributing to the project? Billy's contributions are sub-par? Why are we paying him?). A good wake up call before being thrown into real product coding!

I'm not saying college is a bad thing, but it doesn't get you ready for the real world of engineering on it's own ... but is an amazing way of showing you have the absolute minimum skill set needed to write code.

In short: As an engineer college teaches you to not think, just do. The open world teaches engineers to think, do and work with others. Which is more realistic?

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.