User:Tiago/OOo Reflection

From CDOT Wiki
Jump to: navigation, search


The following views and opinions are that of Tiago Moreira (talk - contribs) and do not reflect that of anybody else. There may have been some liberties taken as the memory of past events is never perfect. This reflection is meant to be a slice of my current views from working on the periphery of the Project and being an observer of open source at Seneca College. No harm was meant to any individuals. If you need to discuss it, please post on the associated Talk Page.

Ab initio...

I feel very fortunate to have enrolled at Seneca College when I did. Witnessing the birth of the Mozilla-Seneca partnership was really something special; I looked forward to seeing how we would become a great centre for open source education. Several years later and here we are... the premier destination for teaching open source in the world.

After the success Dave Humphrey had with incorporating Mozilla into the curriculum, there were other large open source projects which began to take notice. From early 2008, I had heard rumours that Eclipse and would be joining the fray with us. So, in the 2009 winter term (January-April), there appeared two streams in the open source course: Eclipse Web Tools Platform and

I wasn’t really interested in working with Eclipse because it was a tool I never used much and it wouldn’t be helping a lot of people. But (OOo, for short)... yikes. Millions of people use this office suite, including my parents, so why not try to improve that? It’s not perfect, but surely they must want all the help they can get.

Growing Pains

I was expecting growing pains as these new projects took root at Seneca College.

I remember the first year that Dave Humphrey taught the open source course; it was about learning Firefox as a combination of different technologies and how the open source process played a part in shaping that technology landscape. From what I recall, people did research on the different components of the Mozilla technology stack: XPCOM, XUL Runner, test harnesses, extensions, etc. One of the events that really brought the class together was when they all had to build Firefox from source code. I remember people talking in the halls about problems they had and how long it took them; it was like soldiers trading battle stories. The Mozilla project has since made huge strides to building Firefox from code as simple as possible. If you look on the Seneca CDOT Wiki to some of the old build instructions from late 2006 and what it is now, it’s a huge improvement. But anyways, that initial course with Dave was very important. There were guest speakers from the Firefox team and you could tell that they really cared about educating the students. Mozilla learned from what the students had problems with and tried to make changes. But getting back to my topic...

There was another reason why I wanted to work on stuff. I remember at FSOSS 2007, we had a presentation (video) (FSOSS description page) by Louis Suárez-Potts OOo page who is a community manager and--I’m guessing--an evangelist for He introduced us to the Project and gave us a rundown of everything that was different or was going to be changed to make it easier for a new developer to join. Things of interest he brought up (keep in mind this was before the release of 3.0):

  • switching from CVS to SVN source code management
  • patch reviews now take less than 18 months and the module leads will walk through the patch with you
  • birth of the new wiki services, mailing lists, forums to help people connect
  • mentioned the effect of Sun Microsystems Contributor Agreement (SCA), an agreement between you and Sun that you allow the use of your code in their products and that it will remain free, etc.
  • says that localization is one of the most important areas of contributions
  • quality assurance (QA) is key to the whole project since they want to release a quality product
    • good place to start since you learn to work with bugs and how to file them, reproduce them, etc.
  • writing extensions was meant
  • documentation is a huge necessity
    • have a lot for end-user, but not enough for developers
  • mentioned that it required hosting (of extensions, or local work done); hinted that Seneca could fill in a role to help out in that respect
  • brought up Google Summer of Code as a catalyst to start a mentoring organization
    • pushed for smaller and more manageable To Do tasks that could be given to students or new developers
  • using OOo as a front end to a network of wikis

Louis envisioned that starting QA teams and extension writing at universities and colleges would be a step in introducing students to OOo. He mentioned that the project wasn’t at the right stage when it first started pushing these initiatives and it failed as a result. He seemed like a really enthusiastic person who wanted to make projects like these work, especially with Seneca. It would have been easy for him too since he lives here in Toronto.

Forward to January 2009...

I was set to take the open source class and we were split between Eclipse and The majority went to Eclipse because I guess it was more familiar to them, but the brave stayed in the OOo camp. Besides, we had Fardad Soleimanloo as our faculty advisor who I had always heard was a great teacher. He was just as eager about the future as we were, and why not? Getting involved with open source is exciting, challenging and, ultimately, very rewarding. Seneca was getting support for the Eclipse course through IBM, and we were under the impression that we would be getting support from Sun Microsystems since they’re the primary backer for OOo. Louis would surely come to talk to our class, right?

We were left to fend for ourselves with only the help of the Education Project and members like Eric Bachard, Alexandro Colorado, and Thorsten Behrens. The Education Project team was mostly based in Europe so there were some issues with communication, but everybody tried their hardest. It was a shame that we didn’t have any guest speakers come in from Sun, or anybody else, and talk about what kind of real development they were doing. Knowing now that Sun was in trouble and looking for a buyer to save it from impending implosion, I guess it would be fair to assume that a lot of their staff was concerned with other things.

The Seneca College Party (or SCOOoP, pronounced “scoop”) (Yes, I made this up but it’s a good name and an even better acronym!) began with the goal to compile OOo from source code on the Fedora operating system. I know for some this was a little bit of a stretch because they weren’t very familiar with Fedora, let alone development tools in a Linux environment. Being such a large project (over 750,000 members and over 500 committers), there is a horrible problem with the documentation. It’s scattered, it exists in different detail depending on what translation you view, legacy documents were still on the wiki... and so on. Louis was really not kidding when he said that they needed better documentation for developers. Even though I would’ve loved to build on Windows, I know that it was ultimately easier to build on Fedora as there was a lot more written about getting OOo built on Linux than on Windows.

It took SCOOoP a long while to finish our building phase, and there was still no word on projects that we could tackle. Fardad did a great job of going over all the tools we would need to actually work on OOo issues. We noticed that there was a big split between what Sun and the OOo camp had done, and what Novell was doing. Novell had effectively (at least to me), forked into a faster-release, quick development mode. They were also pretty good with documentation and keeping it up to date. It is a shame that the developer community became split like that. At least it’s not a full fracture.

By the time we received a project list, it was already late February and most people were beginning to be crunched by midterms and assignments. It was a shame too, because we were anxious.

In looking over the actual source code, and from presentations by Ladan and Daeseon, I noticed there was a real lack of understandable comments. There were comments, but some were in different languages, some were just there for dramatic effect (e.g. issuing death threats for changing whatever), but it made it that much harder to understand the C/C++ and UNO code. It isn’t a self-documenting language so it really does add a layer of complexity as you figure out what it means. There’s over 10 million lines of code in OOo, so it’s really easy to get lost.

Final Thoughts

As an experience, working with is incredible. The number of skills you learn to develop is almost scary, but most of the time you don’t even notice you’re becoming better at:

  • troubleshooting weird errors
  • finding very specific information quickly from the internet
  • asking for help from strangers (classmates, people on IRC, mailing lists, etc.)
  • fixing and writing documentation
  • code reading and walking through paths of execution
  • finding, reproducing, and fixing bugs and issues

I really want to see a strong partnership emerge between Seneca College and Both communities would benefit from it. Since this was the first time that this course was offered, it was an adventure to find out how and where our two worlds fit together or rubbed each other the wrong way. Fardad was a great guide on this journey, and he showed a lot of patience and understanding; I wish things had gone more his way. By next year, hopefully will be ready for another SCOOoP.