Community Needs to Do a Better Job at Quickly Reviewing Code: Mike Herchel | FLDC
“A larger issue (compared to gaming of issue credit system) is the turnaround time to get quality reviews on Drupal.org. Developers will get frustrated when they work hard on a patch to Drupal, but their code languishes for months and even years. It can be very demoralizing to anyone,” warns Mike Herchel. He was speaking to TheDropTimes (TDT) ahead of the Florida DrupalCamp 2023.
Florida DrupalCamp 2023 will begin this Friday, February 17, 2023. We ran a series of interviews with FLDC organizers prior to the camp, and a few are already published. A prime organizer of this prestigious camp was Mike Herchel, an elected at-large member of the Drupal Association Board of Directors. So we used this opportunity to talk with him beyond FLDC and into his developer journey and outlooks.
Professionally, a frontend developer at AVB Digital, Mike Herchel is a core CSS maintainer and is the lead developer for Drupal’s default theme, Olivero. Mike is also the maintainer of the Drupal Quicklink module.
On behalf of TheDropTimes (TDT), our Editor-in-Chief, Sebin A. Jacob, initiated a conversation with him through Drupal Slack and shared a Google Docs document pitched with questions. Read his replies here:
TDT [1]: There is usually a disconnect between how we picture ourselves and how others see us. But when coming to Mike Herchel, your passions are reflected in your work. You mean what you propose. For instance, in your LinkedIn bio, you have written you are passionate about user experience, accessibility, web performance, and the open web. As the lead developer of the default Drupal frontend theme, Olivero, we have proof you meant what you wrote. The theme is built with accessibility in mind. In your recent blog post about a lawn care website, you have moved to Drupal 9, again this accessibility element is stressed. Why is accessibility essential, and how is Drupal in accessibility compared to other popular CMS options?
Mike Herchel (mherchel): In my mind, making websites properly accessible is the right thing to do. People with disabilities already have to deal with whatever their disability is. I don’t want to cause more difficulties by neglecting to build proper accessibility into the sites that I build. The funny thing is that once you know how to build accessible websites, it really doesn’t take much more effort or time.
One of the reasons that I love Drupal is because of our commitment to accessibility. It’s not just lip service – compared to most other CMSs, Drupal stands heads above with our commitment to supporting WCAG 2.1 and ATAG 2.0.
TDT [2]: Drupal is accelerating innovation for an open web for everyone. Recently, the Drupal Association shared a community input survey for an open web manifesto. As a member of the DA board representing the community at large, what was your role in formulating this move? How do you define an Open Web, and how far are we from it?
mherchel: Other than encouragement, I wasn’t involved in the creation of the survey.
At its core, I believe that the open web is about control: Control of your data, website, and freedom of expression.
Currently, many large companies (e.g., Google, Facebook, et al.) have control of access to much of the information that we put into the world. It is dangerous because we don’t know how they limit and filter this information.
Drupal fills an essential niche within the open web, where it gives users the ability to self-host a very complex website for relatively minimal cost and effort (compared with other solutions). While this role is vital, it’s also a tiny part of the larger puzzle.
TDT [3]: Server-side rendering vs. client-side rendering is always debated. Websites using JS frameworks load a lot faster in layman’s view. Now with your ‘Quicklink’ module, I have seen Drupal frontend loading hyperlinks inside a page in the flash of an eyelid. Have you any model for devising this logic of preloading all the links in the browser cache when a page renders?
mherchel: Traditional server-rendered multi-page apps such as Drupal have so many advantages over single-page applications. Accessibility is easier, performance is generally better, and code can be easily compartmentalized.
However, traditional single-page apps have the ability to refresh only the specific parts of the page that need to be updated, which can allow for a rapid refresh of the content and a great user experience.
Drupal’s Quicklink module is intended to replicate that instantaneous page load experience. It works by reaching out to URLs within the viewport of the user’s screen and having the browser pre-cache the pages. Then, when the user clicks on a link, the page will instantaneously load from the browser’s cache.
The module itself is a wrapper around Google’s Quicklink JavaScript library, which does the heavy lifting. The module provides many intelligent Drupal-specific defaults and gives you many more options to tweak the settings for your site’s specific use case.
TDT [4]: You are a maintainer or co-maintainer of multiple core subsystems, including Olivero and CSS. The role of a maintainer comes with responsibility and time dedication. What motivates you to take up this responsibility? What is the key experience you have gained? Any advice for developers who want to take up duties in core subsystems?
mherchel: I’m privileged to be able to contribute so much to Drupal core. I’m motivated by the opportunity to improve parts of Drupal that I believe are in substantial need of improvement. Knowing that code I write is active on tens of thousands of websites also makes me really happy. I believe that Drupal gives me an avenue to actually make a difference. Adding to all of that, core development has made me a much better developer.
For those who want to take on leadership roles within Drupal, the most important attribute is the ability to consistently marshal and organize people to contribute to your cause. When I started, I was fortunate to work at Lullabot and was able to cajole many of my coworkers into helping out. I still tend to bother them from time to time :)
TDT [5]: As a core CSS maintainer, can you answer why we need to load CSS with a library instead of loading directly?
mherchel: This is something that will likely change through Allow loading CSS and JavaScript directly from templates. Mateu Aguiló Bosch’s work on single directory components in Drupal core is even more exciting. It will allow frontend developers to create a directory with a Twig file, YAML, CSS, JavaScript, etc. Drupal will automatically create the library and load it when the component is invoked. I’m really excited about this!
TDT [6]: Drupal is two decades old. The mean age of Drupal developers is also increasing. As a Drupal Association board member, how do you envision bringing new developers to work with and contribute to Drupal so that the system remains relevant and modern?
mherchel: Back in the mid-2000s, Drupal was the new hotness. We’ve since graduated to being a more stable software platform that doesn’t need to prove itself within the enterprise.
Most newer developers flock to the JavaScript-based ecosystem because of better developer tooling and marketing. Drupal isn’t as sexy as it once was. We see this in declining attendance at DrupalCamps.
It’s imperative that we don’t allow this to turn into a downward spiral. It can happen if we fail to attract new developers and ideas to the project and community.
That’s not going to happen, though. Many smart people are actively working on better developer tooling within Drupal core. The Drupal Association has many plans to do a better job of marketing Drupal, starting with our website.
TDT [7]: Is the current credit system enough incentive to attract full-time developers to become core contributors? How could it be better, thinking on the sidelines of gaming the system allegations?
mherchel: The credit system will always be gamed. But the Drupal Association needs to continue monitoring, tweaking, and adjusting it as necessary while responding to those acting inappropriately.
In my opinion, a larger issue is the turnaround time to get quality reviews on Drupal.org. Developers will get frustrated when they work hard on a patch to Drupal, but their code languishes for months and even years. It can be very demoralizing to anyone.
The community needs to do a better job at quickly reviewing code. As a project and subsystem maintainer, I often have difficulty doing this. Many developers (like me) volunteer their time to contribute to the core and don’t always have much time as needed.
I would love to see companies create space for more paid contributions. It is something that the Drupal Association doesn’t directly control, but we are attempting to use our influence to change this.
TDT [8]: What are your thoughts on the future of Drupal theming in the context of the growing popularity of Headless/Decoupled CMS? Can you discuss any core changes or plan for changes in the Drupal frontend layer to support this architecture?
mherchel: The new single directory components will support JavaScript components such as web components. However, for Drupal to be successful within the headless ecosystem, we need to continue to support popular tools such as Next.js, Gatsby, and Nuxt.
We also need to do a dramatically better job marketing Drupal within this ecosystem. Many developers outside our ecosystem don’t know that Drupal supports modern API formats such as JSON:API and GraphQL (the latter requires the GraphQL module).
TDT [9]: One thing that pleasantly surprised me is your insistence on keeping the RSS button on your blog intact. I was and still am a fan of RSS. But it is nowadays hard to find feeds to subscribe to, even on the digital-first company websites. With RSS gone, I feel a part of the open web is gone. Is it still a crucial part of accessibility or a piece of legacy tech to say adieu?
mherchel: RSS isn’t critical to accessibility, but it sure is a good way for people to keep up on other folks’ blogs!
TDT [10]: WordPress has affordable premium and business hosting plans provided by Automattic, and it is easy to set up a blog or a simple website for a one-person business. Compare it with Drupal hosting. Your blog with the default Olivero theme is ultra-functional. But with no technical background, I cannot set up a blog like I would be able to in WordPress with Drupal. Don’t you think this is a handicap of this fantastic CMS with DXP capabilities? When other systems are also growing into the enterprise sector, could Drupal afford not to consider the freelancer/small business sector?
mherchel: WP is dramatically easier to get up and running compared to Drupal. It’s a common belief that Drupal’s complexity is due to its powerfulness, but I strongly disagree with this. I believe Drupal can still be more powerful and have even better usability for non-technical users.
I’m hoping Dries’ new emphasis on empowering site-builders goes a long way to changing this. I’m especially excited about the Drupal Recipes initiative.
TDT [11]: You are one of the organizers of Florida DrupalCamp. Camps are ideal for propagating knowledge, professional networking, and building a community. How did you first associate with FLDC? What prompted you to stick on?
mherchel: I attended my first Florida DrupalCamp in early 2010. Two years later, I gave my first presentation there, and a year after that, I started helping to organize.
I personally get a lot out of FLDC. I’ve made a lot of friends, and we’ve brought a lot of people into the community. I’m really proud of that.
TDT [12]: Florida DrupalCamp has been here since 2010. Would you share some light into this camp’s history, who the founders were, and how they envisioned it?
mherchel: The OG crew with Florida DrupalCamp included Mike Anello, Ryan Price, Erik Baldwin, Adam Varn, John Learned, and there’s probably more. I didn’t get involved in organizing until 2013.
TDT [13]: For a Drupal developer, is it essential to attend Drupal Camps and Cons? How will they benefit from a camp such as FLDC?
mherchel: Personally, conferences have been extremely beneficial for me. I’ve met lots of friends, learned so much, and given so many talks. The primary benefit is meeting peers, finding out what’s new and exciting, and building relationships. We take extra effort at Florida DrupalCamp to facilitate this.
TDT [14]: Would you be able to share some anecdotes about someone discovering the world of Drupal and becoming a successive professional with the help of this camp?
mherchel: My favorite story is Jordana Fung. She attended her first FLDC not knowing anyone. I met her at the entrance to the afterparty while handing out drink tickets. I started chatting with her and then introduced her to Mike Anello, so she could have someone to hang around with. She ended up having an excellent time and comes back (almost) every year. She’s now deeply embedded with the Drupal community and is a member of the Drupal Community Working Group.