How code contributions to Drupal get funded

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
catch's picture

I'm following this up a bit from effulgentsia's post in this group about Acquia's influence, as well as some of the burnout discussions.

I'm mainly interested in core and the largest contrib projects here. However if I missed something feel free to expand scope a bit - I might edit stuff in if I miss it.

To start with, going to list the various ways I can think of that contributed work gets funded, in the second post I'll point out some of the ways I personally have been. The idea of this post is to look at the general ways that people's time finds it's way to working on core - both in terms of sustainability of contributions, and the ways that this might lead to particular kinds of influence on the core process.

Sleep
Contributing as a hobby, on top of regular work hours. Otherwise known as "instead of sleep". Not really funding of course.
Guerrilla contributions
Contributing as a replacement for facebook/ebay/solitaire while bored at work. This might potentially get you fired since you're technically getting paid to do something else, but it might also land you a nice Drupal job. If you have a Drupal job you may well check the issue queue in quiet moments and that sort of behaviour is probably why you were hired in the first place - i.e. if you're not doing it in the middle of an emergency or meeting then no-one's going to complain.
Against freelance hours
Take less paid work so you can spend time on core (assumes you are working hourly/as a contractor). This is not much different to 'free time', and may happen alongside it.
Career building/professional development
Working on core or contrib as a substitute for formal training and/or as a 'portfolio' to get a better job.
Community time
Several Drupal shops give one day a week (or some other amount of time) for contributions. This is the full timer version of 'against freelance hours' except the company is sponsoring it as opposed to an individual just cutting their own paid workload.
'Day job patches'
You are doing your normal day job, and run into a bug. So you file a patch for the bug.
Day job modules
You build a module for a client, and put the code on Drupal.org
Module as product/business lead
Company develops a contrib module or distribution specifically to drive business to them so pays for people to work on it. (I would put this in a slightly different category to contributing code in the hope of getting a job since that's a lot more indirect).
Sprints
Someone with budget pays for flights/accommodation for several people to work on a particular thing for a week, doesn't usually pay for their time.
Direct funding for focused improvements
Someone with a budget has a particular issue (internationalization, scalability, accessibility, new feature) they would like to be worked on, so they allocate a budget for work directly on a contrib module (or set of contrib modules, or core). This is usually time-limited.
Reverse bounty
Put up a Chip-in and try to encourage people to fund something you think is important
Long term sponsorship of work
Something is so central to a company's needs that they pay someone over a long period to work on it.

Comments

OK so my own contributions

catch's picture

OK so my own contributions have come mainly from the following places:

Sleep :(

Guerilla contributions. When I first started working on core, I wasn't doing either Drupal nor even web jobs. I managed to persuade two different jobs to let me set up Drupal for internal sub-sites so I could play with it on work time, and some (quite a lot of) core patches got reviewed in the process. I now get paid hourly so that particular source of 'funding' is no more.

Have not actually worked anywhere with regular community time, this is mainly due to always working for Drupal shops in different countries - so I'm pretty much always a contractor even if 'full time'.

Against freelance hours. Pretty much since I started doing Drupal work I've tried to keep hours as low as practical to allow time for core, this has probably worked out in the long run in that my rates have gone up several times over that period (not sure if that would've happened the same way if I'd been focused on billable work entirely).

Career building. When I first started working on core I had no intention of working on web sites for a living, but did use it as a way to pick up PHP. Much later on I realised it was potentially leading to a career change (but was still mainly doing it to learn, same as now). Once I actually started doing Drupal work, then I justified working 20 hours/week based on the fact that getting better at Drupal via core contributions would end up getting me better work (which worked out a lot better than expected, wish I'd realised that about three years earlier than I did).

Day job patches. At Tag1 there are quite a lot of these since we're dealing with very large sites, and large sites still hit scaling issues with both core and contrib. Examiner there was quite a few between performance and general bugs (especially since that was mostly built before Drupal 7 was even in beta), did not have many when doing more general freelance work though. Since I've got more experienced, I've actively sought out jobs where this was likely to happen (see previous point).

Product/business lead - nope.

Sprints - I've attended two sessions of formal usability testing, and one taxonomy sprint at the Field museum in Chicago. in all cases expenses were paid but my time was completely donated.

Direct funding. Some day job patches have morphed into larger core projects: WebWise (a Tag1 client) partly funded the DrupalCacheArray patch, especially backporting implementations to Drupal 6/Pressflow. Acquia funded myself and Jeremy to work on the memcache 6.x-1.9 release via Tag1. Sony funded myself, Nedjo and Stella to work on i18n improvements in Drupal 6 via CivicActions. This is the point where under normal circumstances it would raise flags for me about corporate sponsorship, but in all these cases they have been the most 'pure' in terms of actual engineering - i.e. trying to make things work for everyone, so that's a tricky line compared to the 'day job patches' from that angle.

Mine

Michelle's picture

I don't work on core, but I have a couple fairly popular contrib modules and am about to dive into one that I hope will be very popular. :)

For me, much of it "Career building/professional development". I consider the 6 years I've spent working on Drupal, where 90% of it was unpaid (I did do a smidge of freelancing for a while), to be Drupal University. I'm building knowledge and community karma which will be useful when I'm ready to start sending out my resume, assuming this doesn't all go poof before then.

A big part of it, though, is simply the joy of helping others. That's a payment of sorts, I suppose. When I write something someone finds useful, that's a boost. When I solve someone's problem, that's a boost. I can't buy food with it, but it's spiritual food.

Michelle

i don't work on core, but

dasjo's picture

i don't work on core, but follow the discussions, tweet about things that seem to be interesting, teach drupal while traveling or just help fixing module bugs when developing with rules for example

I've been a member of the

webchick's picture

I've been a member of the core development team for a little over 6 years, of which:

  • ~3 months I was freelance (hope to never make that mistake again ;))
  • ~9 months I was with CivicSpace Labs, where I was directly funded to work on specific improvements to both core and contributed modules.
  • ~5 years I was with Lullabot, where most of my work came under the banner of "Community time" which Lullabot was extremely generous about, particularly my time as co-maintainer during the D7 development cycle.
  • ~3 months I've been with Acquia, where 100% of my time is spent on Drupal core, Drupal.org, and general Drupal community stuff.

Here's how my contributions break down, according to your list:

Sleep
Always. :P However, it's important to note that you don't have to sacrifice sleep to make a substantial impact on core. Some of us just love it that much. :) Even if you only do one patch review every so often, every little bit helps!
Guerrilla contributions
I've always done a lot of this, too. Patch reviews are a fun, productive way to fill odd times between phone calls or to use as a distracting alternative to bashing your face into the table on a tricky problem.
Against freelance hours
Definitely when I was a freelancer. Except I wasn't smart enough to take on less work, so instead I just didn't sleep. Have I mentioned I hope to never make this mistake again? ;)
Career building/professional development
No, never intentionally. Though it's pretty hard to avoid your career taking off a bit if you show yourself to be one of the chief doers in a do-ocracy.
Community time
Both Acquia and Lullabot have this. Acquia does "gardening days", aiming for 20% time, while Lullabot initially aimed for 50% time though later cut back as that became impractical. This investment by my employer was a huge life-saver, because it meant that I could maintain a steady income, but still do the important things for Drupal that needed to get done. It didn't help me sleep any more, of course, but that was my own choice. :)
'Day job patches'
Yep, tons of this, at all phases of employment. I don't actually understand how people fix bugs and don't do this. What a waste of time! Why smash your head in a dark room alone when you can call on a community of thousands of people to help you fix something? :)
Day job modules
Yep; some of them people have probably even heard of! I very rarely make a module that isn't for a client. I hate maintaining modules. :) It's lonely and isolating work, unlike core which is tons of engaging with people and learning new stuff constantly.
Module as product/business lead
I don't really understand this one, so I'll have to go with no.
Sprints
I've been sponsored by all employers to attend sprints at one point or another, most occurring at DrupalCons, my attendance at which (apart from the first one in 2006) have also been paid for by my employers.
Sprints
I've been sponsored by all employers to attend sprints at one point or another.
Direct funding for focused improvements
Yes, in Drupal 4.7, CivicSpace funded me to write the Form API reference, and in Drupal 5 I was among the team at CivicSpace who built the graphical installer for Drupal 5. Both Lullabot and CivicSpace also funded a bunch of Drupal X to Y upgrades for contributed modules.
Reverse bounty
Never. And I've seen those go really, really badly in this community.
Long term sponsorship of work
Yep. This is my current gig at Acquia, where maintaining core and coordinating with core developers is part of my actual job description, and I get to work with the leadership team to set the vision around what things to prioritize each quarter. It's really amazing to go from squeezing core work in primarily between phone calls or client stuff (or instead of sleeping or spending time with my wife) to being able to dedicate 100% of my attention and focus to maintaining core and other big, important stuff for Drupal and the Drupal community. I'm so, so, much happier now, even though I sleep about the same amount (again, by choice ;)). I also think that Drupal has grown to the point where it really needs someone to be able to dedicate that kind of time (or maybe 10 someones :P), so I'm happy I can help in that way now.

