Open Source

I received an interesting email recently from a state agency that focuses on educational technology use in the schools. I was complaining that a survey tool they’re currently using lacks many of the features of its predecessor. This seems to be a trend with this particular agency this year. They’re introducing a number of new tools that are significant downgrades to the tools they’re replacing.

I was told that the reason for this is the fact that they’ve moved to open source tools. In this case, they’re now using Survey Monkey for this particular survey. When I pointed out that Survey Monkey is in fact a proprietary product, and is not open source in any way, we realized that we don’t have the same definition of “open source.”

That is what we are using. Our IT department’s definition of open source leans a great deal on the amount of customization and limited support the product provides.

I’m not citing the source of this quote, because I do not believe that it was intended for public consumption. What scares me is that this agency that is supposed to be helping schools with their technology initiatives in this atmosphere of unprecedented budget cuts does not have any idea what open source software is.

So, in the spirit of trying to help, let’s clarify.

Open source software is software for which the source code — the set of instructions written by the programmers — is available to the user of the software. In most cases, this software is licensed in a way that allows this code to be customized by the user to meet his or her own needs. Usually, open source software is licensed free of charge, though there are often restrictions regarding how and where it can be used.

Let’s look at an example. In 2005, I started playing around with the WordPress blogging software. I wanted to set it up in such a way that my teachers could just log in to it, and it would automatically create a new blog for them if they didn’t already have one. I didn’t want them to have to contact me to have me set up a blog for them. I didn’t want them to have to go through a bunch of steps to make that happen. Fortunately, the software was open source. I could look at the code and see what happens when a new blog is created. Then, I could create my own program to create the blogs. So I made my own web page, and had the teachers log in to it. If they already had a blog, it just took them to their dashboard. If they didn’t, it created a blog for them, and then took them to their dashboard. It took a couple days of work, but it was possible for me to do this.

I couldn’t have done that if I didn’t have the source code. I would not have been able to figure out how to create the new blog. Which files had to be copied? How did they need to be changed? How did I need to set up a database? A while later, we switched to WordPress MU. This was a separate project aimed at helping organizations that wanted to have multiple blogs on the same server. In many ways, it was a collaborative effort to do just what I had done. This project made it much easier for many schools and organizations to set up blogs for their staff and students. Eventually, it became so popular that the WordPress folks incorporated it as part of the regular WordPress project. So the open-source-ness of the product actually helped to make it better for everyone.

Let’s look at another example. A few years ago, we wanted to play with Scuttle. Scuttle is an open source project that lets you host your own social bookmarking service. So a school could have their own, internal, Delicious-like accounts for students and staff. There were concerns at the time about sharing bookmarks, and privacy concerns, and worries over the sharing of links to inappropriate content. So Scuttle lets you have your own Delicious, on your own servers. You can control who can access it, who can save links, who they can share with, etc.

We wanted to try it out. But at the time, Scuttle didn’t have any way to automatically create accounts for everyone. Our students could sign up for a new account, but they needed an email address (which they didn’t have). I could upload a list of students to create accounts, but there was no way to have them created automatically.

What I really wanted was for this to work like Moodle. On our Moodle server, anyone with a network account in our district can log in. Once they’ve authenticated, if they don’t have a Moodle account, one is created for them automatically. I needed a way for Scuttle to do this.

I was in luck. Both projects are open source. I looked at the source code for Moodle. How do they handle this? I looked at the source code for Scuttle. How do they create accounts? I copied some of the modules from Moodle, and bolted them on to Scuttle. I wrote a few lines of code to make them work together. Voila! Frankenstein’s monster was born. It worked. And all I did was make a mashup of these two software programs to get the result I wanted.

Closed-source software doesn’t work like this. If I want my food service point of sale system to do something it’s not designed to do, I can either complain to the developers and hope they add my feature, or I can shop around for another product. If I want my Windows Update server to send out software, content, and updates to my Android phones and tablets, I have to write my own application, because it doesn’t do that.

If you’re the kind of person who wants your software to do what the publisher is telling you you want it to do, closed-source, closed-loop commercial software is the way to go. If you like to call someone up on the phone when it’s not working, and wait while they decipher the cryptic error messages in their proprietary knowledgebase in order to find out what’s wrong, then by all means shell out the money for the software and the obligatory maintenance agreement.

If, on the other hand, you have your own strong opinions on how your software should work, and you don’t mind getting your hands dirty figuring things out, open source is the way to go. If you’d rather Google your problem and come up with real solutions to fix it without paying $150 for a support call, then maybe this is the right direction.

As a school, we’re increasingly relying on our own expertise and that of our personal learning networks to provide creative solutions to challenging problems. There’s no way we’re going to be able to continue to do that without open source technologies.

One thought on “Open Source”

With budgets getting tighter for the next few years, we will be relying on the open source community to provide us with the tools necessary to educate our staff and students. I have learned so much from my personal learning network concerning open source software and continue to research new open source software.