Join the 85,000 open source advocates who receive our giveaway alerts and article roundups.
Open source: dangerous to computing education? | Opensource.com
Open source: dangerous to computing education?
Get the newsletter
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.