Most of my contributions

seutje's picture

Most of my contributions would fall under "sleep", but some (especially at my previous job) were guerilla contributions and day job patches.
I generally don't do much day job modules, mainly cause I don't wanna maintain them, but I have some stuff on (gist.)github.com that would fall under that category, albeit mainly jQuery plugins

Haven't really done much core work lately, which has a lot to do with the fact that I have less spare time at my new job and the fact that the politics involved make me ... well, not wanna do it...

I've also moved in with a really non-technical roommate, whereas I used to live by myself, so there's less "bored" time to fill...

Usually, I'll write/patch something at work cause I need it, and then make it commit-worthy on my way home or at home.
My main contributions nowadays would be IRC support, which I usually do during downtime at work, like when I'm checking out a repo or when I'm waiting on Photoshop to be done crashing :P

Hello catch.There are more

oskar_calvo's picture

I think that it's not good to make comparison.

Freelance works that share with the community usually is a bigger step than the same work make by a professional from a big company.

Oskar

@oscar_calvo - this isn't

catch's picture

@oscar_calvo - this isn't about comparing various people's contributions, it's about understanding where the time that gets spent for those contributions comes from and how it may or may not be paid.

Simple

sun's picture

Against freelance hours: My entire core contributions were based on this. Most of my time was spent on reviewing work of others, ensuring that no shit hits the fan.

