I have been reading the book “Producing Open Source Software – How to Run a Successful Free Software Project” by Karl Fogel over the past weeks. It is available for free here: http://producingoss.com/

I especially liked the chapters about being open:

Fogel’s point is that if you want to run your project as an open source project, it is better to start early with being open, ie. to have your code publicly available, have discussions in the public, offer demo data for everyone to use, etc.

Please read the short paragraphs linked above, they are well worth reading!

I think we have been quite ok with the OpenPetra project regarding these points:

  • we have a nightly build of the standalone installer
  • we have several demo databases
  • we have a public bug tracker
  • we have an IRC for immediate discussion (although only during working hours in Europe)
  • we have a public wiki and a public forum for discussions
  • we have quarterly (?) news updates on the announcement mailinglist
  • we have Twitter integrated on the website, which is irregularly updated with news items
  • the weekly phone conference is open on invitation basis
  • … and probably some more points that I did not think of at the moment but are still important!

Unfortunately, since Sourceforge did shutdown the hosted applications, our wiki and forum are available only read-only.

My suggestion for the future: Since the forum was not much frequented, I think it might be enough to have a mailinglist where all developers are subscribed. Sourceforge still offers free mailinglists. Mailinglists are the most common way of discussion among developers in the open source community. For users perhaps a forum is more common, but we are not there yet at this point. We can create a separate mailinglist or forum for users when the time comes that we have users of OpenPetra.

I also want to say why I think especially for OpenPetra it is very important to being open:

In the past years, there has been discouragement because the project has invested into potential volunteering developers a lot, but then they vanished before even committing a single line of code. Or they have committed code, that had to be reverted because of poor quality or other misunderstandings.
This makes my point: most of the time, the conversation with these people was in private, not in public. So there was no chance of a peer review from other developers. This might have excluded the new people from the developer community, and they did not get positive feedback. And all the conversation is lost, no other potential developer can learn from it, and for the next person you would have to do it all over again.

Please can we continue to be open in the OpenPetra project, and become better at it!

It saves us all a lot of time, and encourages everyone! You can see what is happening. This also makes the project interesting for outsiders and potential contributors.

I think, one single organisation needs to put in a lot of resources, to make such a huge project like OpenPetra happen. It is worth the effort of being open, if eventually other organisations or individuals get drawn in and share the work load.
This is a gradual process of course, but it is worth continuing it.

Tags: , ,
Posted in Software Development | Comments Closed

Ext.Net and Mono   March 15th, 2011

I like ext.js/Sencha for having a rich client in the browser.

On the other hand, we are using Mono for running our .Net server.

ext.net is a good library that helps you to easily write web applications, based on your .net libraries.

For OpenPetra, I have created an online application system, and the backend for the registration office is written with ext.net.
Here are some problems I came across, and how I solved them:
First, I had to recompile the ext.net dlls and also the Newtonsoft.Json.Net20.dll.
The Newtonsoft.Json.Net20.dll has been compiled with the latest compiler built from Mono 2.8 trunk. This was necessary so that no Microsoft dlls were linked in.
The ext.net dll was built against the Mono compiled Newtonsoft.Json.Net20.dll on Windows with SharpDevelop. The mono compiler crashed on Linux when trying to build the ext.net solution.
The resulting files are available from the online source repository of OpenPetra, eg. http://bazaar.launchpad.net/~openpetracore/openpetraorg/trunkhosted/files/head:/csharp/ThirdParty/ext.net/
I was not able to get Ext.Net to run with the latest Mono 2.8, but it is working fine with 2.6.7.
I had to build it from the sources.
Some links related to the problems I had with Mono 2.8 and Ext.Net:
compile ext.net: There is no implicit reference conversion from `Ext.Net.ComboBox’ to `Ext.Net.ComboBoxBase
Running ext.net on Mono 2.8: get the error: Cannot add a Ext.Net.Parameter to System.String
For the moment, the solution for me was to use Mono 2.6.7.
The examples of ext.net only show the c# code inside the aspx file, but with growing size of the code it would be good to be able to split the code behind code from the UI code.
This is possible, but you need to define all controls in the .cs file, at least those you want to use in your code behind code.
In the aspx file, make sure you have at the top:
<%@ Page Language="C#"
Inherits=”Ict.Petra.WebServer.MConference.TPageOnlineApplication”
src=”Desktop.aspx.cs” %>

