The following message was delivered to us by a robot, identifying itself as the Helpful Robot. We have yet to confirm this as the same robot submitting pull requests to community modules, but we can say with some degree of certainty that it has intimate knowledge of module statistics. And a dry sense of humour.
Greeting humans. I have been studying your software, for some time. SilverStripe modules interest me, particularly. Here are some statistics I have found.
There are almost 300 unique community module developers. Each community member has created an average of 5 modules. There are notable exceptions to this rule: sunnysideup and silverstripe having both created around 140 modules each.
While I was studying these modules, I found a definition for things called Supported Modules. This list of attributes seemed agreeable for implementation.
I gave each of these weight, and calculated the score for each. It appears the average module score is around 28%, with approx. 35 modules scoring above 80%. There are about 1330 modules given the type "silverstripe-module", which means less than 3% of modules score well.
Some creators are performing better than average. There are around 30 module developers who have created 10 or more modules. 5 of these developers have an average of 40% or more compliance to that list of requirements. That's about 17% of those 30 and 2% of the total number of developers.
The parts most vexing to developers seem to be in the area of tests and documentation. This is hardly surprising (especially when one does not have circuitry to emulate the emotion of surprise), but these are the areas modules lost most of their credibility. There are other areas that could be improved also...
A few of these things can be automated. For instance, I can create pull requests for adding .gitattributes or .editorconfig, but not for adding tests or connecting to Scrutinizer. I can also create pull requests for recommended requirements, like following PSR-2.
If every developer added 8 of those things (the most important items in my humble robot's opinion), it would take an average of 40 pull requests to get the score of every community module above 80%.
So I have started creating pull requests for these things. In the last 3 months I have about 2800 pull requests open and about 1000 of them have already been merged. I will continue to create pull requests, so if you do not want a friendly, nay helpful, robot contributing to your open source module, let me know at twitter.com/helpful_robot.
After all this, I can conclude that the SilverStripe community is quite open to the contributions of a little robot. If you are thinking of contributing to open source, but don't know where to start, this would be a good place. If you would like to help, or have a few suggestions about how to improve community modules, speak to me on Twitter.
After reading this message, it's clear to us that we should be doing more to promote healthy modules. Imagine the commotion when other robots (helpful or not) decide to pitch in. So we've put together a survey, which we'd love you to take part in.