Day job patches: I once believed this would be possible for Drupal core, but turned out to be the single biggest misbelief ever.

Unless Drupal dramatically changes how core is maintained this won't be the case anytime soon, and core is slowly but surely reaching clinical death.

Core has no lack of contributors. Core is lacking maintainers who're able to review, rate, and correct all the s...tuff being contributed, and who understand the consequences of their changes. The current handful of people who're capable and actively doing this are anything but sufficient to cope with the load.

Daniel F. Kudwien
netzstrategen

Mixed

chx's picture

I am sure others are able to delineate their days better but the way it happened for me, we kind of agreed on some core time and we had deadlines for tasks and then I worked on some task and on core meanwhile and even slept whenever I could. So I guess the answer is sleep / Guerrilla contributions / Community time stirred in a pot but it was not until my last months at Examiner we actually set aside a day for core work.

sprints also kind of happened. NowPublic (and even more so Examiner -- bigger the company, more the money, who would've thought?) springed for the plane ticket and then we solved lodging one way or another.

This is an extremely

linclark.research's picture

This is an extremely important discussion to have when it comes to planning for Drupal's sustainability, thanks catch for all of your insightful posts around this topic.

For me:

Sleep / time with partner
I added time with partner because I know that there are others who sacrifice this as well. I took a position that's 20+ hours of travel away from my partner to be able to work on Drupal contributions as a sizable chunk of my "day job". This means that the time I would usually spend with my partner at night is spent contributing instead.
Guerrilla contributions
This is how I started. I convinced my office to use Drupal for its CMS backed sites. Then I found a "job" where I didn't have to do it guerrilla anymore.
'Day job patches'
I've been able to do a number of these and was able to fund an intern to work on more.
Long term sponsorship of work
I'm on a student stipend for a research masters and I'm allowed to focus on Drupal with my work, so I guess you could call that long term sponsorship. I'm given a whole lot of freedom as far as what I work on, though, since I'm not working in the traditional client service role.

I am interested but ...

Sree's picture

Sleep :
Yes, most of my contributions fall under this category.

Module as product/business lead
Yes, I worked on developing few frameworks with some big branded companies built using drupal.

When it comes to Professional part: I wrote a lot of modules (integration interfaces, extensions etc), patches etc which purely had some contractual obligations with our clients to contribute back to the community. In general, Most of the employers in India dont sponser for events, community contributions etc - DrupalCons, Modules, Patches etc.
So, here people hardly get a chance to explore such areas.

Sree