On Teaching Open Source Development
Community leader outlines problems with teaching open source coding
One of the constants in my interactions with the Linux and open source communities is that they--all of them--are out there, in the big wide world, while I remain ensconced in my fortress of solitude here in Northern Indiana.
It's a comforting illusion--but one that's being shattered this week as the best and brightest of the open source community are here, attending the 6th International Conference on Open Source Systems at the University of Notre Dame. Luminaries like Greg DeKoenigsberg, Larry Augustin, Joe Brockmeier, and Andy Updegrove are making appearances at this gathering of academics who are studying the processes and procedures of open source software.
The world has come to my door, which is just plain weird--like the 1968 episode of Batman when Caped Crusaders went to England. Everything was different, yet the same.
My reality-bending issues aside, this is definitely an interesting conference, in that it's a pure academic conference, and the politics and unwritten rules are different than the usual open source hootenannies. Statements here are measured and carefully phrased. Which just about rules out any other open source event attended by me. The academicians here are genuinely interested in open source, but as a focus of research and learning than as something in which to directly participate--though they'll do that, too.
It was this interface of the academic and open source communities that was the focal point of the Sunday evening keynote by DeKoenigsberg, CTO of The Institute for the Study of Knowledge Management in Education, a non-profit in Half Moon Bay, CA that "helps schools, colleges, universities, and the organizations that support them expand their capacity to collect and share information, apply it to well-defined problems, and create human-centered, knowledge-driven environments focused on learning and success."
DeKoenigsberg is probably better known--for now--by his last job title: Senior Community Architect at Red Hat. It was more from this experience that he addressed the OSS 2010 audience on Open Source Projects, Educational Opportunities.
DeKoenigsberg told the attendees of educators, researchers, and students that academic institutions are missing a real opportunity for instruction if they aren't teaching with open source software. For one thing, working on a 5,000-line senior capstone project nowhere near conveys the sheer scale and complexity of a million-line project. And an open source project is the only kind of project a student developer could even get near something that big.
Professors are also missing out when students essentially bypass their instruction by directly participating in programs like Google's Summer of Code (SoC). While there is nothing inherently wrong with SoC, it can rob both the instructor and the student of a real opportunity for an instructional moment.
On the flip side, according to DeKoenigsberg, there's a real disconnect between how open source communities want to behave and how they actually behave. Many community members may genuinely want help from students and academicians, but often the barriers to entry are too high for outside assistance to be rendered. That's due to high levels of intrinsic knowledge that many newcomers are simply unaware.
Without that "in" knowledge, students and teachers who genuinely want to help are often lost on where to begin, and may even be rebuffed by open source project members with the old "go away, kid, you bother me" attitude--even when project leaders asked for the help to begin with.
In fact, DeKoenigsberg emphasized when I asked him what open source projects could do to help, project leaders should not actively seek academic assistance. Instead, work to identify bugs and wishlists in a project that are very simple to solve and require little intrinsic knowledge to wade in and repair. As more of these easy contributions are made, knowledge about the project, its infrastructure, and the community is gained, and contributors can work on more complex issues.
One tool to assist project members identify these "easy" bugs is OpenHatch, which posts new bugs and fixes from various open source projects. For teachers, many tools and resources on how to teach open source development can be found at Teaching Open Source.
DeKoenigsberg made excellent points about the reality of interfacing with the open source community, which does not always do the best job of imparting the one thing new contributors need to get started: community knowledge.