The Contrib Conundrum

Edit: Please read this blog post, but also please jump in on this thread - the idea is already proposed but needs community support:
http://drupal.org/node/484034

And so again today it happened, as it does so many days. Someone needs to be able to do something. They Google. They search Drupal.org. They find nothing but a few open issues or an unsuitable/unsupported contrib module. They're a developer, so after an hour of searching they think "ach, to hell with this - I'll just write something".

They do the decent thing and release their new module to the community, and *BAM*. Suddenly several people are all telling you it is a bad thing and their are already modules that do this.

Doh! =(

Today's victim is cafuego with the new allperms module. I had a similar problem some time back, which this module answers. I too failed (at the time) to find any contrib solution, but I also didn't have time to write it, so I parked the task here:
http://drupal.org/node/301183

cafuego obviously found that issue on his travels, as he had the decency to pop back and post a link to his module, so I (and anyone else) would see it. Nice work, and I thank you. =)

However, within a few hours of the Drupal modules bot on Twitter announcing the new module, the issue queue had numerous mentions of other modules that do either the same, or nearly the same, thing. This is very frustrating for all concerned.

Sometimes this has happened to me and other Drupal developers have even accused me of not taking the time to search properly. This is the most infuriating accusation, as my mantra is to *always* try and find a solution before I write one. This sort of rebuke to people who are doing their best to contribute useful code is both detrimental to the community and plain rude.

I would ask *all* Drupal developers out there to remember their manners a bit and, instead of posting clipped issues with an air of irritation (or worse, accusing the contributor of being lazy when they just wrote a module and released it!!) to respond something more like this:
http://drupal.org/node/618782#comment-2208866

You see? You don't have to be rude. Spare a thought for the maintainer, just for a second. They did not intend to do a bad thing. They thought they were doing a good thing. Talk through it, don't just snap instructions at people, or they will, in all likelihood, ignore you.

