Iterating towards a more sustainable future for an independent WP-CLI #2743

Closed
danielbachhuber opened this Issue May 12, 2016 · 28 comments

Projects

None yet
@danielbachhuber
Member
danielbachhuber commented May 12, 2016 edited

A problem that's been on my mind for a while:

how do I reduce WP-CLI's bus factor, and more generally lay a foundation for WP-CLI's long-term organizational stability?

WP-CLI is hugely important to the WordPress ecosystem. Thousands of developers use it on a regular basis, and tens, if not hundreds, of companies have integrated it deeply into their business processes. Additionally, I deeply value WP-CLI's a-commercial nature (e.g. not necessarily based towards or controlled by a specific company), and think said nature is in large part why WP-CLI has seen the success it has. I am biased towards doing whatever I can to maintain WP-CLI's a-commercial nature going forward.

WP-CLI is also solely maintained by me on a (mostly) volunteer basis. While I don't see this needing to change anytime soon, it is a bus factor I am very cognizant of. Furthermore, we haven't ever had a problem with it, but it would make me feel better if there was a formal organization backing WP-CLI to deal with any trademark difficulties, legal challenges, etc. that might arise in the future.

Prompted by (hugely valuable) research and blogging @nayafia has been doing, I thought it might finally be time to turn thoughts into more of a public discussion. If you'd like to weigh in on specific questions, here are a few:

  • Is there a certain type of legal organization structure we (I, along with @scribu and @andreascreten if they want to be involved) should considering forming to ensure the long-term health of the WP-CLI project? Our current governance is essentially nil.
  • Would taking donations, sponsorship, etc. through a service like OpenCollective positively contribute to the long-term sustainability of WP-CLI, or negatively impact the project because money has become involved?
  • What other open source projects can we learn from, and why?

I'm also interested in thoughts and opinions on the topic broadly, if you have input that doesn't relate specifically to one of these questions. To pre-empt that too β€” even if I may disagree with your opinion, I do very much value your input.

Personally, I have mixed feelings about getting paid directly for maintaining WP-CLI. By "paid directly", I mean a company donates to WP-CLI as an entity, and I take money from that. One hand, I do like the idea of getting paid to contribute to WP-CLI. But, on the other hand, there are a variety of reasons why I feel uncomfortable about it. For instance, I stand on the shoulders of giants, and think it unfair to make money on what others have volunteered their time to produce. Also, while I can comfortably donate ~5 hours/week of time from my own business towards WP-CLI, I'd feel uncomfortable to consider maintaining WP-CLI a profitable venture (which is what it would need to become if I spent more time on it).

Consider this to generally be an open thread, although we may need to conduct the conversation through some other means if it gets unwieldy.

@scribu
Member
scribu commented May 12, 2016

I've heard that businesses find it easier, from a legal perspective, to buy a service than to make a donation. Not sure how true it is.

@javorszky

I really like Ghost's setup legally. To summarize: http://john.onolan.org/what-it-means-to-be-non-profit/

@rosswintle
Contributor

I've often wondered about this. WP-CLI is incredibly valuable and yet seems to be maintained by a small number of people (i.e. mostly you). This means that both a) its future stability and development is not assured (as much as you are committed to working on it) and b) as it has such value it could almost certainly be monetised.

While your goal to be a-commercial is noble, it has often seemed to me that some form of commercialisation is desirable for you, for WP-CLI users, and for the project. So I wonder why you are so against it?

I would point to Laravel and Taylor Otwell's businesses as a great example of how this can all fit together. Laravel is very open source, has a great community, and is in itself essentially a-commercial, but Taylor and other key players in the Laravel space have built up a load of services around Laravel that make use of it but that are commercial (Forge, Envoyer, Laracasts and, more recently, Spark).

Having these money-making commercial asides gives me confidence that there will be resources in the future to support Laravel's development without the a-commercial nature of Laravel itself being compromised. I like this model.

I don't know if WP-CLI is big enough in itself to build up it's own eco-system of stuff around it as Laravel has, but I like the way that Laravel is looked after.

@danielbachhuber
Member

