Where do Moodle plugins come from?

I have just had a new plugin made available in the Moodle.org plugins database – https://moodle.org/plugins/qbehaviour_interactiveexplain

It is the Interactive with Explanation question behaviour plugin, which adds a field for students to feedback on quiz questions. I’m very proud of the plugin and it works well, but this blog post is not about the plugin, but how and why it was created and how it got into the plugins database.

About six years ago, Tim Hunt, the maintainer of the Quiz module, created a plugin called Deferred Feedback with Explanation. I thought it would be good to take the idea and apply it to the Interactive With Multiple Attempts Question behaviour. 

In my view this is the king of question behaviour from the point of view of learning rather than testing. The student can make multiple attempts at a question within a quiz and be given feedback for each attempt and deductions made from the final mark based on the number of attempts.

So I started to work on it and put out a post in the Moodle.org discussions in December – https://moodle.org/mod/forum/discuss.php?d=395138, which got favourable feedback and prompted some really interesting questions from people with huge expertise in the area.

At the end of March, I submitted the code for approval to the Moodle.org database. It is a free plugin compatible with Moodle 3.6,3.7 and 3.9 and has no other requirements.


The review

When you submit a plugin to the plugins database it performs some automated checks and within a few minutes, I was told of some minor mainly stylistic things for me to correct. These are things that would not affect how the code ran for the end-user but were “good to have” comments about the code. 

This is just the automated approval. It gets more interesting when it comes to the human side!

Within three days I began to get detailed feedback and suggestions from the person doing the approval. This person is a developer who works for a Moodle Partner and one I hold in very high regard. He has been working with Moodle since 2003, has over 1,100 commits to core Moodle and has contributed to a huge number of plugins.

The things he picked up on were relatively minor but were still good to fix. For example, although the plugin does not store any personal data, it was missing null privacy implementation so the privacy report could say it doesn’t store any personal data. There were a few more minor things to fix, but today less than a month after initial submission, the plugin became available for download.

A professor at a Mexican university contributed translated strings in Spanish when I started the project.

One of the side effects of developing this was I noticed a minor bug in core Moodle and contributed a ticket with a patch MSL-68335, which is currently going through the approval process.

So when you go to the plugins database and look at a new plugin you can be confident that it has had automated checks applied and has been approved by a very experienced expert.

But that first release is only the start of a journey. I expect people will report issues (developers call them issues, users sometimes call them bugs). People will almost certainly make suggestions. I will want to get the strings translated into as many languages as possible, and I will need to check it works with new versions of Moodle as they are released.


Looking forward

I expect this process to continue for many years, probably for the rest of my career/life requiring just a few hours of work every month or so. Although I have written the code for this plugin it only exists because of ideas, suggestions and support from the wider community. 

The code is based on an existing plugin, it was reviewed and approved by another developer, it has one set of translated strings from a contributor and another one offered. Since I started this article I have had a suggestion for a small modification in code to make it compatible with another plugin.

Meanwhile I will watch and take satisfaction if the statistics report the numbers of users go up.

As this is the Titus blog where does this plugin fit in? Well, Titus is my day job, but they support and encourage me in all my “extra-curricular” Moodle activities. In the description of the plugins, I include the text “Contact Certified Premium Moodle Partner Titus for custom development and consultancy.” 

There are other developers who work for Titus who have code in core Moodle and who contribute code to publicly available plugins and respond to questions in the forums.

It’s nice to have Free/Libre stuff, but if you are serious about running Moodle you are going to need to pay expert services at some point. You can always find a developer who “knows a bit about web development”, but if you want experts with a public history of good code you need to deal with a Premium Moodle Partner like Titus, get in touch below. 

Read more:

We're an award-winning Moodle Certified Premium Partner

We specialise in providing innovative e-learning services for workplace learning, education providers and training companies around the world.