Published source … the greatest thing ever!

One of the hardest things about working through problems with some of our customers is the fact that since I work here at the QNX mothership office I have full and complete visibility into all source from our products … and they do not.  This of course means that I can almost always come out looking like a hero since for any hard question a customer has about how something works (or appear not to as the case may be) I can generally root through the source repository, figure out what is going on and explain it back to them.

It is nice to be a hero … but sometimes things just get lost in translation.

Since it used to be that I couldn’t just share the code with the customer’s engineers, we spend a lot of time going back and forth discussing topics in the “abstract” until I can paint enough of a mental picture for them about a particular implementation of technology.  By the time that they understand what to do about the problem they are facing, I’ve pretty much given them a tour through our code.  Kind of a  waste of time considering that most of the software developers I end up working with can read through a blob of C, C++ or Java code just as easily as a paperback novel.

This is why I think that Foundry27 is an awesome idea.  We are working to get to the point where for nearly all of the Neutrino technology that has been developed, I’ll be able to talk customers through a problem and bring them right into the guts of the code during the explanation.   It is going to take some time to get all of that source out, but we have already pushed out the C library source code and the kernel/process manager code and that represents quite a bit of important glue bits that help you understand how to get the most out of your applications.

Even better than the fact that the source is being published, is the fact that the different development teams within QNX are starting to take on much more active public roles themselves and helping others to interpret and navigate through the source code.  If you missed it, you should really check out the  webinar that Colin and Sebastien presented as a bit of a guided tour through some of the source code included in the QNX Operating System project.  Also we’ve got most of the kernel developers (and a large number of other QNX developers) online now and monitoring the forums so there is lots of good information flowing around.

Next up on the source release roadmap is the networking stack and driver source and I’m also going to see if I can get a set of missing OS utilities out the door as well before Christmas!


4 comments so far

  1. Mario on

    What does it takes for you to make the source public. Does it involves lawyers, clean up the code, moving from CVS to SVN, etc?

  2. sendreceivereply on

    Indeed, it involves all of those things. Part of the reason that it takes time to pieces of the source out is that there is a vetting process involving everything from license and IP scanning to cleaning up any embarrasing comments to making sure it can be built (ie satisfied dependencies).

    The process is more about making sure that we know and understand what we are publishing and that it is going to be usefull.

    After 25+ years of SW development, there is a lot of source acquired in our attic. Not all of it is relevant, and some of it is invaluable.

  3. Rega cd players on

    You are definitely at an advantage as you can see all the sources of the problems. So it makes it easier for you to come up with the right solutions.

  4. Hemraj Sheth on

    You absolutely outdid yourself with this.
    I’m seriously impressed

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: