"What does a researcher have to say about the WordPress source code and the community behind it? Join us on this talk on unusual “WordPress analytics” and see what we can learn, and improve!, from the way WordPress (and the plugin and theme ecosystem around it) is developed nowadays."
More on: http://modeling-languages.com and http://jordicabot.com
You know, I’ve to confess there is a duality living inside of me
I am a Professor in Barcelona leading a research team on software engineering but also a co-founder of Nelio, a WordPress company, so I decided to try to solve my identity disorder by looking at how our research work ,specially on software analysis, could be useful for the WordPress community.
And not just my team’s work but kind of checking also work by other people that, based on my WordPress insights, I thought could be useful. To avoid cluttering, references are all at the end (and online).
First, we could use some published research work and tools to measure different facets of WordPress
There are tools that by analyzing the Git mirror we can measure the development progress of WordPress
And the distribution of the files, for instance, helping us to realize the growing importance of JS in the code
Then, we have other research tools that can help to actually improve WordPress itself
Within the limited time, the best example I can give is static analyzers. A static analyzer, as the name indicates, tries to find errors in the code without simulating its execution
We do have some esoteric static analysers but even with JetBrains code inspection facilities we can go a long way
And we can’t forget the plugins. Another work analyzed a few plugins and detected a lot of potential interferences between them (e.g. plugins using the same shortcode, they should be unique but this is not enforced)
And last but not least, WordPress is also the community around it.
The more the community is involved, the faster will WordPress advance. That’s why it’s important to analyze how well the community is collaborating
We can study if we increase / decrease the number of external contributors we manage to attract. If this drops would be a clear sign that we need to work on this to keep the project alive and kicking
Who are the most actives ones (and consider to promote them)
Or detect what areas of the WP project may be at risk and require more attention for instance by calculating the bus factor
We have a tool to calculate the bus factor. This graphic shows great news for the WP community, now it does not depend on a single person but relies on a group of people so it-s much more robust (and make big companies more confident about it). Still, we could then go to individual components and see if any of them rely too much on one/two people
You can also see this by looking at code ownership of individual people which is now much more distributed
And we need to look beyond the code. On that there are tools that study not the code but the issues opened by the end-users, to see what are the most frequent problems for them and how they are related (btw this graphic is not for the WordPress core since I didn’t have enough permissions for the Trac system so I used the GitHub repo for the yoast plugin as an example),
Then, you can zoom it and see who are the experts for each topic (be careful if you want to fire somebody), so that we avoid wasting time and know who are the go-to-people for every topic
And finally, the WordPress community is very big and therefore it’s important the community understand how things work. it’s always good to have explicit governance policies. I’m not saying that the patch of this guy should have been accepted, I’m saying that any members should clearly know what happens from the moment I open a new issue to the moment the fix is part of a new release or the issues is closed. I think openness is more than opening the code but also opening the decision process (who decides what and when). Then, we may discuss whether those rules are good or not. For instance, we can then discuss whether WordPress follows a democratic development process.
On this, we’ve doing some work promoting the defintion of a governance.md file
That displays all these rules (internally using our domain-specific language but rules can be shown in English)
With this, my only goal was to raise awareness about the fact there are a lot of things made by researchers that could be useful to the WordPress community and that we need to bridge that gap. I dare to go even furhter and claim that similar to what google, Microsoft or IBM are doing, I’d ask Automattic to create research grants to enable people like me to pay students to work on this. Anybody has some 100.000 USD to spare? Not smiling here. I’m dead serious!
So even if you don’t have money, please let’s talk! thanks
Looking at WordPress through the eyes of a Software Researcher
Looking at WordPress Through the
Eyes ofa SoftwareResearcher
Javier Cánovas & Valerio Cosentino
With a little help from my
Seelast slidefora fulllistof
All bugs and feature requests will be accepted or rejected with no deadline
And much more...
List of references
◎ WP Codebase metrics calculated with Gitana, a sql-based Git inspector:
◎ Error detection thanks to static PHP analyzers by
SSVChecker (http://ssvchecker.sourceforge.net) and
◎ Results on plugin interference taken from:
L. Mousavi Eshkevari, G. Antoniol, J.R. Cordy, M. Di Penta: Identifying and locating interference
issues in PHP applications: the case of WordPress. ICPC 2014: 157-167
◎ Read more about the bus factor of a software project and how to calculate it on:
◎ Label analysis thanks to GiLA:
◎ Governance proposal for OSS described in:
J.L Canovas, J. Cabot: Enabling the Definition and Enforcement of Governance Rules in Open
Source Systems, ICSE SEIS, 2015
Except whereotherwisenoted,content on this site is licensed undera CreativeCommons Attribution 3.0License.