While your goal to be a-commercial is noble, it has often seemed to me that some form of commercialisation is desirable for you, for WP-CLI users, and for the project. So I wonder why you are so against it?

Just so I'm clear, it's really about comfort-level.

At this point, I don't personally feel comfortable directly financially benefiting from the codebase on https://github.com/wp-cli/wp-cli. I also don't feel comfortable profiting from the WP-CLI brand / trademark, because I don't feel like it's mine to profit from.

With that being said, I do feel perfectly fine charging someone to write a WP-CLI command for their data migration, etc.

I would point to Laravel and Taylor Otwell's businesses as a great example of how this can all fit together. Laravel is very open source, has a great community, and is in itself essentially a-commercial, but Taylor and other key players in the Laravel space have built up a load of services around Laravel that make use of it but that are commercial (Forge, Envoyer, Laracasts and, more recently, Spark).

Good example, thanks.

Because I didn't mention it in the original issue, it's worth noting I do have an early-stage WP-CLI-based commercial venture in the works. However, because I'm giving code away for free, the business model seems like it's going to be enterprise-level support to begin with, and we'll see if that can lead to a sustainable business. It's going to be a long way from here to there.

@xdamman
xdamman commented May 12, 2016

(...) key players in the Laravel space have built up a load of services around Laravel that make use of it but that are commercial (Forge, Envoyer, Laracasts and, more recently, Spark).

Having these money-making commercial asides gives me confidence that there will be resources in the future to support Laravel's development without the a-commercial nature of Laravel itself being compromised. I like this model.

I like that too.

In a way it's a bit like freelancers getting together and putting some percentage of their income to build common tools that will benefit their group (such as a central way to manage billing, rent an office together, etc.)

Now do s/freelancers/companies and s/common tools/open source.

All the "money-making commercial asides" that make use of WP-CLI and benefit from it (i.e. make money) should contribute to a collective with the purpose to maintain and improve this tool common to all of them (it would be great to have someone making money out of WP-CLI to chime in this conversation).

Then you shouldn't feel bad (or at least less bad) to take that money because it's basically money that was made possible in the first place partly thanks to this code. And it's money that would be set aside for the purpose of maintaining this project.

@kingkool68

What if you solicit donations through something like www.patreon.com and use the funds to direct future development and features.

@clovepod

I've heard that businesses find it easier, from a legal perspective, to buy a service than to make a donation. Not sure how true it is.

I think this is very true. I work for a large-ish software company and I use WP-CLI for our intranet infrastructure. It is actually difficult (but possible) for us to even get our software purchasing department to understand the concept of paying for annual support of an open-source product, and we can't expense anything software related if we pay for it ourselves, because the software purchasing department needs to have control over the licenses we agree to, from a legal perspective. So while I am sure my management would be on board with the idea of financially supporting software that I rely on, finding a way to actually get company funds in your hands would be next to impossible in a donation setup. Now, a support subscription would be far easier to manage. We did that with a couple of premium plugins and that should have paved the way.

@gilbitron
Member

