The Growth of Mautic (and the part you can play as Drupalists) Ruth Cheesley - Mautic Project Lead @RCheesley
A presentation at DrupalCamp Belgium in October 2021 in Ghent, Belgium by Ruth Cheesley
The Growth of Mautic (and the part you can play as Drupalists) Ruth Cheesley - Mautic Project Lead @RCheesley
Ruth Cheesley (she/her) Mautic Project Lead @ Acquia 18+ years using and contributing to open source projects (mostly Joomla! but don’t hold that against me! Located in Ipswich, U Working full time supported by Acquia as Project Lead for Mautic. ) K @RCheesley
What is Mautic? A brief overview of what it actually does (come to our meetup tonight at 5.30pm @ Mosquito Coast to find out more!) PRESENTATION AGENDA History of Mautic. Where we’ve come from, where we are now, and where we’re going. What has Mautic learned from Drupal? What has gone well? What hasn’t? What’s next? How can Drupalists support this growing community? @RCheesley
WHAT IS MAUTIC? @RCheesley
A Fully Featured, Open Source Marketing Automation Platform • GPL v3 and similar stack to Drupal Symfony 4, Composer support • Supported by a young but growing community • We welcome new contributors! @RCheesley
Mautic Solves Critical Digital Marketing Problems • Everything about the customer in one place • Send personalised transactional and marketing communications through multiple channels • Interact consistently across multiple channels based on their profile and behaviour @RCheesley
Mautic Enables You To Capture Visitor And Customer Insights With: • Website/app tracking • Interaction tracking (open, click, reply) • Data capture (forms) • Call to action prompts • Third party integration (CRM, ePOS etc). ; ; ; ; @RCheesley
Mautic Enables Truly Effective Multi-Channel Marketing • Create fully configurable campaign workflows across multiple channels including • Email • SMS • Browser notification • Push notification • Web-based popups, bars and modals • Your custom integrations! ; : ; ; ; ; @RCheesley
Our vision is to be the ultimate fully featured and scalable marketing automation layer that can stand alone or be dropped into any existing tech stack, enabling organisations to seamlessly deliver an integrated, personalised digital experience that delights marketers and customers alike. @RCheesley
WHY MAUTIC + DRUPAL? @RCheesley
Mautic + Drupal exploding sector for growth. Own your own data, freedom COMMUNITY Digital Experience is an can adopt easily. FREEDOM sites and applications. Symfony-based, developers GROWTH INTEGRATION Full integration with Drupal as Drupal - GPL v3. SYMFONY LICENSE Same open source license A worldwide community of to extend and grow. open source contributors. @RCheesley
A BRIEF HISTORY OF MAUTIC @RCheesley
A BRIEF HISTORY OF MAUTIC 2015 Mautic 1.0 Stable Mautic comes out of beta with the 1.0 Stable release.
2014
2015
A BRIEF HISTORY OF MAUTIC Mautic 2.0 Stable First major release including a refactored email builder , dynamic content, stages, new integrations 2015 Mautic 1.0 Stable Mautic comes out of beta with the 1.0 Stable release. 2016
2016
A BRIEF HISTORY OF MAUTIC Mautic 2.0 Stable First major release including a refactored email builder , dynamic content, stages, new integrations 2015 Mautic 1.0 Stable Mautic comes out of beta with the 1.0 Stable release. 2016 2018 First Community Led Release 2.14.1 was the first release to be fully led by a community member, rather than Mautic Inc. staff.
2018
A BRIEF HISTORY OF MAUTIC 2015 Mautic 1.0 Stable Mautic comes out of beta with the 1.0 Stable release. Mautic 2.0 Stable Acquia Acquisition First major release including a Only 3 releases, widespread refactored email builder , uncertainty in the community. dynamic content, stages, new Established governance model integrations and community teams. 2016 2018 First Community Led Release 2.14.1 was the first release to be fully led by a community member, rather than Mautic Inc. staff. 2019
2019
A BRIEF HISTORY OF MAUTIC 2015 Mautic 1.0 Stable Mautic comes out of beta with the 1.0 Stable release. Mautic 2.0 Stable Acquia Acquisition First major release including a Only 3 releases, widespread refactored email builder , uncertainty in the community. dynamic content, stages, new Established governance model integrations and community teams. 2016 2018 First Community Led Release 2019 2020 Mautic 3.0 First major release since 2017, 2.14.1 was the first release to complete overhaul to support be fully led by a community Symfony 3.0. member, rather than Mautic Inc. staff.
2020
A BRIEF HISTORY OF MAUTIC Mautic 2.0 Stable Acquia Acquisition Mautic 4.0 First major release including a Only 3 releases, widespread A year of monthly releases, a refactored email builder , uncertainty in the community. new major update supporting dynamic content, stages, new Established governance model Symfony 4, new email builder integrations and community teams. and Composer support. 2 global MautiCon events. 2015 Mautic 1.0 Stable Mautic comes out of beta with the 1.0 Stable release. 2016 2018 First Community Led Release 2019 2020 Mautic 3.0 First major release since 2017, 2.14.1 was the first release to complete overhaul to support be fully led by a community Symfony 3.0. member, rather than Mautic Inc. staff. 2021
WHAT HAVE WE LEARNED (/ STOLEN!) FROM DRUPAL? @RCheesley
Product Management • Importance of a regular release cadence (the ‘beating drum’ at the heart of the project) • Making automated test coverage mandatory to improve quality and help us write better code • Specialist groups who become the ‘subject matter expert’ - we call these ‘Tiger Teams’ 🐯 • DDEV/Composer is awesomesauce!
Community Management • Asynchronous Slack meetings! (Thanks Diversity & Inclusion team for the idea!) • Conflict Resolution and Code of Conduct enforcement - setting the bar high from day 1 • Local communities coming together to learn, share, and contribute to Mautic • Learn; do; teach approach - empower contributors to help others
COMMUNITY STRUCTURE @RCheesley
Governance Model • Council meet monthly, discuss issues impacting the whole community, proposed changes to structure/workflows and problems arising. • Teams meet fortnightly, asynchronously on Slack (and on video call where needed) in team channels (#t-<team name>) • Working Groups - formed for a specific focus, e.g. organising a conference, managing the website, writing the newsletter - prefixed with #wg-<name> https://contribute.mautic.org/community-structure/governance @RCheesley
Jira Board per Team (Public) https://mautic.atlassian.net/jira @RCheesley
Release Cadence and Support Terms
WHAT HAS GONE WELL? @RCheesley
A Growing Community Source: Savannah CRM
Growing Contributions Source: Savannah CRM
Two Awesome Global Conferences
Team Formation • Each team has autonomy over their areas and organise their team as appropriate • Fixed terms for leads and assistant team leads • Some teams have been more active than others • Two vacancies for assistant team leads in Education and Marketing Teams
WHAT HASN’T GONE WELL? @RCheesley
Merging PRs Stalled From 2018-2020 Source: https://cauldron.io/project/133
Issue Triage Wasn’t Much Better! Source: https://cauldron.io/project/133
We Still Have a Big Tech Debt • Circa 150 issues and 250 PRs to process • Very small number of people consistently triaging, testing and code-reviewing • Code governance requires that we have different organisations testing each other’s PRs - this prevents any organisation from driving an agenda - but requires us to have a diversity in organisations engaged in testing which we don’t have in large enough numbers Source: https://cauldron.io/project/133
WHAT’S ON THE NEAR HORIZON? @RCheesley
Exploring Equality and Sustainability Bounty programme Funded by the community and with Incentivised Partners Program 01 02 community budget. and be active contributors to the project. RFP Process Recognising all contributors Statistics include all trackable channels 03 04 Supported Contributors Huntr.dev funded security reporting compensating for finding and fixing issues. An opportunity to invite individuals and organisations to work on funded projects. and all contributions are valued. Incentivises responsible disclosure, Partners must both contribute financially, 05 06 Paying contributors to work a set number of hours a week for the community.
Improving the Onboarding Process O Stre aml ine ve rh au Tes ti lD ev ng Good First Task Tea nb mO oa Q ua gD rdin rt ly er i p n- Do cs ocs er n so s in pr ts Across the community we need to reduce the ‘on ramp’ for new contributors. This enables people to quickly find things they can work on and get things done, without getting bogged down in complicated setup processes, asking for permission or getting stuck.
Getting Better at Promoting Mautic 01 Helping agencies to pitch Mautic more effectively so that they can win more Mautic clients 02 Raising awareness in Open Source of Mautic and its place in delivering a personalised Digital Experience 03 Raising Mautic’s profile in the wider world of business so that we have ‘seat at the table’ 04 Sharing the awesomeness of our amazing worldwide community of Mauticians!
WHAT’S THE LONG TERM PLAN? @RCheesley
Looking to the (Decoupled) Future • Patching up the technical debt (fixing the cracks in our house) from a fast-moving startup will only take us so far • Some fundamental challenges with how Mautic was architected are preventing us from scaling beyond circa 7 million contacts • Exploring different options to unlock the scale barrier and improve performance for all users
Mautic Next Generation • Decoupled front-end (maybe Angular-based) • Fully featured, API-first architecture (maybe with API Platform, POCs in progress) • Decouple plugins from core (work already in progress) • Maybe a microservices architecture (early stage POCs)
HOW CAN YOU HELP US GET THERE? @RCheesley
Many Opportunities To Get Involved! • Teams meet fortnightly on Slack, asynchronously and open to all (get an invite at mautic.org/slack) - channels prefixed with #t-<team> • Tiger Teams - small groups with a focus on a specific area (e.g. email deliverability, accessibility, Campaigns, Forms, etc) - prefixed with #tt-<name> • Working Groups - formed for a specific focus, e.g. organising a conference, managing the website, writing the newsletter - prefixed with #wg-<name> https://contribute.mautic.org/contributing-to-mautic @RCheesley
Testing PRs • gh repo clone mautic/mautic, cd into directory • DDEV start • If a bug, test before applying the PR • gh pr checkout <number> to check out a PR • Leave findings in a review on the PR in GitHub (Assumes use of DDEV and GitHub CLI) @RCheesley
Issue Triage • Help with triaging by reviewing Needs Triage issues (welcome the contributor, confirm bug, provide test instructions if they are not clear) • Issues without PRs associated likely need a fix • Bounty label = funded issue - check for details in the issue @RCheesley
Improving Things! • Workflows, processes, tooling, infrastructure • Documentation, tutorials, knowledgebase, website • Anything else you think ‘why the heck are you doing it like THAT, Mautic?! We’re open to positive, constructive criticism with proposals for improving (even better if you are up for leading the project!) @RCheesley
Building The Community • Mautic Conference Europe in Hasselt, Belgium on 8th November & Community Sprints on 9th November - volunteers needed! • Supporting on the forums and Slack • Supporting our Drupal-based site (it needs a redesign quite badly, and a team who can help support it!) @RCheesley
Join Us In Person For The First Ever Mautic Conference Europe! • Conference on Mon, 8th November in Hasselt, Belgium, Community Sprints on Tuesday, 9th November. Call for speakers open until 10th • Come and learn about Mautic, contribute to the community and have a great time! • More information and tickets at https:// mauticon.mautic.org (sponsor opportunities also open!) @RCheesley
Ruth Cheesley Mautic Project Lead @ Acquia ruth.cheesley@mautic.org What questions can I answer? @RCheesley