About Open Source

Working in the Software industry for the last 15 years I saw the nice and ugly sides of programming. For me the biggest challenge in software is to create and keep a team of talented and motivated developer who love their work. In bigger companies it is almost impossible to create a environment for this (with exceptions like  maybe Google). I always admired the quality of gaming software, seems here we have a high level of identification with company and product.

Back to the topic Open Source: It is astonishing what high level of quality Open Source Teams achieve without meeting each other and big management overhead, basically without spending money. I guess it is impossible to create such motivation in a private company ?!

If you are not really sure what OPEN SOURCE means, you better check the definition and limitation. A good starting point is the Open Source Initiative (link). Free software does not necessary mean free like in free beer !

You want to browse Open Source hosts with a myriad of projects ? Check out the links at the right side of this blog under OPEN SOURCE COLLABORATION.

The first Sourceforge project

I started my first project on Sourceforge.net, project title UUIDgen (link).  The very simple Java Swing application creates UUID’s on demand. Not really a big deal, since the basic packages are ready available in Java SE. Gather some experience with the process of creating releases, documentation and maintaining sourcecode in the open source context. Feel free to download the first release (requires installed JRE) or get the Netbeans 6.1 project.

UUIDgen Screenshot

UUIDgen Screenshot 0.1 Alpha

Sourceforge.net

Sourceforge.net

SCM – Sourcecode Management

In the beginning there was one developer and it was fine. Then someone decided to add a second developer to give the first one companionship and it was chaos.
I think every developer run at least once into the situation that someone else touched the same piece of sourcecode as he and faced the situation to merge the sourcecode. Sometimes possible and easy, sometimes impossible because 2 parties were working on the same module for months (for whatever reason causing this situation!). Lets ignore the organizational reason why more than 1 person does the same thing.

In the first company I ever worked in (15 years ago) we realized this is a problem and solved it manually by a simple homemade tool that locked (write-protect) certain source files on shared drive. Later we bought another 3rd party tool to do this job and finally we moved on to MS Sourcesafe in the late 90’s. It worked very well because we were only 3..5 developer sitting in the same physical location.

The next company I joined did the same, but bought a very expensive piece of SCM which did the same job for a considerable alrge number of developer at different sites. What happened ? The system was not very stable, at least from the moment we had no more fulltime admin, lot of downtimes happened and developer were not able to synch or commit changes. Individuals started to remove the write protection on their local sourcefiles and within of weeks there were numerous branches of sourcecode. And it was chaos.

Finally I decided to start development again and learn from previous mistakes. For SCM you have a selection of commercial and opensource products. To name 3 of them: CVS (link), Subversion (link) and Bazaar (link). You can download them and install them on your server (and potentially run into the trouble of administrating both hardware and software!). I came to the conclusion to buy this is a service from a reliable provider.

You might want to checkout this company (link)

I use their team subversion package. Subversion is integrated into Netbeans (link) and can be used with Windows Explorer with Tortoise as plugin (link).