2017-03-14 14:14:32

38 votes, rating 6

Closed Source

In a recent forum posting a user asked if FFB "is still closed source". I thought a bit about how to properly respond to that and wanted to share my views.



The situation



The FFB code (client and server) lives in a repository on github.com. Currently only Christer and myself have access to that. 99% of that code has been written by myself, with some minor contributions by Christer and some small help by others in the past (most of that code has been refactored over and over by now, so it's basically all gone).



Why not Open Source?



At first the idea to make the code Open Source and through this enable others to add to the code, test and fix it, seems appealing. So the original poster's question is a valid one - why not go Open Source, indeed?



The first limiting factor is TIME. As a family dad with a day job, 2 kids and a gaming hobby my free time is limited. I can either spend that time working on the code (building new features, fixing bugs) or teaching others to do so and/or controlling their work. I cannot reasonably do both. The FFB project is pretty complex by now. If no one is controlling what is done to the codebase, the project will soon be unmaintainable and broken.



The other limiting factor is MOTIVATION. For me (as for Christer) this is recreation time. I have much more fun happily coding away, than I have instructing others, controlling their work and discussing how things ought to be done (I have enough of that at work). If it is less fun however, I tend to drift off to other things to do (as probably all of us). The long-term motivation of those helpers-to-be is also a major problem. The past has clearly shown, that while some individuals are really motivated in helping out at first, they lose their focus over time and drop out sooner or later. So the teaching process begins yet again.



I hope this casts some light on the matter and why things are usually not so easy as they seem at first. It is not a matter of me not wanting to share, but rather the consequences such a step would have on the project.



EDIT: While writing this I became curious myself about the current state of the project and did some statistics. FFB client and server are currently at 31.643 lines of code and 1.226 type declarations (classes and interfaces). The projects have actually shrunk significantly during the last year of refactorings (changing communication to WebSocket and JSON in preparation of moving the client to JavaScript).