I'd like to apologise to my readers that were expecting this post to be on the subject of "Innovative Appropriation" as I alluded to in my last post: NoIT. A colleague requested that a post on applying KnowIT principles to inform a decision on when to use Community Software over Open Source would help to settle a dispute; and I couldn't resist.

The arguments over the use of Open Source over Proprietary Software are, hopefully, well understood and I have no wish to re-open the debate. Suffice to say Open Source Software is now well embedded in the enterprise and IT decision makers have to operate in this reality.

Let's start by defining Community Software:

Community Software is General Availability (GA), Open Source software which is actively maintained by one or more commercial or non-profit entities that also offer services that appertain to the software

All Community Software is Open Source Software but not all Open Source Software is Community Software. Our definition has been chosen to help us decide between different types of open source software when making an IT decision for the business.

When evaluating software for use in the enterprise one of the key criteria is to ensure that we can sustainably support software liabilities in the most cost effective manner for the business. Remember you are not in the business of IT; so code, every line of it, whether you wrote it yourself or not, is a liability.

For example, let's say you have a need for a job scheduler. You have managed to veto a proposal from an enthusiastic but misguide development team to write a job scheduler from scratch. You managed to explain to them that you are applying the NoDev principle, and that we are not in the business of creating job schedulers, we simply have an urgent requirement for one, and that if we are to do any development at all, we have to focus development resources on applications that will directly generate revenue for the business or improve customer experience.

You ask your technologist to find a freely available job scheduler and they duly return with some options. One of the options is a "cool" scheduler that you can "pull" off the "hub" and start contributing code to right away, awesome. There are about 20 "developers" contributing code to the project, which is available as a Release Candidate, perfect, what could possibly go wrong?

The second option is an ancient scheduler that has been in General Availability for ten years. "Cron" is also "fossly" available and you have a choice of a major software vendor to provide consultancy and support. There is also a specialist boutique consultancy that offers automation services that will ensure the scheduler will continue to work, without human intervention, even in the event of a missile strike that will destroy your primary data centre.

Given our definition for Community Software option one, the "cool" scheduler is not community software. A loose collaboration of individuals that may or may not be actively developing the scheduler does not constitute a commercial or non profit entity. This means you probably wont be be able to purchase support services in any sustainable manner for the "cool" scheduler.

The fact that the "cool" scheduler is at release candidate stage also means its not Community Software. The product isn't finished, it is incomplete.

"Cron" on the other hand has two commercial entities that can support it and has been GA for a decade. Furthermore if you had the need and the budget you could employ the boutique service provider to implement a NoOps operations strategy. "Cron" is clearly community software, and for the business Community Software is, in the majority of standard use cases, the right option as opposed to Open Source software in general.

The above example may sound contrived but, believe it or not, it is real and all too common.

If you are to engage in development for a revenue creating project then using Open Source software may well be an excellent option to kick start your application. Ultimately KnowIT principles lead us to choosing Community Software over Open Source Software for the business.

I promise my next post will be on the subject of "Innovative Appropriation" :)

"In the City respect is everything"