I don't think there is anything wrong with you making money from WP-CLI via your separate commercial venture. That's a perfectly normal way of profiting from open source work (see Taylor Otwell's side businesses).

Having some form of organisation in place to protect the long term development of the project is a separate issue. I think the WordPress/Ghost non-profit structure seems to work well. Setting up and running an org like that would be a time suck though, so you would need to be sure the WP-CLI project justifies it.

@danielbachhuber
Member

Then you shouldn't feel bad (or at least less bad) to take that money because it's basically money that was made possible in the first place partly thanks to this code. And it's money that would be set aside for the purpose of maintaining this project.

@xdamman What examples have you seen so far for equitable uses of that money? I don't have any concerns about WP-CLI's ability to raise money; I'm most concerned that any money raised on behalf of WP-CLI is used equitably.

Having some form of organisation in place to protect the long term development of the project is a separate issue. I think the WordPress/Ghost non-profit structure seems to work well. Setting up and running an org like that would be a time suck though, so you would need to be sure the WP-CLI project justifies it.

@gilbitron Maybe I'm making a mountain out of a molehill? Do you think WP-CLI needs formal representation with an organization?

@gilbitron
Member

@danielbachhuber I'm not saying WP-CLI doesn't need formal representation with an organization (I think it's a good idea), maybe just not yet? I'm just playing devil's advocate and wondering if an org would be more of a distraction than a benefit at this point.

@danielbachhuber
Member

I'm not saying WP-CLI doesn't need formal representation with an organization (I think it's a good idea), maybe just not yet? I'm just playing devil's advocate and wondering if an org would be more of a distraction than a benefit at this point.

That's a totally fair point.

To be honest, I don't actually think WP-CLI needs formal representation at this current moment, but it would be nice to have six months from now. Given I'm starting a related for-profit venture, one reason I bring it up now is that I'd like to make sure there's a clear line between WP-CLI and runcommand, and that WP-CLI lives on regardless of whatever happens to runcommand.

@andreascreten
Member
andreascreten commented May 13, 2016 edited

Thanks for looping me in here. I am happy we are having this discussion.

In my opinion it makes sense we set up some kind of a legal structure that can accept donations / payments for subscriptions for WP-CLI. The money that comes in in the organisation can than be used to invest into the further development of WP-CLI or building the community around it.

The question is off course is if it is acceptable to pay a certain person for their contributions as other persons would contribute without any compensation. I think it does make sense to pay 2-3 maintainers on a per month basis for their contribution (fixed fee). Their tasks could include answering issues, reviewing pull requests and doing maintenance work/cleaning up. Like Daniel says he does not mind donating ~5 hours/week to WP-CLI, those hours could be considered extra, uncompensated and used for new developments.

Besides that there is an other big job to be done in such an organisation: marketing. I think we need to improve on this side so that everyone knows what WP-CLI is, why they should use it and how they can contribute. We could hire someone to do some design work (fancy cheat sheet, presentation), maybe even make a real logo. An other thing we should be doing more, is reaching out to plugin developers to write commands for WP-CLI.

As a business owner I can confirm that our accountant does not like the word donation. As suggested earlier in the thread I think the organisation should give companies the option to buy a subscription. It needs to be very clear to a company why they should do it, and there should be different pricing options. When I take a look at the pledges for the kickstarter campaign Daniel did I think there clearly are some companies that are willing to support this kind of model (even without getting anything in return like we did).

I would be very happy to support at setting up a legal structure. An other option is to do it through one of my companies and to be very transparent about the ins and outs. This might be a good solution on the short term as setting up a legal structure can be quite a hassle (we also need to decide where we do it).

It might be a good idea to organise a call about this with those interested?

At the end the goal is to become a stable platform, that can be trusted by anyone for continuity and stability.

@NateWr
Contributor
NateWr commented May 13, 2016

Just putting in my perspective as a small solo operator: I would happily donate or kickstart whatever small amount I'm able if there were a way to do so. If there were an affordable subscription for independents and that's an easier/better model for you, I'd happily consider that too.

(off topic: ditto for the REST API or any other valuable infrastructural projects that are excluded from core for one reason or another.)

@andreascreten
Member

(off topic: ditto for the REST API or any other valuable infrastructural projects that are excluded from core for one reason or another.)

You make a good point there, is there an option to get WP-CLI into the core? That sounds like the best option to me off course, or is that unrealistic?

@andreascreten andreascreten reopened this May 13, 2016
@danielbachhuber
Member

You make a good point there, is there an option to get WP-CLI into the core? That sounds like the best option to me off course, or is that unrealistic?

In an ideal world, this (the WordPress Foundation being a legal protector of related open source projects) makes total sense to me.

Given the WordPress Foundation's current governance structure and operating style though, I'd unfortunately be strongly against the idea at this point.

@danielbachhuber
Member

Besides that there is an other big job to be done in such an organisation: marketing. I think we need to improve on this side so that everyone knows what WP-CLI is, why they should use it and how they can contribute. We could hire someone to do some design work (fancy cheat sheet, presentation), maybe even make a real logo.

On a related note, I would love, love, love to:

  1. See volunteers regularly contributing to documentation / marketing efforts
  2. Be able to hire someone to do a proper design for the website.
@joeguilmette

Are there any other organizations that can server as a model?

I can't think of any WordPress projects that are funded by donations - in fact all I can recall are examples where this model has failed. Outside of WordPress there are of course many projects supported by donations and pledge drives and so on.

@rosswintle
Contributor

Another thought: sponsorship could work if you can maintain a-commerciality along with it. e.g. I like how LetsEncrypt is funded by a group of organisations with an interest in making the web more secure. It seems obvious to me that commercial entities making use of WP-CLI would want to secure its future and so opportunities to fund it would probably be taken up.

@xdamman
xdamman commented May 13, 2016

Setting up and running an org like that would be a time suck though, so you would need to be sure the WP-CLI project justifies it.

Indeed. It doesn't make sense for each open source project to reinvent the wheel and create yet another legal entity that needs to be maintained.

An other option is to do it through one of my companies and to be very transparent about the ins and outs. This might be a good solution on the short term as setting up a legal structure can be quite a hassle (we also need to decide where we do it).

That's exactly what OpenCollective is doing. It keeps tracks of all the ins and outs in a very transparent way so that the entire community can see. We can either host it on our own legal entity or we can host it on someone's legal entity.

See for example https://OpenCollective.com/yeoman
You can see that they spent money for stickers and servers.
It's still early days and our goal is to have more open source projects to learn and share the results with others. If you are up for it, we would love to also have you onboard and figure out with you those challenges around how to spend the money. I'd see this as an experiment and an opportunity to contribute to the larger debate of how should we find open source projects to make sure they can be maintained and have a larger bus factor. It can not only helps WP-CLI but the learnings will also help the open source community at large. It feels like we haven't made much progress on those questions in the past 10 years (if not more), and it feels like the best way to make progress is by trying and be transparent along the way and share the lessons.

Paying designers to come up with a great logo and design for the website is a great use of the money imho.
I also like the idea of @andreascreten of giving a fixed monthly amount to the core developers for the maintenance. That makes a clear distinction between contributions which are not paid and maintenance of the project.

@ahmadawais

@danielbachhuber Huge props for your work at WPCLI as the current maintainer of the project. I have it on my to-do list to contribute to WPCLI project, I am a terminal junkie and absolutely love WPCLI. Over time, I have built certain routines to go along with my workflow.

As far as the sponsorship is concerned, I think the best way to go about it is KickStarter as well as asking for one or two agencies to sponsor design of the new site.

@davidlaietta

@danielbachhuber Echoing some of the sentiments that I had on Twitter:

The Kickstarter route proved that there are people who are willing to donate to you working on this, but a one-time donation drive isn't sustainable, and something more longterm is required.

Corporate sponsorships could be a way to go, but my concern there is transparency and oversight. What would stop you from making decisions that would favor a specific host or sponsor based on the amount that they donate? That said, if that hurdle is cleared, it would be in good interest of popular WordPress hosts and development firms to help fund ongoing work.

On the legal side, I imagine that it would be easier for most companies to sponsor the "WP-CLI Foundation" than directly to you. Definitely something to consult a legal expert on.

@piamancini

Hi, I'm Pia from OpenCollective,

The Kickstarter route proved that there are people who are willing to donate to you working on this, but a one-time donation drive isn't sustainable, and something more longterm is required.

I agree, and that's why we default for monthly donations. We are trying to help oss get recurring funding on a sustainable and transparent way. Some projects like Yeoman are using it for swag, and servers, while other like MochaJS are using it to pay their maintainers, or Chimp that they want to use the money to pay specifically for new features they are not able to build with the current contributors' time.

One idea, is we can give it a try. From experience we'll see how useful it can be for this community. Deciding how to spend the money is the trickiest part. A hack is to post an inssue with the proposal and ask for +1/-1... I know it's rudimentary but might give you a sense on where you are standing.

lmk, happy to set one up for you to pilot

@danielbachhuber
Member

Just to keep everyone here in the loop, @andreascreten and I had a Google Hangout today to chat on this topic.

I gave Andreas a bit of background for why I started the Github issue thread. Primarily, I'm concerned about my own bus factor when it comes to the long-term sustainability of WP-CLI, and think it wise to start taking steps to proactively solve the bus factor of me.

I also talked Andreas through what I've been doing the last few months to try to increase the number of contributions to WP-CLI. Specifically, fleshing out the documentation portal, and identifying "low hanging fruit" issues in the backlog. I've seen an increase in drive-by contributions (e.g. someone has an hour free and picks up an issue) but haven't yet see a noticeable increase in regular (e.g. weekly) contributors.

We came to the conclusion that creating a formal organization is too much effort at this time. Instead, we want to form an advisory committee of ~5 or so to provide a sounding board for the long-term sustainability of WP-CLI. Our more immediate action item is to identify those who we'd want in this advisory board, and draft an invitation letter.

Andreas may also visit Vienna on Thursday, June 23rd so we can meet in person.

@danielbachhuber
Member

For those following this thread who missed the tweet, I posted an update to the blog earlier today: http://wp-cli.org/blog/future-wp-cli.html

@brainwane

At this time, we don’t have plans to establish a legal WP-CLI organization. We’ve decided the operational complexities exceed the benefits.

Have you considered the more lightweight option of becoming a member project of a "fiscal sponsor", an umbrella nonprofit that would take care of the paperwork/admin complexity, such as the Software Freedom Conservancy?

I'm going to mention a few options here just in case it's useful to you for this project or other open source projects facing this sort of question. A good place to find more is to check out http://conferences.oreilly.com/oscon/oscon2013/public/schedule/detail/29249 and the slideshow (ODP file) linked from that. The three fiscal sponsors that I hear about a lot and that aren't programming-language-specific or framework-specific are:

  1. Software Freedom Conservancy: https://sfconservancy.org/members/apply/
    prerequisites: project ongoing for ~ a year? established project. A license that's FSF-approved and OSI-approved. Evaluation by Board of Directors.

  2. Software in the Public Interest: http://www.spi-inc.org/projects/associated-project-howto/
    prerequisites: License that meets Debian Free Software Guidelines, and evaluation by Board of Directors.

  3. Apache Software Foundation: https://incubator.apache.org/incubation/Process_Description.html
    prerequisites: more, including following the Apache Way and going through an incubator process. Takes quite some time. https://incubator.apache.org/faq.html

Separately: I wrote a blog post you might find useful, called "How To Improve Bus Factor In Your Open Source Project". From a quick glance at your pull requests, you're already taking care of one of the biggest things, which is getting back to contributors quickly and nurturing new and continuing contributors. And my post "What is Maintainership? Or, approaches to filling management skill gaps in free software" may be helpful as something to throw into the discussion -- I think you're already doing the "sustain" approach and adding some discussion and encouragement around the "skill" path might be helpful (I may well be wrong as I don't know your community well).

Hope at least some of this is helpful!

@danielbachhuber
Member

Have you considered the more lightweight option of becoming a member project of a "fiscal sponsor", an umbrella nonprofit that would take care of the paperwork/admin complexity, such as the Software Freedom Conservancy?

I've considered it briefly but haven't researched it much. If we were to go down some formal route, I'd certainly explore this option at depth to see if there is a likeminded / compatible organization.

Hope at least some of this is helpful!

Very much! I'll digest this at depth when I have some time, and as our efforts evolve. Thanks!

@xdamman
xdamman commented Jun 30, 2016

We are also happy to offer fiscal sponsorship if that helps. If you'd like to apply: https://opencollective.com/opensource/apply

What we offer:

Only condition is to have at least 100 stars on Github and at least 2 contributors.
You can also change the fiscal sponsor anytime (in fact, we would love the Software Freedom Conservancy, SPI, Apache Foundation and others to also use the platform that we are developing in open source, the goal is to streamline this concept of fiscal sponsorship and ensure transparency. If you know people there we'd love to get in touch!)

@danielbachhuber danielbachhuber added this to the 0.24.0 milestone Jul 20, 2016
@danielbachhuber
Member

Thanks to everyone who took the time to weigh in on this.

At this point, my priority is to increase the size and involvement of the contributor base. Once I feel more comfortable with where it's at (maybe 6-12 months from now), I'm going to reopen the idea of a more formal organization / financing the hard work involved with maintenance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment