Sustainable CiviCRM Part 2: the road ahead

Published
2013-09-18 05:27
Written by

For the past eight years, CiviCRM's core team have been shipping a free, powerful, industry-leading solution for non-profit organizations. This blog post examines how we have achieved this -- and what it will take to continue delivering a great product for the next eight years.

Of course, since we are an open source project, the work of the core team is just a part of a bigger picture, sitting alongside the countless contributions from our users and providers.  But in this blog post, I’m focusing on how we can ensure a healthy core team to keep the project moving forward for years to come.

CiviCRM's income - an abridged history

Lets start with a quick recap of the last eight years.

In the begining, we were blessed with generous funding from of a couple of private foundations.  This enabled us to assemble a team of developers to build out the first versions of CiviCRM. CiviCRM 1.0 was our minimum viable product.  It worked for some, frustrated others, but set us off in the right right direction and enabled us to gain traction with a growing community of end users and service providers.

As time went on and more organisations started using CiviCRM, we were approached by hundreds - if not thousands - of organisations that loved CiviCRM but felt it was missing some functionality. Fortunately, a few of these organisations had the funds to develop that functionality, and they supplemented our ‘seed funding’ with funds to build out improvements and additions to Civi. For example, early on, the Physicians Health Program of British Columbia funded the first version of CiviCase and Alpha International funded the development of contact subtypes. More recently, funding from Scotland's colleges allowed us to write the first versions of our Wordpress Integration.

We've also explored other funding avenues.  The core team has undertaken a couple of longer term contracts with some of our larger users. Our contract with NYSS has resulted in a large number of performance and scalability improvements into CiviCRM over the past few releases. And our contract with Zing has helped us deliver CiviHR, CiviSMS, and significant improvements to the API, profiles, and extensions framework. We’ve received some amount of financial support from grant making foundations like the Open Society Institute and the Kahle/Austin Foundation and have explored other avenues to diversify our income streams. We started Make it Happen a couple of years ago as a way to crowd-source CiviCRM. Although MIH had initial traction, and went a long way to helping people understand how we’d like CiviCRM to be funded, more recent funding rounds have been less successful at raising money for the project.

It is worth noting that nearly all the sources of income mentioned above are from funders paying us to carry out a specific task or fulfill a particular set of requirements.

Our current situation

Until now, we've relied on our founding grants to keep CiviCRM moving forward, competitive and relevant in the marketplace. This includes adding functionality, improving usability, keeping the underlying technologies up-to-date, improving reliability, growing the community, providing support and training, creating user and developer documentation, making it easier to customize the product, etc. These founding grants are now ending and because of this, over the last year, we have done quite a bit of work on looking at other sources of income. We created an in-app donation widget, we revamped our Make-it-Happen campaign, and we started our partner program. Out of these fundraising efforts, the partner program has been most successful - it generated $90,000 of income which we can put towards some of those harder to fund activities (thanks again, partners). Unfortunately Make-It-Happen and the in-app donation widget efforts were not that successful this year.  MIH raised $20k for the core team and our and in-app widget did not increase the amount of donations on our support page.

One major source of funding we have at the moment is a multi-year $500k grant from Zing, (which we’ve used for for CiviHR, CiviSMS and the community manager position).  We have also raised approx $80k from other sources (including New York State Senate, the Progressive Technology Project, The National Democratic Institute and others).

That’s a high level look at the finances.  In terms of how we spend our time, here is a high level breakdown of how the core team - made up of 8.5 people - has spent its time this year.  The percentages are our own estimates and intended to be illustrative - they aren’t based on any time recording or thorough analysis:

  • Development  / Testing 40%
  • Bug fixes 20%
  • Project management / specs 10%
  • Forum and IRC support 10%
  • Documentation 5%
  • Community Management 5%
  • Organising Conferences / Training / Sprints 5%
  • Infrastructure (servers, repos, demos, project apps, upgrades, civicrm.org ...) 3%
  • Marketing 2%

In terms of expenses, approximently 90% of our funding goes to salaries with the remaining 10% spent on travel, hosting, hardware, and other miscellaneous expenses.

The road ahead

So now we’ve recapped the past and the present, on to the future?

In essence, over the next few years, we’d like to see the community assume more responsibility for funding the project.  We’d love to see more interactions along the lines of those mentioned above - funding from users, from implementers, and from foundations that are aligned with our mission. And we would love to hear your new ideas on other ways in which we can fund the project.

There are some lines that we won’t cross - CiviCRM will always remain free, libre and open source, of course!  But just because something is free, doesn’t mean you shouldn’t invest in it. Take a moment to think about how important CiviCRM is to your organization's work. If it has enabled you to do things that you weren’t able to before, to build out your services, to reduce your operating costs - then it makes sense to invest in it. In two years time, our goal is to replace our founding income with funding from our community. We estimate $500K a year will ensure CiviCRM continues to thrive.

If you have ever spent time with the CiviCRM community (online or at a conference), you’ll know what an amazing and diverse bunch we are, and that we do have the skills and energy to achieve these goals.  I'm looking forward to hearing your thoughts and ideas as comments to this blog post.  Here are a few questions to guide the conversation.

  • Are you at an organisation (or do you know an organisation) with needs or requirements that could be met from funding CiviCRM?
  • Are you a fundraiser with skills or ideas that you could contribute toward funding CiviCRM?
  • How can we generate more income to put towards those things that are unlikely to be funded by single organisations in our community (e.g. testing infrastructure)?

OK then - over to you...

Comments

While it's easy to thank Zing for their generousity I think the more interesting part of the Zing model is that their end-goal is to "help young people in challenging circumstances helping them develop the life skills, behaviours and confidence to unleash their incredible potential".

 

Zing started out wanting to help young people. They put considerable thought into it and concluded that they best way they could do that was by investing in technology to allow front-line organisations to do their work. And obviously they chose CiviCRM to get that message out. I think it would be great to get that message out there - that supporting CiviCRM is not just supporting a software product but is actually enabling all these incredible organisations to do their work. I would hope that organisations that use CiviCRM and would like it to work a bit better for them might think of encouraging their own consistuents to contribute - probably in one clearly defined push - e.g a month long effort rather than something ongoing.

 

Although it is NOT the full solution we know that a diverse & frequently bizarre range of organisations raise money through kickstarter etc through large quanties of small contributions - is apache phone the only open source that has had luck with this?

I think that both for major users and fundations, we should market better civi as a "utility". investing in a good infrastucture is one of the most effective strategies for countries' development. I'd argue it's the same for NGOs: you need a good infrastructure so their resources is used best, and part of a good infrastructure is a good managemenent of their contacts (including fundraising...).

Obviously and no matter the aim of the NGO, the CRM infrastructure need is mostly going to be the same, so it's most cost efficient to treat it as a shared common good and investing in a single open source crm tailored for not for profit make sense.

