More Related Content

Viewers also liked(20)


Similar to Looking at WordPress through the eyes of a Software Researcher(20)

More from Jordi Cabot(20)


Looking at WordPress through the eyes of a Software Researcher

  1. Looking at WordPress Through the Eyes ofa SoftwareResearcher Jordi Cabot Javier Cánovas & Valerio Cosentino @softmodeling
  4. With a little help from my friends Flickr/ShenanPeruma Seelast slidefora fulllistof tools/articlesusedinthepreparation ofthistalk through-the-eyes-of-a-software-researcher
  5. 1. Measuring WordPress Flickr/ SeanMacEntee
  6. “ You cannot fix what you cannot measure
  7. Temporal Evolution
  8. File Evolution
  9. 2. Improving WordPress Flickr/JDHancock
  10. “ The best way to start contributing to an OSS is by using a static analyzer
  11. Errorsin the WordPresscore
  12. Errorsin the WordPresscore
  13. Plugin Interference Hookinterferences (WP+Top10plugins) Flickr/ RobertDavies Actions Filters Shortcodes 38 43 2
  14. 3. WordPress Community Flickr/JamesCridland
  15. “ Power to the people © Apple Records
  16. Internal vs. External Collaborators
  17. Top5 Committers
  18. Bus Factor NumberofWordPressdevelopers who wouldneedtobehitbyabustomake theprojectunabletoproceed Flickr/ ThomasHawk
  19. Bus FactorEvolution
  20. Bus FactorEvolution 64.43% 12.58%
  21. Label Analysis LabelUsage
  22. Label Analysis User Involvement
  23. ExplicitGovernance Model ******
  24. ExplicitGovernance Model ******
  25. ExplicitGovernance Model ****** All bugs and feature requests will be accepted or rejected with no deadline by theleaderoftheproject… /generate/2010000000500000000001 Verbalization Permalink
  26. And much more...
  27. Let’s work together jordi.cabot@ @softmodeling Flickr/ StasluTomczak
  28. List of references ◎ WP Codebase metrics calculated with Gitana, a sql-based Git inspector: ◎ Error detection thanks to static PHP analyzers by JetBrains (, SSVChecker ( and Weverca ( ◎ 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.

Editor's Notes

  1. You know, I’ve to confess there is a duality living inside of me
  2. 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.
  3. 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).
  4. First, we could use some published research work and tools to measure different facets of WordPress
  5. There are tools that by analyzing the Git mirror we can measure the development progress of WordPress
  6. And the distribution of the files, for instance, helping us to realize the growing importance of JS in the code
  7. Then, we have other research tools that can help to actually improve WordPress itself
  8. 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
  9. We do have some esoteric static analysers but even with JetBrains code inspection facilities we can go a long way
  10. 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)
  11. And last but not least, WordPress is also the community around it.
  12. 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
  13. 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
  14. Who are the most actives ones (and consider to promote them)
  15. Or detect what areas of the WP project may be at risk and require more attention for instance by calculating the bus factor
  16. 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
  17. You can also see this by looking at code ownership of individual people which is now much more distributed
  18. 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),
  19. 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
  20. 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.
  21. On this, we’ve doing some work promoting the defintion of a file
  22. That displays all these rules (internally using our domain-specific language but rules can be shown in English)
  23. 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!
  24. So even if you don’t have money, please let’s talk! thanks