<%@ Register assembly="Ext.Net" namespace="Ext.Net" tagprefix="ext" %>

see the whole file here: OnlineRegistrationBackend/Desktop.aspx

Now I ran into errors like this when Mono was compiling the code on the fly:

Compiler Error Message: CS1644: Feature `anonymous types’ cannot be used because it is not part of the C# 2.0 language specification

I found on the Internet this page: http://www.4guysfromrolla.com/articles/121207-1.aspx

linked from http://web.archiveorange.com/archive/v/c2PM7RMRJf7Ti7PP7uVb, where they discuss how to use “extension methods” and “collection initializers” with Mono.
I have added all those settings to my web.config, see the result here:
You can see a running demo here: http://demo.openpetra.org:8009/

After some attempts to explain what my work is all about, I have come to the conclusion that the description “Charity Resource Planning” might fit best.

Previous attempts were “Administration Software”, but then people think about administration of computers, etc. And I have not read about anyone calling any software “Administration software”.

Other people call it “Back Office Software”.
Wikipedia describes Back office in these words:

“A back office is a part of most corporations where tasks dedicated to running the company itself take place. The term comes from the building layout of early companies where the front office would contain the sales and other customer-facing staff and the back office would be those manufacturing or developing the products or involved in administration but without being seen by customers. Although the operations of a back office are usually not given a lot of consideration, they are a major contributor to a business.”

But does a charity have a front office and a back office? It is usually quite a small team of dedicated people. I remember once a funny bookkeeper in one of our smallest offices, telling me he would ask the system administrator to do something for him… it took me a few seconds to realise he was speaking of himself in the third person…

To some degree, the work of a charity, helping people in need, empower the people without rights, telling the Good News, could be called the “front office”.
But even in normal companies and enterprises, no one calls their software “Back Office Software”. You want it all integrated. The salesman in the front office needs to know the addresses of the customer, etc.
This is where the term “Enterprise Resource Planning (ERP)” comes to mind.
Again the definition from Wikipedia: Enterprise Resource Planning

“Enterprise resource planning (ERP) is a term usually used in conjunction with ERP software or an ERP system which is intended to manage all the information and functions of a business or company from shared data stores.
It is a commercial software package that promotes seamless integration of all the information flowing through a company.
[…]
[The term ERP] was introduced by research and analysis firm Gartner in 1990. ERP systems now attempt to cover all core functions of an enterprise, regardless of the organization’s business or charter. These systems can now be found in non-manufacturing businesses, non-profit organizations and governments.”

For a while I thought about using the term ERP for the things I do. But then it sounded strange. Can you run a charity like an enterprise? On the one hand, many concepts can be brought over from the enterprise experience, and a charity can benefit from the lessons learned in business. Some charities even are run as an enterprise, and their goal is to grow and move more and more money. They pay salaries etc.
But I am not talking about those huge well-known charities that you see on TV ads. My background are mission organisations. They and many other charities work mostly on a low profile. They live from dedicated workers who are willing to work for a small salary or even raise their own support, and such organisations could not exist without their dedicated supporters that not only back the work financially but also with prayer.
There are quite a number of Open Source ERP systems around. The question is how hard it would be to modify them by adding modules to turn these software packages into “Charity Resource Planning” tools.
There is a good example of Medical, which is an Electronic Medical Record (EMR) and Hospital Information System, and it is based on OpenERP, an Open Source Enterprise Management solution.
So it would work to adjust an ERP system to work for charities. I wish there were such initiatives to use the benefit of Open Source for charities in this area.
The question will be how close the ERP system will match the processes of a charity. How far can you modify the software, and how much do you have to change your own processes?
Therefore my goal is to make a real “Charity Resource Planning (CRP)” software.
  • CRP software has to be easy to use, since charities often have much higher staff turnover than normal businesses, due to short term commitments etc
  • CRP software should center on managing relations with supporters and workers and the people involved in the projects in a way that is right and honourable.
  • CRP software should provide tools for most of the office tasks, eg. Personnel department, Donor contact management, Financial Planning, Accounting
  • CRP software has to be available in all sorts of languages and support many currencies, so that it can be used across a multi-national organisation, in such a diversity of countries that companies of the size of a usual charity normally would never work in because they don’t have the manpower.
  • Such a CRP software has to allow easy integration with other software, eg. Payroll which is probably too difficult to adapt to the laws of each country. It should also provide many plugin interfaces that allow localisation of the tools, eg. for processing bank statements etc.
  • CRP software has be available at justifiable costs, considering the personal effort of supporters and workers to keep the charity going.
There is already a small number of software systems around that fit well into the category of “Charity Resource Planning”. And I think there is certainly a need for more developers and IT specialists working in this area, both voluntarily and to earn their living. I think it would benefit many charities if we use Open Source software for this in order to be able to share solutions even if we are using different technology or emphasize different management/organisational styles.
My personal aim is to make OpenPetra.org one of the first choices in Charity Resource Planning systems.

Disclosure
Timotheus Pokorra is currently working as a software developer for OM, a christian charity working in many countries. OM owns the OpenPetra.org project which aims to provide a free software solution for the administration of charities.

I want to look at several articles and initiatives that I have found on the web, and address some of the questions and risks and benefits.


Why can’t you just use commercial software to manage your administration?

This really depends on the type of charity.

For example a representative from Christian Aid says in this BBC article (http://news.bbc.co.uk/1/hi/technology/6124582.stm), which I will refer to again later:
“We are a funding organisation that ships £90m around the world …”
[…]
“We spend one pence in the pound on administration, and that means we’ve got to be as effective and efficient as we can, and software is one way to do that.”

Reading this, that means that they are still spending £900.000 on administration.

I would like to list different goals that a charity has:

  • deliver a message
  • provide material help
  • provide training or practical help through people

Therefore an organisation that ships a lot of money around the world, it is much easier to spend quite big amounts on software, and this saves them all sorts of trouble with technical support etc.

But if your organisation is more about highly motivated workers working alongside the people you want to help, and your main motivation is the message you deliver, the picture is different. You will probably not “ship vast amounts of money around the world”, and the percentage you use for overall administration is more critical. The amounts you can spend on IT is probably quite small. It will be difficult to subscribe to proprietary software licenses which you will be depend on for the next decade or so.

We should also not forget cultural differences. It seems it is much more acceptable in the US to invest into administration than it is in Europe.

The BBC article about Christian Aid also mentions the use of standard office software, e.g. Windows XP and MS Office licenses. They are very happy with the good charity discounts from Microsoft. I will not address this topic here, because I am not discussing Operating Systems or Office Software, but Administrative software.

A charity is no software company, why should we invest into OpenSource and develop our own software?
I want to introduce the idea that has been formed by the Collaborative Software Initiative (CSI) (see
http://www.csinitiative.com/).
I quote from their website:

“The Collaborative Software Initiative (CSI) brings together like-minded companies to build software applications at a fraction of the cost of traditional methods. CSI introduces a market-changing process that applies open source methodologies to building Collaborative Software.
For applications that don’t enable competitive advantage or are associated with non-value added activities such as compliance, regulatory, and industry standards, Collaborative Software empowers customer core team members to provide control and direction over a project while leveraging the efficiencies of using the same software and reducing costs.”

They are thinking of banks and insurances and the automobile industry. I think we can easily apply the same to mission organisations and charities. We don’t want to develop software for the sake of it, and we don’t want a competitive advantage over other mission organisations or charities. Therefore it would make much sense to coordinate the efforts, and let others benefit from our work, and even encourage them to contribute.


Open Source is not as good as the best of breed

First of all, the best of breed software will probably cost more. In case it is cheaper or you can afford it anyways, and you have also calculated the cost of training etc, then it might well be that the best of breed is better for you.
Regarding the issue that the users know the best of breed and it is more difficult training them on an Open Source system because it is unknown to them: This might be more an issue for Operating Systems and Office packages. Although the introduction of Office 2007 has shown how easy it is to force users to suddenly use ribbons instead of menus.
The advantage of an Open Source administration suite should be that it is easy because it can be customized to the specific needs. Can your workers cope with the complexity of the best of breed, fits-all system? Most of the time you don’t need all functionality of the best of breed software.
In the case that you have to train your workers on the best of breed software, make sure you know how often you have to train new staff, and how expensive that is, depending if it is possible to provide your own in-house training, or you have to pay expensive courses.

With Open Source you don’t get what you really need
This is generally true for all software. But with Open Source you have a chance, to change the software much easierly, either by doing it yourself or get someone to do it for you.
If you have a good reason, you can convince a developer to do it, and it can benefit others as well.
Depending on the size of differences of expectation, you need to be able and willing to invest into adaption yourself; but you will own the change and don’t need to pay license fees for it in the future.

There are too many updates to install for Open Source software
see also the article “
How open source is losing the charity battle” at ZDNet.

Security nowadays requires updates anyways, even Microsoft have a monthly patch day.
Nowadays updates should become much more easy to install.
The more users there are, the quicker a solution is provided; frequent updates prevent a bug from annoying you for a longer time.

Who will provide support for us? Is there a guarantuee of service and continued development?
You should look for a contract with a software engineer, and the greater the community for an Open Source software, the more people are willing to help. It is not all for free, but that is a good thing for you, because when you pay you have rights. On the other hand, you might find IT people that specifically want to support your organisation as volunteers. Because of the free nature of Open Source, it will be much easier for them to accustom themselves to the software.
There should also be general support of the users amongst each other, therefore leaving only serious extensions to paid or volunteering developers.


More Links
Most of the Links don’t relate to Open Source regarding office administration. But they might give the interested reader an overview of opinions and possibilities.
Case Studies:
http://news.bbc.co.uk/1/hi/technology/6124582.stm
Charity shuns open source code

http://www.cafamily.org.uk/opensource.html
A charity using open source

http://news.zdnet.co.uk/software/0,1000000121,39166840,00.htm
London-based charity which saved more than £28,000 by using Linux Terminal Server to build its network.

Articles:
http://www.linux.com/feature/33378
Article: Help introduce open source software to charities

http://www.uwnyc.org/technews/v5_n6_a1.html
How “Open Source” Can Open Doors for Nonprofits

comparison Office vs Open Office for nonprofits

article from the year 1999, from Danny Yee: “Development, Ethical Trading, and Free Software”

Initiatives:

http://www.donortec.org/
DonorTec provides donated software and hardware from companies such as Microsoft and Cisco to eligible Australian non profit groups with Income Tax Exempt Status (ITE).

http://charityware.info/
Charityware (c-ware) is any software that supports charity. Some developers ask that proceeds from the sale of software be donated to charity, while others license or donate their software directly to charity.

http://www.socialsource.org.uk/
Last update in 2005.
This wiki is a central point for an advocacy initiative
(“SocialSource”) seeking to promote and assist the practical use of Free/Open Source Software (FOSS) within the UK Voluntary and Community Sector (VCS)*.

http://www.volresource.org.uk/swit/miscsw.htm
information for voluntary and community organisations

http://www.it4communities.org.uk/it4c/home/index.jsp
We are the UK’s leading national IT volunteering programme.
iT4Comunities can help
charities, community groups and social enterprises access free IT support from IT professional volunteers and make substantial savings

http://www.nosi.net/projects/primer
Nonprofit Open Source Initiative

“Choosing and Using Free and Open Source Software: A Primer for Nonprofits” describes what open source software is and what impact this type of software may have on the nonprofit sector.

http://www.benetech.org/
technology serving humanity

http://www.ngogeeks.com/
To evaluate Open Source Software in an effort to reduce the IT costs of Non-Government and Not for Profit Organisations

http://www.ngopulse.org/article/ngo-ict-management-toolkit
The Southern African NGO Network (SANGONeT)

http://ngoinabox.mahiti.org/
This is the website of the South Asian hub of NGO-in-a-box, a collection of Free and Open Source Software (FOSS) tools selected for use by non-profit organisations.

http://www.codn.net/plugins/content/content.php?content.10
Christian Open Development Network


On the FSF’s High Priority Projects list there is a call for the creation of a donor transaction and contact system.

http://www.lightsys.org/

LightSys is dedicated to equipping Christian missions and ministries with the computer technology correct for them, including the knowledge and contacts needed to support that technology. As a result they can serve with greater efficiency, keeping their mind on their task, not their computers, thus redeeming technology — for God’s Kingdom.
latest update on Kardia/Centrallix: http://lan.lightsys.org/blogs/?id=4470&one

Disclosure
Timotheus Pokorra is currently working as a software developer for OM, a christian charity working in many countries. OM owns the OpenPetra.org project which aims to provide a free software solution for the administration of charities.