Sunday, March 22, 2009

Getting Started in Open Source: You Don't Need to be a Rocket Scientist

(Ed. Note: I'm spending more time microblogging these days than updating Hawthorn Landings, so if you're interested in what's going on in the wonderful world of LH and the Federal Republic of Northern California, you may want to subscribe to my notices on identi.ca or follow me on Twitter.)

Last weekend, I attended the birthday celebration of a dear friend, Angie Wolff. Most of the crowd were techie types, spending their day jobs thinking about genetics, scientific instruments and space. Late in the evening, we gathered around an outdoor fire pit for conversation, enjoying the night chill and the heat from the tower of flaming oak wood equally. I couldn't help but think that such gatherings have happened in much the same form since man first walked the earth.

The gentleman to my right worked for the local arm of NASA, and we wandered across topics like debris in space and government spending on the space program. Fascinating stuff all around, though I admit to delivering a disgusted rant about the fact that human beings can't seem to keep their waste production confined to this planet. It's bad enough down here, thank you very much. Eventually, the conversation lagged a bit and he asked the eternal question: "So, are you an engineer?"

I laughed and responded, "No. In fact, I have a degree in Medieval English Literature." He blinked. I'm used to this sort of surprise. "But," he said, "you ask all the right questions. You talk like an engineer. You think like an engineer." "Well," I countered, "I suppose that's because I spend so much time around them."

This weekend, my thoughts turn to the fifth Google Summer of CodeTM, and the topic of this post. Each year, #gsoc on Freenode fills with new nicks, and it's been wonderful this year to watch the community band together to welcome our newcomers, answer their questions and guide them as they begin to explore the world of FLOSS. Another year, another GSoC, and the same set of questions: "Will I get accepted?" "What are my chances?" "I am really excited about Open Source, but I don't think I know enough. Should I even bother applying?" "What if I'm a first year student in Computer Science, is that enough experience?" "What if I have been programming for years, but I have never done anything Open Source? Should I give up now?"

To those who are feeling intimidated, I cannot say this too many times. Go ahead and apply. The worst you can do is not be accepted. Even if you fall flat on your face, you are still moving forward. Even if you are not accepted into the program, you will still get the chance to learn more about some exciting projects and to get to know some of the folks who make those projects happen. You may not work on their code base in the next few months, but who knows when you'll find they provide an itch that you just have to scratch.

The pep talk I wrote two years ago holds equally true today. Go read it if you need some reassurance. Take a break from Programmer Insecurity.

As of tomorrow, I will have worked for Google's Open Source Programs Office for three years. When I got started, I'd written precisely zero lines of code. As of today, I've written just under one thousand, but nothing that was ever particularly useful — mostly just "Hello World!" type stuff — and I've never submitted a patch nor designed an elegant file system. I know my work, both for Google and in my volunteer time to the community, has had a useful impact, even though I don't write code. Consider how "little experience" I have and then ask yourself if you should really be wasting cycles worrying about how little you have to offer instead of focusing on how much you have the opportunity to learn.

And for those of us who know that all that glitters is not only code, there are many avenues of contribution to the Free and Open Source Software world that have nothing to do with fixing bugs. I'll be talking more about tips for newbies in the coming weeks. Assuming I can tear myself away from Denting and Tweeting.

Labels: , ,

Sunday, March 08, 2009

Paying It Forward

Once upon a time, a friend of mine told me to crank up the tunes in his living room. I wandered over to his desk, pressed the space bar on the keyboard and was presented with this utterly unfamiliar foot thing floating around the screen. After asking "Um, what the hell is this?," my buddy proceeded to tell me all about what Open Source software is, why people write it, why people use it, and why I could still play music files in this then foreign environment. Life was good. I also got the sense that this whole Open Source thing was for coders only. I didn't think much about it for a long time, other than being very excited that programmers were thinking about their work along ethical lines and viewing the tools they create as a form of speech. Such is the way the world is changed.

Seven years later, I was chatting with some folks at SIGCSE when a text message came through from this same friend. "Just heard you on the lottalinuxlinks podcast. Nice interview." Clearly, a lot can change in seven years. Thanks for the kind words Nathan, and thanks for that early lesson. I'm proud I could pay it forward.

I'm curious to know what folks think of the podcast, so let me know. I have a few more to promote Summer of Code coming up in the next few weeks, so all feedback appreciated.

And while we're at it, feedback on this video interview with Linux Magazin Online from FOSDEM also welcome. The video of my talk should be posted soon. Eh, why not give my official conference press interview a read, too.

Life is good.

Labels: , , ,

Saturday, March 07, 2009

Notes from SIGCSE 2009 & Barriers to Adoption of FLOSS in the Curriculum

First of all, Chattanooga, Tennessee is a lovely place to visit. Should you find yourself there, lodge at the Stone Fort Inn. The service is impeccable, the property exquisite, the prices reasonable and the breakfasts sumptuous. The claw foot tub and balcony hot tub experience is also not to be missed. The Tennessee Aquarium was recently declared #1 in the United States and with good reason; I touched a manta ray, shark and sturgeon for the first time at the conference reception, and they have an entire exhibit dedicated to turtles. Not that my deep and abiding love of turtles inspires any bias in my assessment, mind you.

But on from the business of hospitality and marine biology to the business of computing. Whilst in Chattanooga, I had the privilege of speaking at SIGCSE 2009, the ACM's 40th Technical Symposium on Computer Science Education. I joined several folks from industry and academia at the Free and Open Source Software Symposium on Wednesday, where the theme was integrating FOSS into the Undergraduate Computing Curriculum. I learned a great deal from the educators present about how they are using FOSS in their curriculum and several folks presented on courses they've developed using FOSS software as the basis for the concepts they were teaching, e.g. version control systems. Among other initiatives discussed, It was particularly inspiring to meet up with professors who encourage their students devote their time to humanitarian projects such as OpenMRS and Sahana. My fellow panelist, Stormy Peters, sent out notes via Twitter (@storming) during the sessions, and I'd recommend taking a look at her Tweets for more details.

So with all the great work being done by well known folks like Oregon State University's Open Source Labs or some of the less well known (but ought to be better known) efforts underway at institutions like Connecticut College, Trinity College and Wesleyan University - and even in my own Silicon Valley backyard at San Jose State* - why aren't we seeing more use of FOSS in (higher) education? When talking to the professors in several sessions, most of their top students are already involved in FOSS projects, submitting patches or sometimes full committers. FOSS adoption by business is ever increasing, particularly in these troubled economic times. Certainly any institution, be it wider academia or a university, will change more slowly than industry, but it seems only natural that FOSS code and tools would be the best choice for teaching and use in the classroom, especially given the potential for cost savings. So why aren't we seeing more of this happen and with all haste?

The most valuable part of SIGCSE for me was understanding from educators what their pain points are in adopting FOSS in their classroom. A few of the main ones include:

Obtaining Tenure:
Encouraging students to participate in FOSS development requires some degree of community participation on the part of the educator, at the very least so they can impart the social lessons that prepare students for the cultural aspects of FOSS. Many would be most happy to do so, but contributions to these projects are not considered admissible to the body of work required to obtain tenure. Tenure review committees also lack the domain expertise to judge whether a particular code base contributed to a FOSS projects is a substantial achievement or a less significant patch. And, of course, contributions of source code are not considered publication, whether or not they meet the stated objective of publication - the advancement of Computer Science.

Curriculum Challenges:
Staying abreast of all the changes in the technical world is difficult enough for those of us who work day to day in the high tech industry. Imagine keeping up with these trends in addition to the requirements to publish academic papers, remain current on pedagogical trends, serve on various committees, and actually teach courses. Needless to say educators are left with little time to refresh their curricula with FOSS examples or to create entirely new curricula integrating FOSS into their pedagogy. Consider also that FOSS software is usually released more often than its proprietary counterparts and his more rapidly changing landscape can be a deterrent for time strapped teachers. A few folks noted that proprietary software vendors often provide a well written, useful and oft-refreshed curricula to them.

It's also worth noting that there's quite a bit of Open Courseware and FOSS code out there targeted at educators, such as Rice University's Connexions site, MIT's Open Course Ware and the Respository for Open Software Education, but not everyone is aware of these resources. Even beyond these more well known resources, the internet is chock full of information to learn about FOSS and computing. However, vetting these resources to ensure quality content is time consuming and not something that every professor is well suited to do in every technical area. Keeping to the known is a lower time investment. I've also heard folks mention that there's need to educate educators around content licensing in general, and some who well understand content licensing still hesitate to use courseware that is Creative Commons licensed for educational use but restricted for commercial use given the for-profit nature of their academic institutions.

I haven't yet mentioned the need to meet Administration curriculum requirements for each course, some of which don't recognize FOSS as a viable mode for illustrating concepts in computing. I know how counterintuitive this fact must seem given the number of universities that were the birthplaces of FOSS - my alma mater anyone? - but it is what it is. Persuading school administrations to change curriculum requirements is time consuming at best and not a battle everyone would care to fight. Particularly when they're seeking tenure, meaning their time is likely focused on publishing rather than challenging status quo.

Declining Enrollments:
Many folks I spoke with lamented both the shrinking numbers of student enrolling in Computer Science and the lack of preparation their students have for tackling the discipline. Faced with shrinking numbers of CS majors and corresponding decline in revenue, expending the resources to innovate the CS curriculum period, let alone in this 'radical' way that is FOSS, can be hard to justify at the institutional level. Everyone seems to agree that these curriculum innovations would be a useful catalyst to stimulate interest in Computer Science, but for now it's a chicken and egg problem.

Education for Educators:
This topic was quite the hot button for folks teaching computing to pre-university students, but the principle holds true for higher education, as well. Not everyone knows what FOSS is, why it's useful or why they ought to choose to use it in their courses as opposed to proprietary software. Once you have a teacher convinced that FOSS is the right choice, they may have no clue how to choose which code base to use as a teaching tool or even a good understanding of a particular operating system, tool, etc. While we in the FOSS world are used to a "figure it out yourself" mentality, that's at best not the modus operandi and at worst the antithesis of the academic world. Folks enmeshed in this structured learning environment, where lectures are the order of the day can find the unstructured environment of FOSS both unfamiliar and intimidating, no matter how brilliant they are.

Particularly on this last point, though on all points, I think we in the FOSS community have an amazing opportunity to provide help to the academic community around these issues. Local LUGs can hold workshops to train teachers, FOSS developers would make excellent invited speakers for classes, etc., etc. If you're passionate about this topic, consider volunteering to be a guest lecturer at your local school. I think Community Colleges and Trade/Vocational schools are our best bet for a first port of call. Bonus points if you have the time, energy and school board support to facilitate an after school computer club for younger students.

Many thanks to Ralph Morelli and his fellow Symposium chairs, for inviting me to take part in the panel, to my fellow participants for sharing their stories, and to all the educators who took the time to share their achievements and challenges with me this past week. Many thanks also to Greg Dekoningsberg for the riffing over coffee on these same topics. Check out his post-symposium blog post while you're at it. And finally, thanks to Stormy for suggesting to Ralph that I'd make a good addition to the Symposium; I'm grateful for the connections that I formed due to my attendance.

* This list is just a smattering of all the great work I heard about during the symposium. For more, check out the papers presented.

Labels: ,