To App or Not to App?

I started to answer this question with a discussion of my own motivations for module development. They are many and varied, but they pretty much all come down to me either having an idea and some time or me getting paid to make time for an idea. However, I realize a person's motivations for writing his or her intangible "Drupal App" don't really matter if a particular motivation can co-exist with the existing model of community module development (whether it's evil or not, ignored or not, mirrored or not)... and ultimately I didn't want to do Robert's problem solving for him on what that could look like.

I then decided to take the angle of problems with the architecture of Drupal modules vs. an App store model, current support and maintenance channels, and a host of other problems I see with the idea of Drupal apps. Some points were established elsewhere... Yes, we can't really sell modules. Yes, people are selling themes. But no, I don't think selling "Features" would work... or at least I don't think it would be good for the consumer.

The traditional "App" (I hate that word - really? are we selling full applications?) must encapsulate its functionality, and it can't be effectively supported if its innards are free to be customized and mixed in with (i.e. broken by) other modules. This lack of interoperability between paid plugins on other platforms was actually quite a shock to me at last year's CMS Expo and is a big weakness. It also increases the development burden on the "App developer" making it a net loss for the consumer and provider. (Really, I saw an e-commerce plugin baking in its own Views system.) In fact, the only person I see getting a good deal is the "App distributor."

But I digress... these are just software / social engineering problems. If distributors really wanted developers and consumers to buy into their distribution models, they just have to provide solutions for these things. Once again, I'm not trying to do anyone's problem solving... unless they want to cut me in on their good deal.

What an App Store won't solve

I think other threads of this conversation have been dealt with adequately elsewhere, and overall I think an App store could work if all caveats are accounted for and the store's success is mitigated enough by the strengths of drupal.org to not blast holes in the community development model we currently have. One thing I don't see getting a lot of play in the discussion, though, is whose problems an App store wouldn't solve. I've been thinking about this since taking part in the discussion with ICanLocalize (sorry, can't find the link).

A paid distribution channel will not provide you with the time or money to code or support your module. You still have to make the initial investment in time or money to get your "App" written, and long before you're turning a profit you'll need to be proving your intent and ability to support your product. If you then rely solely on distribution fees to recover your investment, you're relying on the wroooong license to get 'er done. If you intend to bundle support and maintenance with the distribution, I just need to point out again... this is first and foremost a good deal for the distributor unless he turns your App into Angry Birds.

Really, though, this is freaking Drupal... all we need is for enough interested people to build an installation profile for paid module support. Does that mean every module's support would go behind a paywall? I sincerely doubt it, as again, developers still have to prove their competence to support their project to non-paying new customers to convert them in the first place. They're also not the only ones who support modules on d.o... every one of their users is a potential support provider.

I do think that publicizing intentionally scaled back support in the absence of a paid distribution channel is not a good way to win hearts and minds. You don't have to say it, just do what you need to make money and offer premium support for people willing to pay for it. There are also other ways to build support around your module in the community, whether it's a bug squad or a sponsored development sprint.

Leaving module developers behind

Finally, something that just hit me... the only "Apps" I see as being viable at present are SaaS plugins and themes (thanks to licensing opportunities). Others see distributions and Features-esque configurations as viable. Perhaps there are still other viable options, but at the end of the day, none of this translates into dollars to fund the module development that any of these products depends on. And isn't that what started the conversation in the first place? Are we trying to figure out how to support module developers, or are we looking for a different way to make money using Drupal + contributed modules beyond professional services?

Topics: 

Comments

I'd agree an app store isn't really the right way to fund module development. There also seems to be a bit of 'me too' about the suggestion. "Every body else has one, even Wordpress has one! We should get one!". However, paying developers can lead to a more professional, more polished and better supported product. It certainly leads to happier developers :)
There are of course ad hoc mechanisms for paying drupal devs already. Drupal shops that out of enlightened self interest have their employees work on drupal core and contrib; companies that fund specific features etc, and the Drupal association is providing some developer funding.

There is no one *right* way to fund developers, but I think if we want to take that a step further we'll need to brainstorm, design and build our own solution. A knee-jerk app store is not the Drupal way to solve this issue.

One thought - a donation widget on every project page, with the money held and ring-fenced by the Drupal association, and dispensed after discussion with module maintainers. Too beaurocratic?

I thought the observation that the app store would make money was right on. It's sort of like stock markets: it doesn't matter if the stock prices go up or down, the stock brokers and bankers still make money. It doesn't matter if Apple developers make money, Apple's app stores still make huge profits for Apple. I wonder how much of the push for a Drupal "app" store is being made by those who stand to profit from the store, not from the apps themselves?

What about taking an approach like CiviCRM where the developers have donation rounds to get new functionality? Then, companies/firms/people could support the features they want/need. My experience with many Drupal modules has been they get me 90% of the way there, and there is little ability to even find a way to fund someone to get the rest of the 10%. I can post issues/feature requests, and contact the developers and ask them what it would take. A lot of the time I get no response, or the issue does not have enough visibility to make a "pool of funds" a real option. Ubercart has "bounties" as a content type, and that's a relatively interesting idea. What about a new issue type called "Bounty" where people could have a more official channel to pledge money torwards development. Them, of course, there's the Firefox Extensions way, where before downloading you go to a page where its optional to support the developer.

I agree, that developers can run a small consulting firm, make money through projects, and enhance functionality. That sounds smart!

slavojzizek , I think you came up with a really interesting approach for a working funding strategy.
1 - donation option when downloading and in the project page (like http://drupal.org/project/wysiwyg or http://drupal.org/project/project) for every module. I don't know how is this working in places like Firefox plugin repository or Drupal itself, but is certainly working pretty well in other places like Wikipedia. I don't know either how they make the users/downloaders aware of the need of funding and bringing something back to the community.
2 - Bounty system for extra functionality.

Other complementary/alternative strategy will be the one being used by sites like http://www.rockettheme.com/, where a kind of development club supports the building of specific apps with specific themes, quite like durpalgardens but with a membership fee.
I don't think the drupalappstore could work for modules, for them it wil fit better a kind of solution like the one you came up with, but it can work for apps like OpenAtrium and themes, specially for their customization or premium services on top of them. A similar model is working in sites like http://www.drupalgardens.com/

Code is still free for download and collaboration and the business is based in the property of the theme design (intellectual rights) and the premium service.

haha the first sentence of the third paragraph made me laugh. I also hate the word "app" and it makes you look unprofessional if you can't take the time to type the full word out. But, I do agree with what you said here, especially the part under "What the App Store Won't Solve".

Not to mention, the business model is fundamentally flawed.

Software is non-scarce. Effort is scarce.

If you're trading non-scarce software for scarce currency, and go to scarce efforts to support it and prevent piracy (an impossible task), you have no guarantee that your scarce effort turns into a proportional amount of scarce currency.

If you instead share your non-scarce code for free, and trade scarce effort (support, hosting, customization) for scarce currency, your effort and gains are guaranteed to be proportional.

I see lots of people rush for these app markets for the exact reason that they seek compensation that's disproportionate to their invested effort, but they don't see that that door swings both ways. The app store is simply a casino. And just like a casino, in the end only the house (and the statistically insignificant few) win.

One of Drupal's biggest strengths is it's ability for modules to break out of their particular callbacks and alter other modules forms and such. But as you mentioned that's against the spirit of the "App", but let's think for a moment about some of the advantages of having such encapsulation. With an App (well, with an ideal App, I realize this doesn't apply in practice where an App is de facto an application despite the buzzwordiness), I install it and don't worry about it, this may sound lazy but I don't need to worry about what it does because worse case scenario if the App's coded badly I get a bad App.

I like that idea, but for more than just laziness. The drupal ecosystem has grown far beyond the number of modules where you can comfortably pull apart each one you find interesting. Sometimes it would be cool for a module to give you a certain feature-set but to know even if it has a flaw that flaw will be contained (obviously PHP limits this because of it's error-handling mechanisms but you can have some containment).

Essentially my vision for Apps for Drupal is module + privilege control. I think this will also make Drupal friendlier to newbies and non-coders who can't understand the full implications of a complex module. It'll also prepare Drupal for a future direction/future module-set I envision: Drupal as a web (or maybe even non-web) operating system.

First of all, we can easily understand that big Drupal Shops, like Phase2, Adyax in Europe or , are facing a big problem.

1. Many new, small, cheap competitors arrive and prices go down, many of project are lost
2. Big fishes (elephants ?) are now equiped to offer Drupal Services.

They (Phase2 and bros) are too big to catch many small projects and too small to compete against elephants.

Second problem is that services approach make less money than the product one. So there is a logical business strategic reason to try to create product model over Drupal. Dev. Seed tried, Phase2 tries, Acquia tries too...

Then licences... Drupal and all contrib modules are GPL. Means that whatever paid piece of code you do, it MAY be available for free 5 minutes later on a parallel, free, market place.

Take a look on Magento Commerce. They use AFL, they can mix a free community version and paid entreprise. Their community is inactive, small and doesn't interact with Magento Core. Their conferences are just advertisement crap.

I like the idea of an integrated system for paid features. But this is not scalable (money = time you spend on each feature / issue).

I like SAAS idea... Only in a SAAS model, app may work for Drupal, but this concerns only small businesses.

Drupal is not stand-alone enough (like MySQL, Linux, PHP) to be sold like an app. Whatever Jeff thinks Drupal is a tool, not a standalone thing. Magento addresses 1 single problem : e-Commerce.

Drupal or Open Atrium or Open Gov... addresses NO problem. It remains a tool box that may be used to create sites, intranet, gov sites, what ever.

I do not see any equivalent open source project where App model works.

The services was De facto standard for payable work in opensource for a years and I don't see any benefits from just selling the modules. If you look at magento you can find enough modules which still buggy and rarely releasing even with critical issues...

The only approach I like so far was done by shopify team: http://wiki.shopify.com/Shopify_App_Development i.e. to keep income developer must continuously maintain and improve the service.