Thursday, April 10, 2008

Open source world and universities

Finally, my first post!

Last week, I had a very interesting discussion about open source world with some guys from a Brazilian public university and I got surprised with the comments they made. I've been thinking a bit more about this question.

I got realized how some universities are still to far away from open source projects and subjects, such as licensing and team management. Some professors are so involved in academic world that they forget how the student can learn if they would be part of an open source project. In fact, most of them (wrongly) suppose that open source software is a mess: no documentation is available, projects with just a few features, lots of bugs, etc. Fortunately, the world is changing :). There're lots of projects really interesting, cleanly designed, full of useful features for user and also well documented. Becoming involved in open source projects is not a waste of time... they have been taken seriously.

I don't know why most of students think that you can't make money with open source projects and even learn a lot about interesting technologies, such as communication protocols, software engineering, hardware elements, and much more. Riehle shows how open source software impacts the economic behavior of stakeholders in the software ecosystem and we can understand how software companies make money with open source products. The rules are different, then we need specific methodologies to develop open source projects. Most of software engineering we've learned in universities may not be applied on open source software: the development is distributed, the "user" is a community (if it exists), how we can define deadlines, milestones, ...

The most important "post-undergraduate" experiences I had so far were those ones that involved open source projects: LLVM, Eclipse, ESbox, ... I remembered a lot of some software engineering classes on which we discussed how hard is to maintain and keep the software reusable. Also those compiler classes were really useful in LLVM ARM JIT support implementation.

So, don't think twice: we can learn a lot with open source projects and also makes a curriculum vitae stand out.