Free software: working together

Small companies often have to work together; however, nobody wants the headache of contracts, failed promises or deception. Free software allows small companies to work together without these risks, and enables them to create amazing software like WebGUI.

How it all began

A few years ago we were asked to build an intranet for a client. It was natural for us to use free software and we realised that a Content Management System (CMS) was needed. (We had built a web application before, using PHP, but realised that that language didn’t offer what we wanted.) So we looked for an existing CMS that was based on Perl.

WebGUI’s home page

We went straight to Freshmeat where we came across WebGUI. Even though it was a relatively new piece of software, it was feature-rich, flexible and a review of the code showed us that its programmers knew what they were doing.

We had been accustomed to building applications from scratch, but after discovering WebGUI we realised that using it to build a site or a web application we save us a lot of time. It offered us many functionalities which we could pass on to our customers at no additional cost.

In the beginning WebGUI was simply something we needed for one small project, but eventually, it came to be one of the most important applications our company offered.

To contribute or not to contribute…

WebGUI wasn’t (and isn’t) ours; it had been built by an American company. They released WebGUI under the GPL license, but the product’s copyright has remained theirs.

Contributing to WebGUI came naturally, but we recognised that building on someone else’s product, (albeit open source), could be slightly awkward. It took time deciding to invest in a product that “wasn’t ours”. Eventually we decided to go ahead, mainly because we felt “safe”: If we didn’t like the direction taken by the American company for any reason, we could always fork (that is, create a piece of software derived from WebGUI’s codebase—the GPL allows it!). We certainly had no intention of forking, but it was good to know that the option was there. Now we’ve worked with WebGUI for several years, and we still really don’t think we’ll ever have to fork!. Several companies and volunteers (including us!) are developing WebGUI at a great pace, and are enjoying the benefits of free software.

Working together

Developing complex software can be a very challenging task—definitely not something you can complete in one lazy Sunday afternoon! There’s generally a substantial investment behind developing software—not usually something a small company can do on its own. However, the history of free software has shown that several small companies and individuals working together can achieve the unimaginable If a private programmer (or a company) creates a valid free software project, he or she can get free aid from those who use it, and the results can be astonishing.

The fact that small companies can work together isn’t news; what should be known is that free software makes it easy. You can start working on a project without the headache of negotiations. All you have to do is write the code, and submit it to the project coordinator. It doesn’t really matter if a contributor does less than expected. There is no need to discuss ownership, percentages, etc.

There’s also no risk of loosing your investment (in terms of time or money). If any of the companies you are working with go bankrupt or a third party buys one of them out, there are no assets that can be taken away from the project.

The fact that small companies can work together isn’t news; what should be known is that free software makes it easy

There are also some benefits of this process that are normally overlooked For example, free software companies get to know (professionally and personally) the private individuals who contribute to a project.

When these companies need extra staff, they can (and do!) ask the volunteers if they want to turn their hobby into a job. There are several advantages to this: the companies know exactly who they are hiring, how reliable they are, the quality of their work, etc; and these contributors already know the project from the inside!

Another advantage of free software is that having a large number of people downloading and running a piece of software increases its stability substantially—nothing is more effective for finding bugs as feedback from all those end-users. This is one of the reasons why in free software stable releases really are stable.

All of these benefits applied to the WebGUI project—in fact, we discovered them as we went along with the project. WebGUI is a feature-rich CSM—Its development involved many contributors and users, a lot of users’ feedback, promotion, etc.

This free software model applied perfectly well to WebGUI: by working together, we now have a product that is saving us millions in terms of development costs.

Together, we can compete with, and outperform, our expensive competitors.

Projects going international..

WebGUI became an international product almost instantly, due to the origins of its contributors. In October there was user conference in the USA (the home of its builder). And then, since the product is also supported by us (we’re a European company), the next conference will be held in Amsterdam.

“Use strict”

There are potential stipulations if you are a company and you contribute to a free software project. One of these possible problems is that you won’t actually have control over the project. You can always fork, but then you miss out on all the improvements that volunteers and other companies make to the ‘original’ project.

For example, in the case of the WebGUI project, the code could be described as following the Perl term “Use strict”; There is one person in charge of the project, and he is strict: he won't allow any code in that isn’t of very, very high quality.

At first, this strictness appeared excessive, even harsh—it may even have scared some contributors away. However, in the long term this turned out to be a blessing. Based on experience, we feel very confident about WebGUI upgrades. Although we still maintain a rigorous “test first” policy for upgrades, no site that uses “vanilla” WebGUI (no custom adaptations) has ever given us any problems.

ProcoliX’s home page

Perhaps, in the beginning, the project might have attracted more developers if we had been a little more flexible. But now it saves the project’s developers time and headaches.

For us (as a company), the maintainer’s strictness was never a problem. We’re glad that no “bad code” finds its way into the project. And if we code something for a client that isn’t considered integral to the project as a whole, then it doesn’t make sense for us to keep the responsibility of maintaining the code. We always make code that isn't considered “core” available for download anyway, so the community doesn’t miss out on anything.

Conclusion

We at ProcoliX ended up building a business around a product we accidentally found on the web.

We don’t sell software: we make money providing actual services. Such a model enabled us to start quickly, and with relatively little risk. Thanks to free software: we develop software very rapidly, and deliver full-featured products with prompt and excellent support.

Bibliography

WebGUI: WebGUI.

ProcoliX: ProcoliX.

License

Verbatim copying and distribution of this entire article are permitted worldwide, without royalty, in any medium, provided this notice is preserved.