(I'd like to point out at this juncture that I am in no way having a pop at JacobSingh here, who started the issue - his post is reasonable and friendly and is a *good* example of starting a conversation about a contrib module that may not be required. I'm commenting generally on behaviour I have observed in the issue queues and I won't name names or link to posts.)

On a wider point, this highlights a prevalent and serious issue with Drupal contrib. It's getting too big! I don't know how to solve this, but I have a few notes on the matter:

1. When this sort of thing happens, BE NICE! Don't be rude to the maintainer - it's usually not his/her fault.

2. The Drupal modules Twitter bot and RSS feed is really handy, but it comes too late in the day, which brings me on to:

3. Isn't it time Drupal.org had another content type? I would suggest there should be a Module Proposal type available to those with CVS access. PROPOSALS should be tweeted out via Twitter and included in RSS feeds, like new modules are now, and it should only be possible to create a new Project on Drupal.org after the Proposal has existed for two weeks and been marked as "fixed". Then a Project could be created, linked to the Proposal. If we had something like this, a lot of contrib duplication (and the bad feeling it sometimes causes) could be avoided.

A proposal for proposals

A suggestion for reducing new-duplicated modules : require RFC or statement of intent posting

... yeah. It didn't get traction either. Too many folk stalling it with the "competition is good" mantra, and re-hashing it (or the flexinode vs cck cliche ;-)

This suggestion ^ got bogged down into technicalities and enforcement too much . Too much work to push through when there is any resistance at all to the idea.

Strange

Seems some people don't know what they want!

I just wish the Drupal Association, or Dries, or SOMEONE with the power to do so would make an executive decision to sort this out and get something done.

Contrary to the post you link to, all the feedback I get is people are for some more control. (Maybe more time passing and the problem becoming bigger as helped change some attitudes?)

And I don't think my suggestion, which is practically the same as the one on D.O that someone linked to below, would prevent people from being able to pitch in new modules, even if there's some overlap. As long as they can argue (e.g. Flexinode vs CCK) that there are architectural problems with the original module that make a compelling reason for starting again, I see no reason why a module build like that need be blocked.

Anyway, we all seem aligned. But still nothing happens. =(

Maintainers don't write enough

I don't know if the contrib library is getting too big or not, but I think there is another explanation why people can't find anything, whether you are a developers or a user, and that has to do with WORDS.

Search engines need words to work with and Drupal maintainers just don't provide enough of them. For whatever reason(s), maintainers just don't have very much to say about what their modules do.

I constantly come across modules that are poorly titled and/or have minimal documentation/explanation. Like sometimes there really is no explanation and the only way to figure it out is to install it and see what the f*ck it does. It boggles the mind.

But as a result neither d.o. search nor even google search bots have enough words to work with and, therefore, their search results suck.

I suspect the problem could be largely solved by forcing people to write lenghty explanations about functionality and features. And/or allowing users to write their own documentation right on the module home page (vs. in the issue queue where it doesn't have the same impact from an SEO perspective.

Yeah I'm a big fan of people

Yeah I'm a big fan of people proposing modules before having access to post them. However I wonder if this would become a barrier to entry and actually harm potentially great modules? There's been a number of "duplicate" modules that have done well, CCK could be seen as a duplicate of Flexinode, Ubercart was a duplicate of e-Commerce. The problem is sometimes a module needs so much rewriting that it needs to be written from scratch and most existing module maintainers wouldn't be to warm to this because it feels like someone is taking over their hard work. Anyway I do hope that we can find a solution to this problem because it has great potential for the Drupal community.

- Sean Bannister

Good points there

I guess it would have made it hard, if not impossible, for something like Ubercart to come about, because everyone would've said "work on E-commerce", and no one wants to work on E-commerce cos it's too big, too complicated and a total mess! No one has the time! =(

I think the behaviour of the community is more likely to be a barrier though. If people feel they have an opportunity to defend their proposition and there is a proper discussion, not just a slammed door, it doesn't have to be a barrier. I find too many people in the Drupal community are too quick to treat all comers as cretins though. That already *is* a barrier. =(

Before coding

It would help a lot if we had more eyes on http://groups.drupal.org/contributed-module-ideas and more people making use of it. Then we wouldn't need http://groups.drupal.org/similar-module-review so much. :)

Michelle

I did it

I used that Group! =)
http://groups.drupal.org/node/33668

Amazing

Another resource on the subject neither I (nor anyone else I've spoken to on the matter) knows of! Shows a quite remarkable lack of attention to, and discussion around, the issue in any kind of useful, visible way. Why aren't we talking about these things more? Contrib is a mess and people outside the community repeatedly cite it as a barrier to Drupal take-up.

The group is helpful, but ultimately CVS contrib needs to be more closely managed to prevent duplication and reduce the mind-numbing number of contrib modules.

And Chris made a good point below. Maintainers of existing modules, in some cases, need to be WAY more open when it comes to accepting assistance from other would-be maintainers who would like to contribute features to existing modules.

Two-pronged approach: Social:

Two-pronged approach:

Social: maintainers as you say must be open to collaboration and even outside management of their projects.
Technical: we need better ways of organizing and finding modules.

See

See http://drupal.org/node/484034 for the discussion about all projects going under a review before a release can be published, not just the person's CVS application. It's too easy for people once they have their CVS account to just start creating a module when they feel like it. Most of the times it's ok, but the other times it's either they couldn't find the existing module or they didn't search (which yes, does in fact happen).

Seems sensible

At the moment it is too loose.

And I'm not saying some people don't search, but it's all to easy to search like crazy and not find a satisfactory answer. So while things are the way they are save the vitriol for repeat offenders. Otherwise you'll drive away people who could be good contributors. Don't pile in to everyone like they've bot-spammed CVS.

Contrib maintainer. Outer

Contrib maintainer.
Outer core of tightly-knit modules that do the frequently done stuff.

Good idea for a new content type

Your proposed 'proposal' content type is a good idea and this is what could make the difference between someone writing something from scratch and someone finding an obscure module that already does most of what they need.

One thing you don't mention (but has probably been covered many times before) is that there need to be concessions on both sides in order to improve contrib modules. Module maintainers need to be more willing to allow their modules to expand in directions that they did not originally anticipate; and contributors need to be more willing to work on existing modules rather than adding to the contrib soup.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.