I think we can convince more fundations that an effective way of reaching their goal (no matter if it's youth people, climate change or tap dancing) is to invest in a solid CRM to support the work of the NGOs they fund.

And the other side is true too: it's good that the vast majority of civi resources are dedicated to dev and support, but dedicating some to fundraising is needed. A pitch aimed at fundations and some outreach (or support of some in the community doing it) would be a wise investment IMO.

Given the economic climate, it will probably need more explanations to convince donors that investing in the infrastructure is a good strategy. One way of achieving this IMO is to provide better benchmarking so the NGOs they fund can show better how effective they are. It needs some brainstorm to flesh that better: zing guys, put me in your dance card for the social event after civicon, we'll bounce some ideas over a glass of wine (or two)

X+

P.S. I'm aware that PTP is already working in that direction, with a more complete proposal including training/coaching needed around the CRM

Congrats on a very thorough article. This is a critical issue and I can only applaud the core team for being so open and inviting the entire community into this discussion.

I would see 3 potential groups of funders to the core team: the users, the implementers and external parties.

External parties fund the core team primarely through grants or assimilated. As Eileen pointed out, we do have a great story to tell, and certainly could build a compelling argument that every dollar spent by the core team translates to increased efficiency for a large number of organizations, which in terms translate to more good done to these organization's beneficiaries. The issue might be to back this story with hard numbers and concrete examples, but more on this in a few paragraphs. In terms of the funding potential from these external parties I would think this is huge, and certainly a lot more than the core team might ever need.

Implementers fund the core team primarely through event sponsorships, MIH contributions, association fees, etc. The core team has done a fantastic job of solliciting our funding this year, we responded to the call (even exceeding expectations). But our funding potential is limited as most of us are very small companies, so I doubt we could give a lot more next year. Therefore the only way to increase this funding source is to grow the community beyound the existing implementers, and this will take time.

Users fund the core team primarely through donations, MIH contributions, and financing additional developments. From the blog post this seems to be the most limited source of funding for the core team, yet these are by far the greatest beneficiaries of CiviCRM and it's community. The question is whether we can grow this source of funding. I personally think we can, but I doubt the on-screen calls, or even this blog post, will be efficient. We do need to better know who our users are so we can better segment, target, reach, and eventually engage in direct conversations.

As far as I know, the only return of information we have now from our users is through the statistics collection. I do think we need to also include registration (with opt-out) in the 'Organization address and contact info screen'. Collecting such information would enable us to:

  • collect hard numbers on the number of installs, type of organizations using CiviCRM, etc.
  • provide a pool of organizations from which we could sollicit success stories, testimonials
  • increase readership of our mailing list, and therefore audience for our funding calls
  • eventually fuel a very targetted list of organizations that we could engage in direct conversations around funding

The first 2 points would help us build a 'business case' to increase funding from external organizations, the last 2 points would help us be more efficient in solliciting funding from users. We need both to sustain the core team in the long term.

I was about to suggest a session on this at the London conference, but I see it'salready on the programme (http://london2013.civicrm.org/sessions/sustainable-civicrm-ensuring-our-community-survives-and-thrives-years-come). Excellent news. I'll be sure to get along to that.

Thanks.  Two questions and a comment.

1. Although not specifically mentioned here, the "Part 1 Sustainable" blog from a few months ago listed LLC's current annual budget  at approx $550,000.   Would you mind placing this budget in historical perspective, what were the budget numbers in years past?

2. Michael modestly reminds us that his background isn't professional fundraising, but seems to be doing quite well for a part time  community manager - congats on that.   Consider that only part-duties of the part-time community manager job are marketing and/or fundraising, but look at the good results!   Consider also please that estimated % of budget listed above and dedicated to non-techncial job roles within LLC seems remarkably low.   Would re-allocation of more budget towards additional professional fundraising staff and/or grant writing experts produce even greater results?  Has this been considered? 

3. I agree with Nicolas and predict growth of the provider assocation will be slow.  Providers come and go for various reasons often out of CiviCRM's control.   I agree with Eileen that we need more Zing.

Our budgets for prior years has probably been a bit lower for the past few years (400-450K?),. We had OSI funding which helped support and fund the polish operations (michal and piotr), but that ran out. In the last year, the budget has grown a bit with coleman and tim joining the team some time back.

lobo

I really appreciate the transparency on the funding side. While I understand you are trying to do planning, and it is hard to keep multiple balls up in the air, I think it would be good timing to see initiatives and outreach aimed at different groups than those targeted as Partners like this list. After the big success of the Partners program, it felt like a bit of downer to learn that what we had accomplished is so far from meeting the identified need.

In particular, I think that regardless of what is happening on the fundraising side, a program to provide more appreciation and recognition to code and other sorts of community contributions would be a good way to build goodwill amongst a key audience. This is especially true for those organizations and persons who take on-going responsibility for 'core' activities, like bgm for internationalization, or the A-Team for the API. Who knows, it might even pay off in donations later. I get the sense that there are others who have stepped up, and just like JMA is now working on maintaining the Accounting Integration changes, others have taken responsibility for various chunks of functionality. Is this something that can be built upon to lessen the need for money for the core team (or let them focus on other things).

Secondly, there was some sense that there would be an ask made to organizations that use CiviCRM. I think it will be harder for the vast number of them to find and justify donations than it has been amongst Consultants, hosting companies, etc. Nonetheless, I was expecting to see a bit more of a proposed plan on this front.
 

It's too early to do significant planning much less any decisions, but I'm wondering if there are ideas floating around among the core team about how it could be restructured in various ways. For example, perhaps a consulting arm (new features, performance improvements), a CiviCRM Association responsible just for project infrastructure for dev, documentation, community, marketing, etc (along the lines of Drupal Association), a consulting service provider to consultants (along the lines of Acquia), if necessary a downsizing of the core team. Are there lessons to be learned from other open source projects about how they get the community to contribute more development resources to core development? 

How can we clone Eileen? Our dev trainings are doing a good job providing a on-ramp for people interested in helping more, but to clone others like Xavier, Erik, etc. we need to have one or two people like webchick (http://en.wikipedia.org/wiki/Angela_Byron).
 

So I guess, looking over my thoughts here, I'd like to broaden the conversation about the future of CiviCRM beyond just the expected funding gap in core team finances. Let's see some brainstorming about maturing as well as growing and differentiating parts of our eco-system, since that may help some in the funding discussion.

I think there are a couple of issues here - how we use resources within our community and how much resources we have available to our community. Joe, you are speaking to the first one of these here and there is definitely lots of scope to discuss this (although sadly I couldn't afford to be in London next week & can't take part). There is obviously also a need & a place for people to be acknowledged & credit given where due and I hear where you are coming from.

However, that aside, I think the truth is that we usually all want more not less from the Core team. Even if we take a more flexible view of the Core Team I don't think those people who provide significant 'community support' have the capacity to take on the unfunded core-team work as unpaid work. Your comments about cloning people are kind but actually we'd all love to clone Tim or Kurund & have the clone working full time on the project - we just don't want to pay that clone (we might be prepared to feed it).

So, if we want to maintain the current level of time going into managing, architecting fixing and leading CiviCRM than we currently enjoy, then we have a funding gap.

Which leads us to the question - why should anyone support CiviCRM?  It is software trying to compete with other open source and commercial software so why should it be deserving of charitable giving? Why should charities & community organisations that are scrimping every cent for their good works voluntarily pay money out towards CiviCRM? Don't they pay for the software by funding bug fixes? The consultants are the ones making an income out of CiviCRM - shouldn't they be the ones to fund it? Wouldn't we be subsidising their income and we are poor struggling charity-workers? Aren't there other products Charities could use anyway? Why should I give to CiviCRM when it still can't do X that I have been asking for for years?

While CiviCRM is Open Source software & faces some of the same challenges as other Open Source projects we have some unique ones. For our core constituents every dollar that goes on software & systems & CiviCRM is a dollar not spent on the cause they passionately believe in. While we may get some traction it's apparent reading Michael's blog that what the Physicians Health Programme, Zing, PTP & Scotland's Colleges all have in common is that they are not the end users. They are the organisations who are seeking to enable other worthy organisations.

I know that some of our organisations generate really significant amounts of money through donations. They have professional fund-raisers & maybe that would be a worthwhile investment for CiviCRM. I think however, that before we can generate real giving we need to figure out how to tell the story of how CiviCRM empowers grass-roots organisations in a really compelling way. It might be that we could try our MIHs through Pledge Me but instead of selling them as adding functionality it would be 'enable X organisation' to do Y with the whole story being about the end organisation.

If we are going to target the actual users then we should try to 1) pre-warn them, 2) do a specific targeted time frame (e.g one month) & 3) in a perfect world convince someone else to do a contingent funding. I'm prepared to put up $10 for the first 20 donors who donate to CiviCRM for the first time or set up a recurring contribution of $10 a month or more. So, if we had some more like that we might get an incentive going. Ideally we'd be able to see when helping on the forum if someone has donated.

