Wednesday, September 28, 2016

Koha Development

While in Germany I managed to get my head around something which has become increasingly apparent as I am touring around.

I think we are developing a whole bunch of different versions of Koha, essentially forks I guess, and I am feeling uncomfortable about this because I don't think it's the way to go. I think the whole world benefits if everyone shares their development efforts with everyone else. That is the essence of Koha.

What I am seeing is some vendors, developers and libraries carrying out development in isolation from the main Koha trunk. This means we end up with customised local versions, forks, which means that for every upgrade forever those customisations have to be folded in.

Are you really that special?

I think we have to be wary of the tyranny of small differences. Koha is a global product and many thousands of librarians use it very happily every day right around the globe. Probably 90% of what we do is pretty standard. Are your customisations / quirks really necessary? Librarians are terrible at getting angst ridden about tiny peculiarities and I think we should also be asking ourselves: "really - are we that unique or special?". If we used a proprietary system we would just adjust our processes to suit.

So you want to change something pretty major

The development community is really generous and open for everyone to participate in. The process goes something like this:

Say you have an idea for an enhancement or a bug fix then the first step is to log a bug. There might be a bunch of bugs all related or about the same thing and they could all be addressed together.

You could also run the idea through the discussion list for feedback but the bugzilla is the right place. If you have the coolest idea for a major enhancement then issuing a RFC (request for comment) is the right way. Write your proposal, identifying the problem and proposed solution. What will happen is that a whole bunch of developers will toss your idea around and - what usually happens - is the optimum solution is developed by a bunch of brains.

 Then development can get underway; you might do the work yourself or someone might help but either way that starts the process for ensuring that the enhancement or development gets folded into the main codebase. This means that every upgrade in future needs to not break that piece of work.

Now not every bit of work will get folded in of course but if your enhancement is cool then wouldn't you want to make sure it has a life going forward and wouldn't you want to make the world a better place by sharing it?

There is real danger in having a myriad of Koha forks which while they start off as minor variations are at risk of evolving into effectively proprietary Koha forks. If this happens then we all lose the benefits of shared development and the very essence of Koha itself. There is so much development 'brain power' globally being put into Koha that I would really like to see it harnessed to work together so that we all benefit.




About your post yesterday on 'There is real danger in Koha forking off into 'Malaysian Koha' and ... ' as far as i concern, we distribute the original version of Koha here in Malaysia, we dont have technical people that is really interested/involved in Koha. If there are customized, its only 0.01 %.

Joann Ransom said...

Hi there,

Thank you for that feedback. I understand that is the case in Czech Republic too, and I also should have said 'vendors, developers and clients' rather than countries because that is far more accurate than saying 'countries' because of course there are no countries who are in their entirety running Koha!

Joann Ransom said...

I have rewritten my post because I inadvertently caused hurt to people by naming specific countries. I unreservedly apologise for that; my comments were of a generic nature and I should not have illustrated my argument with examples.

Kyle Hall said...

I completely agree! I think the major stumbling block for those would be submission is simply making it through the community process. It requires tenacity and a thick skin. However, if they've never submitted them, how would they know? I think we're a pretty good bunch. If a new developer submits a patch I think we all like to pitch in to get that patch into Koha while new developers are learning the ropes! I for one am very much in favor of making the bar for developing on Koha as low as possible though documentation, tools and any other way we can.