In 2020 we kick-started the development of several Strategic Initiatives which were announced at Mautic Conference Global. 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 clearly defined Request for Proposals (RFP) process outlining how we manage projects which bring features or larger bug fixes into Mautic. Some aspects of this are based on the model used by the OBS open source project.
The aim of this process is to create an open and transparent workflow for larger projects which are being planned or are 'in flight' within the community. Projects may relate to new features, but could equally be fixing a large or complex problem in Mautic.
The process gives greater clarity throughout the whole lifecycle to Mautic users regarding how features and larger projects are added to the roadmap, worked on, and eventually released.
It is also hoped that this process allows us to better manage compensating contributors for working on these larger projects while also allowing community members to decide to financially support projects that they care about.
The following workflow will be followed for new projects within Mautic:
Mautic Community Partners have the option to propose up to three features per calendar year which can be considered for inclusion as an RFP without going through the community voting process (but must still be approved by the Product Team and Project Lead) - for example if there are features which they would like to see in Mautic but they don’t have the resources internally to work on them, but could put some money towards someone in the community working on that project.
We've created a process to ensure multiple contributors aren’t competing on the same project, and to make sure work is properly merged into Mautic once completed.
Collaboration with the Product and Core Team is crucial to having your code pulled into Mautic.
During the proposal process, clarify any questions you or your team may have as early as possible.
During development, use the pull request commenting feature. At any time, you can also comment in the #dev channel in the Mautic Slack instance here: https://mautic.org/slack, though we encourage you to keep as much discussion on the RFP and pull requests as possible to keep the discussion public.
If your team does not show code commits or interaction for two weeks at a time as part of an accepted project, then the RFP will be released for another team to work on. If the task remains in the Accepting Proposals state, and the team can demonstrate work on the feature, they can reclaim the task.
If you no longer wish to work on a project that has been granted to you, please notify the Product Team to reset the RFP as Accepting Proposals.
The Mautic team currently uses a simple rubric to determine how to price an RFP. Generally speaking, RFPs are evaluated based on two main criteria:
In general, issues that are higher in complexity and higher in demand are given greater value.
The Product Team has a fixed allocation each year to use for funding these projects, which is directly related to the amount of funds available in the budget. In the event that a project requires more funds than the Product Team has available, a project on Open Collective will be opened to raise the required amount.
Strategic Initiatives will be proposed in the same way going forward, and will be funded from a separate budget line. Proposals will be sought and approved as detailed above.
Strategic Initiatives are proposed by the Project Lead, and do not go through the community voting process.
As Strategic Initiatives are often larger projects, it is likely that they may consist of several smaller projects. This should be made clear in the RFP with a ‘big picture’ overview being provided of how it fits into the wider Initiative.
From the 2022 budget forward, a percentage of the budget (to be agreed by the Community Council) will be allocated to the Product Team for the purpose of funding the RFP process.
This will be maintained in a separate project on the Mautic Open Collective, so that people can make donations there if they specifically want their funds to be used for this purpose.
If an RFP or Strategic Initiative requires more funding than is available through the budget, a separate project can be established and fundraising from the community can be undertaken to raise the required amounts.
Strategic Initiatives will continue to have a separate budget line and will also generally have a separate project on the Mautic Open Collective.
The Mautic Community is now soliciting proposals for a number of features and bugs that we want to direct community efforts toward. We are using a "Request For Proposals" system as detailed above, whereby each project acts as a specification, and requests that potential developers submit proposals for how they would approach the design and development of the specified feature or bug.
This document is intended to be a guide for would-be contributors to the project who wish to submit a proposal to ensure their proposal has sufficient detail in order to be considered for acceptance.
This process has drawn heavily from the OBS Project who have adopted a similar workflow for their bounty programme with their GitHub repository and Open Collective.
Found errors? Think you can improve this documentation? edit this page