Community Spotlight: Jess (xjm)
Jess (Drupal.org username xjm) is a Drupal developer, core contributor, module maintainer, and mentor, and just plain all-around awesome! She is a web developer for the University of Wisconsin's Department of Family Medicine. She also volunteers at the University of Wisconsin-Madison Arboretum.
Jess has made many contributions to Drupal, including roles as:
- maintainer of the Taxonomy Access Control and Taxonomy Lineage modules, among others.
- co-maintainer of the Taxonomy module in Drupal core.
- active participant in the API documentation clean-up sprint happening in Drupal 8, as well as efforts to clean up the entity system.
- co-lead of the Clean Up Core community initaitive.
- friendly and knowledgeable mentor to new contributors.
- organizer of the twice-weekly core office hours to help get new core contributors involved.
- inventor of the Issue summary initiative to give new contributors something very valuable but approachable as their first core contribution: reading through and summarizing long, difficult issues to help speed along their review and commit.
Sites she's built with Drupal include the UW Department of Family Medicine's public and intranet websites, an organizational knowledge base, and various small sites.
Jess attended her first DrupalCon in Chicago, and is coming to DrupalCon Denver as well, where she is planning to run an in-person core office hours sprint!
We asked Jess a few questions:
Tell us a bit about yourself! What is your background, or things that interest you outside Drupal?
I love the outdoors. I often bike 30 miles a day in the summer (that's 50 km for those of you using reasonable systems of measurement). I camp, hike, and do ecological restoration, and I probably can identify more plant species than you. ;) I also have other crunchy pastimes like gardening, cooking, and making candles. (I have not yet attempted to weave my own yogurt.)
I read a ridiculous number of books, and I speak bits of five foreign-to-me languages (though I can only carry on a conversation of any substance in French). I think General Relativity is awesome and I love mathematics and statistics.
I'm also a nerd. You probably got that already.
How and why did you start contributing to Drupal core?
I opened the 7.x-1.x branch of TAC with no knowledge of Drupal 7. 80% of TAC's upgrade from D6 was straightforward, but then I crashed headlong into the Field API and D7's entity form handling. I started asking a lot of questions, and catch was incredibly patient and helpful. I connected with someone in IRC who had a similar issue with entity forms, and we came to the conclusion that we needed a hook_field_widget_form_alter(), which did not yet exist in the API. We posted an issue for that, and before I'd finished my lunch, sun had written a patch for it.
Around then two things happened. First, the issue summary functionality was deployed on Drupal.org, and I saw a way that I could actually do something useful in the core queue in exchange for all the help I was getting. My hope was that issue summaries would widen the "review bottleneck" by saving reviewers and core committers time. I started writing an issue summary every day for major and critical core issues. Every summary I wrote also taught me something about Drupal.
A few days later, chx asked in IRC for someone to reroll a patch with a couple of minor fixes. I thought, hey, I can do that, and it ended up being my first core commit credit. For chx, who has written more of core than pretty much anyone, it would have been a triviality, but for me, it was the realization that I was actually capable of contributing, at least in a small way. That opened a door for me.
In the process of writing my once-a-day issue summaries, I came across some issues in subject areas I already understood well, so I worked on the patches as well as the summaries. Then I learned how to write automated tests for TAC, and consequently I was able to start contributing automated tests for core as well. The more issues I worked on, the more I understood, and the more I could do. Kind of an avalanche set off by a pebble, by the fact that people like catch and sun and chx took the time to be supportive and encouraging. So that's why I have my Drupal.org profile tagged with "full frontal nicety" (cr. webchick). Be nice. Go out of your way to be helpful and kind, because it can make all the difference to a budding contributor.
Can you explain some of the benefits of getting involved with the community and what you get out of it?
The best part is having co-ownership in the software that I use every day in my job. Being able to help resolve problems I encounter is very empowering, as is knowing where I can turn when I get stumped by something. It's also wonderful to collaborate with talented, engaging people from all over the world.
Now, if I were talking to my boss (hi Justin!), I'd emphasize that being actively involved in the project is good business strategy:
- Filing and participating in issues helps resolve real, production problems for our sites in maintainable ways.
- Contributing code back to the community means that there are thousands of other sites to help debug and test that code.
- Participating in discussions about Drupal core and contributed projects helps us make informed decisions.
What motivates you to help out others to get involved?
Two things:
- For years, I was active in contributed module queues, but terrified of core. It took meeting a couple of friendly Acquianauts at DrupalCon Chicago to show me that core developers were actually completely approachable human beings. ;) So I'd like to extend that same realization to everyone else who might be in the same place I was.
- Drupal 7's fantastic success also means that there are a lot more people using Drupal and filing issues. There's also a chronic shortage of experienced patch reviewers, which means issues that could well be fixed by an existing patch get stuck and languish. We as a community need to invest in connecting new contributors with the work they can do now.
What's your advice to new would-be contributors?
- Join Drupal IRC channels. Lurk in #drupal-contribute.
- Check out core office hours or the Novice queue.
- Try your hand at contributing an issue summary. If you take the time to carefully read and understand an issue, you'll likely learn a lot about a particular topic, and also get a feel for how the community resolves issues and makes decisions.
- Code is not the only way to contribute--not even for core. (Just today, a self-proclaimed "not a PHP nerd" unblocked a 4+ year old core issue by doing manual testing.)
- When someone gives you feedback, embrace it! If code is your thing, learn to love the patch reviews you get. Even if all someone says is that a code comment is unclear, they're helping your patch move forward.
- Pay attention to the feedback that experienced contributors give others, as well. You can learn a lot by watching what reviewers look for.
- Above all, be patient and don't get discouraged! Sometimes it can take a long time and a lot of iterations for issues to be resolved. And, if you are unsure about anything, ask the nice folks in IRC.
What do you do with Drupal these days?
Well, it looks like I'm finally going to get to upgrade my department's sites to D7, which is a huge relief. I'm looking forward to experimenting with responsive frontend design and all the cool stuff I missed out on during a decade of supporting pixel-perfect IE6. (We finally decided to drop support this year.)
How did you get started in Drupal? What were your stumbling blocks, and what were the moments that things started to click?
The full version of that story requires a couple drinks, or possibly a therapist. However, I'll say that cowboy-coding a CMS with 2-3 others back in 2003 taught me the comparative value of open source projects, and that I picked Drupal for a client in 2006 primarily because the Drupal community seemed to be active and thriving.
The thing that stumped me the most in those first few months with Drupal 4.7 was probably access control; I spent weeks of testing and hacking trying to implement the permission scheme I wanted. (I installed TAC very briefly in D4.7... and uninstalled it as fast as I possibly could. I'm not sure if it's irony or fate that led to me maintaining it.) A few turning points for me were learning firsthand the bad things that could happen if I hacked core; the release of the Zen theme, which brightened my relationship with Drupal's frontend considerably; and my discovery of hook_nodeapi()
and hook_form_alter()
. Oh, and when I got over the idea that "I was a developer and knew how to write SQL" and realized that Views was pretty powerful. ;)
What's your favorite restaurant in Madison?
That might be the toughest question here, because we have a lot of amazing restaurants! In this context, I think the honor must go to Bradbury's, where I've written a whole lot of code, issue summaries, and so on; not to mention papers on topics ranging from the ecological history of Cherokee Marsh to the sociolinguistics of the distinction between Hindi and Urdu. (This is what happens when you go to college for over a decade.) Bradbury's has the best coffee in town, plus a rotating, seasonal menu of sweet and savory crêpes featuring local produce.
What would Linnaeus do?
Well, I'd love it if he could help me out with the Cyperaceae. If you think Drupal can be confusing, try identifying sedges sometime.
Anything else to add? :)
t5'''''''''''''''/
(This last contribution is from my cat Auri, who wisely considers my laptop to be her primary competitor for my attention.)
Know of anyone else doing awesome things in the community? Nominate them for Community Spotlight!
Drupal version: Drupal 7.xDrupal 8.x