Open Source

tcHelper is being developed under an open source software model. I would like to take the time to explain what exactly that means and how it benefits you as a user.

Open Source and Free Software

Computer applications are made with something called a source code. The source code is the written instructions the application uses to run on your computer. An analogy can be made with baking. If a cake were to be baked, the baker would have to follow a set of instructions, a recipe, in order to bake their delicious cake. It can be said that the recipe is the cake’s source code.

Say you love the cake and you have a few ideas to improve upon on it, maybe you want to add raisins, or perhaps bake a smaller version of the cake to fit in lunch boxes. Maybe you are allergic to nuts and need to know if the cake contains nuts. Well, if the baker keeps his/her recipe a secret then any of those options are out of your hands.

Open source software/Free software refers to software in which its source code, or recipe, is made public for anyone to view, modify, and share. Perhaps you would like to add a new feature or fix a bug. This is only possible when the project is open sourced.

Benefits

Using an open source model has benefits to the project and also to you, the end user.

The Project

An open source model allows many people to take part in the project’s development. Perhaps one person can help by fixing a bug in the software, another person may help in the design of the GUI, Graphical User Interface, while someone else may assist with improving the database or the translation.

Also, the responsibility of building and maintaining the project does not fall on the shoulders of one or a few individuals. By having many eyes reviewing and contributing to the project everyone can have a hand in the building of tcHelper.

The End-User (You)

The benefits of using an open source model include its users as well.

More often than not, when you use closed source software, your data is locked into the program you are using. For example, say you use a popular public talk managing program for your congregation but then you decide to migrate to another program. You will not be able to transfer your data to the new program because the author of the said program has not disclosed how the data is stored. Furthermore, the data may not be user accessible. You are effectively locked into the program.

With open software, everything is documented. Data is not stored in a way that locks it into the application.

Also, say you have a feature that you would like to see implemented but the developer of the project does not know how or does not want to spend the time in implementing it. In an open source project, anyone can implement your feature without relying on the project’s manager(s) having to do the work. This means the project has the penitential of gaining features faster than closed sourced projects.

It is also important to consider the fact that the developer of a project may disappear and stop developing the program you rely on. In an open source project, if that were to happen, anyone can take the source code and continue to develop the project under a new name. This is called forking. This is what happened to the OpenOffice.org project. Many people felt the project was not moving in the right direction and were unhappy with the state of OpenOffice.org. They took action and forked the project and created LibreOffice. LibreOffice is now a much better office suite than OpenOffice.org has ever been.

Moreover, what if you love tcHelper but wish there were an Android and/or iPhone app that can import the tcHelper’s database? Since tcHelper and its tools are open sourced, creating a mobile application is not only possible but also trivial.

This and more are all possible with open source software.