In 2020 we kick-started the development of several Strategic Initiatives which were announced at Mautic Conference Global 2020. We have also had several community-generated ideas for new features which have been proposed over the past two years, some of which have required funding and are at varying stages of completion.
We have learned a lot and as a result, we are implementing a new approach to how we manage bringing new features into Mautic. Some aspects of this are based on the model used by the OBS open source project.
What are we implementing?
We are creating a workflow where community members can propose and discuss new features they would like to see in Mautic and have those ideas reviewed by the Product Team, proposed as a project to be incorporated into the roadmap, funded (where required), and eventually be released as a new feature.
This process will not impact developers who create new features and share them through a pull request for consideration by the community - that is still very much welcomed!
What is the new process?
If you have an idea for how to improve Mautic, the first step is to share your idea in the Ideas & Feature Requests forum category. Please use the post template to fully explain what the idea or feature is, who it would benefit, and why you think it should be considered. Please also state if you’re willing to help working on it.
We use the forums because this is a place where users of Mautic tend to frequently visit, in addition to business owners and developers. Having these discussions in a place which is accessible to all stakeholders is important - everybody needs to have the opportunity to get involved!
Once ideas have been discussed on the forums and accrued enough votes (suggesting community support for the particular feature being proposed), they will be considered by the Product Team during quarterly meetings with the Project Lead, and where appropriate, accepted to be included on the roadmap. This may be as a feature, but sometimes features proposed by the community may also be considered for becoming Strategic Initiatives.
The Product Team will work with the originator of the idea to put together a Request for Proposals (RFP). The Product Team will determine how much of their budget will be allocated to the project and whether any further funds will need to be raised in order to compensate contributors for their time working on the project.
Once the RFP has been finalised, it will be published on the GitHub project under the Discussions section.
If the funds have been secured it will be immediately set to the status of Accepting Proposals with the label of ‘Bounty’ to indicate that it is a funded project, if additional funding needs to be raised this will be achieved through a project on the Mautic Open Collective and the RFP will be set to Fundraising. See an example below of this in action:
Proposals can be made either by individuals or teams of developers working together or as a company, but the final payout will be made to only one stakeholder who would distribute the funds if more than one person contributes toward delivering the project. All individuals and organisations will remain responsible for managing their own tax concerns in their locality and this does not constitute a contract of employment.
See an example of an RFP in progress with the OBS project here: https://github.com/obsproject/obs-studio/discussions/5078.
Sometimes it may be necessary after opening the RFP to raise more funds if a proposal favoured by the Product Team requires in excess of the funds that are currently available - this will be done through a tier on the Open Collective and the RFP will be set to Fundraising until the full amount has been raised.
The Product Team may also decide to use an RFP for particularly large bug fixes or problems which need to be addressed promptly but need to have a detailed interaction with the developer proposing to address the issue, allowing them to clearly outline what is required in the project. Examples of this include fixing and updating the Twitter integration.
As with bounties, there is no compromise on quality - pull requests for new features must meet all the usual requirements of code coverage, review by the Core Team and testing in the community before they will be considered as delivered and ready to be incorporated into the next feature release of Mautic.
The full workflow of how an idea becomes an RFP and eventually a new feature in Mautic can be found in the Community Handbook. We will continue to review and refine this process as we start to include more projects, and look forward to welcoming developers to work on these projects.