Otherwise we are left with the Clayton's choice of Open Source software - pushing into Enterprise at the expense of our roots.

BTW- I see webchick has a Wiki page but not Lobo - who will volunteer to remedy that?

Eileen
 

Hi,

Putting aside the money topic, that is obviously needed to fund a core team. We need as well to get more code/test coming from outside the "paid civicrm llc core": I've been trying to focus more on the "recruitment" side of things and get more resources on board for a while. Some things (like trainings) did work, some (sprint in south of FR) not so much.

One of the issues I've faced is that people try to dig into the code but leave soon. It's partly due because the code is different than Drupal, but let's be honest, it's also because half of the core libraries are way past their expiration date.
 

It seems that our contributors are in general older than those in the RoR or drupal communities. Is this really a coincidence that only those that are old enough to have lived the start of PEAR can still stomach quickform and al?
 

I'm not sure we can completely get rid of all the technical debt, but it would be helpful to have a techno roadmap of where we want to go (eg. symfony/backbone/composer?) so we loose less new blood that run away thinking civi is developed in Cobol.
 

May be that Tim's session at civicon and the sprint after can help write that down. I feel it's needed to get more resources to have a clearer technical direction, and who knows, we might get new resources willing to help on reaching that goal.

Plenty to talk about for the sprint, as always ;) Looking forward to see some of you IRL again. Might be good we have a hangout for those that can't attend.

Tim has been kind enough to listen to my rants about the need for an architecture roadmap, getting rid of outdated components and updating our foundation for the future. So your plea is music to my hear, Xavier. Too bad I can't join you for the Sprint!

Worthwhile discussions!

First of all I agree with Eileen that we will always want more of the Core team. I do not think want is the issue here, it is ability to pay for. I think we should take that into account, in my opinion the core team should be as small as possible because:

1. the obvious problems with funding

2. if we have a bigger core team it is easier for community members to go to 'consume' mode as there is an unknown big institution (core) that promises to make life wonderful
 

I agree with Joe that we should look at more options to keep on funding CiviCRM. Most of the customers will not donate a hell of a lot, their money should go to making the world a better place. We might want to borrow their fundraising expertise in some kind of sprint the other way around? Also, we are getting some interest from big organizations with chapters/local offices in lots of countries. Would it be possible to talk to some of them and see if they would be willing to help us? I am talking about Wikimedia, Amnesty International, MAF, Oxfam etc.

And could we not use a consultancy organization to generate funds? It could be non-profit, that donates all their reserves to the CiviCRM core team, or alternatively all employees spend part of their time on maintaining core, documentation, tests etc.

 
 

One things that would give me pause about encouraging people to donate to CiviCRM is the policy around supporting users who can't keep up with the technology. I am running CiviCRM on PHP 5.2.3 & as long as I remove the civicrm version check everything works fine. Ditto the decision to drop support for drupal 6 agressively is inconsistant with the reasons I see CiviCRM as a  important contributor to supporting democracy & communities (because it enables small organisations to do their part).

But this comes back to that Clayton's choice of who can pay vs who deserves.