Open Source and Training
Just finished up a four day training session down in the beautiful town of Laguna Beach. I was sent down there by my day job to learn an open source content management system called Magnolia. I admit that getting training for a free tool that you can browse through the source to understand seems a bit odd. “The source will tell you what is going on if you have any problems.” “It is free so why not offset that free-ness with time spent learning it in depth on your own?” Are the sorts of thoughts I’ve had in the past. After the course I’ve found just the opposite.
Now I’ll be the first to admit that Magnolia is lacking in documentation. Although it has a great quick start guide that is freely available, there are lots of undocumented features and quirks that lurk inside. Don’t even get me started about the API documentation, I don’t think I’ve ever seen so many empty document files before. I don’t think these things are out of the ordinary for any open source project though. The developers aren’t being paid for their time and generally will spend time based on a mixture of what they think is most important at that moment, and what interests them most. “If you see a problem, why don’t you roll up your sleeves and fix it?” is the sort of mentality that I expect out of these projects and I enjoy it. That is where the main thought process naturally leads one to take responsibility for oneself and learn it independently.
Magnolia is in the realm of open source projects like Redhat and JBoss where a company exists that builds extra functionality on top of the original project that can only be purchased, in addition to training and consulting services. JBoss likes to call it “Professional Open Source”.
I think I finally caught the vision of the blending of the open source world with the business world when I attended the magnolia training. Xumak is the name of the company that put on the training, and Giancarlo was the instructor. Things started out a bit haphazard Monday morning and I was a bit concerned that this was going to be the type of training that I have received on other tools so many times in the past: The instructor is practically reading off of the overhead projector and when asked questions beyond the scope of what is in the training manual they waffle, hem and haw, and are generally unable to give any sort of solid or satisfactory answer. In those situations you can forget about getting real world scenarios of using the tool. With Giancarlo, we were far from anything of the sort. He was knowledgeable, affable and flexible in his presentation so that the course could wander to points of interest that I had and still generally stay on track. He also had depth in his knowledge so that he wasn’t just able to talk about Magnolia itself, but the tool that it was built on top of (the JCR, specifically Jackrabbit). This added a great deal of depth in my own understanding of how and why Magnolia implemented certain things and how I can build on top of it in a well ordered manner.
I will most likely have alot fewer headaches and have alot less time wasted in the days to come as I now have an orientation around the tool in the way that the developers envisioned it being used. Now isn’t that the point of an open source project? Don’t the developers want it to be well received so that it can be used as widely as possible and built upon and added to in ways that they may not have even imagined? If that is the case and I am implementing a project using an open source tool for a commercial project, paying to learn it is well worth it. Having someone actively involved in the development process, like Giancarlo, doing the training helps that become a reality. No offense to IBM, but I’ve never been to any of their trainings where I felt like I was satisfied with the information presented in the course, and one of the key reasons comes from it being a “trainer” doing the course instead of a developer on the project. How can a trainer, who is most likely only given the course material to present and may or may not have years of experience with the tool, be expected to know the underlying reasons of implementation? I have never walked away from a training feeling like I got the true value out of what was paid for it until this one. Plus I can look at the source instead of a black box and I feel very empowered to succeed in the project I am doing at work and a desire to utilize Magnolia for other projects that I will do. In fact, I’ve got a couple of personal ones on the side right now that I am planning specifically to utilize Magnolia for, and can because it won’t cost me money to pay for the software. I’ll also be able to contribute back to Magnolia if I add on functionality to it which helps me feel connected in a way that I’ll never feel connected to a closed source product.
February 26th, 2006 at 2:31 pm
Thanks Tom for the nice writeup. Not only is training worth paying for, but so is the software itself, be it open source or not. I believe that in the long run commercial open source will be mainstream, especially in the CMS area where integration is often >80% of the job, and having access to the source just makes that so much easier.
Thanks for being so positive and outspoken.