We had a Georgia Tech alum, Mike Terry (now at Waterloo), visit us a couple weeks ago. Mike's research is on usability practices in open source. I got a chance to chat with Mike, and we talked about the impacts of open source on computing education, such as high school students getting started with computing by working in open source development. Overall, though, I came away concerned what the growth of open source development means for the future of computing education.
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. Open source is overwhelmingly White or Asian and male. Some estimates suggest that less than 1% of open source developers are female.
Many kids and parents worry that all computer science jobs are being off-shored and that it's not worth studying computing. As more and more of the software we use daily is created via open source development (as some predict), I wonder if kids and parents will hear the message, "Most software developers work for free, or at least, have to work for free for years before they can become professional and get paid for their work." No, of course that's not true. Neither is it true that all IT jobs are being off-shored, but that's still what some people hear and believe.
One of the challenges we have in computing education is convincing people that computing is broad and is about more than programming. Open source values code above all, or as Linux's originator Linux Torvalds said, "Talk is cheap. Show me the code." We're trying to convince students that talk is also valuable in computing.
Finally, Mike's talk was actually about how rare usability practices are in open source development. Of course, that's a concern in itself, but it's particularly problematic for newcomers. 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. If you don't have usability testing, you don't have those paths into the process. Breaking into an open source development process is hard, and that keeps more students out than invites them in.
I wrote on this topic in my regular blog, and was surprised at the response. I learned that it is not acceptable to criticize religion, Santa Claus, or open source development--it's a "good" that should just be accepted as such. I disagree. Open source development does generate enormous good (I point out, while using an open source browser and an open source operating system), but it could do more good if it improved its practices. It's hard to change open source development, because of its distributed nature. Open source developers should worry about the messages they send future developers, especially if they hope to realize that potential and grow the development talent pool.