Thousands of feet in the air, halfway between my Washington, D.C. home and the cottage I shared with 20+ CiviCRMers for the better part of a week, I struggle to sum up the code sprint that has put ideas into motion like pinballs inside my head.
I could write about the beta release of CiviVolunteer, which Michael Daryabeygi and I have been spec-ing, architecting, and developing since April 2012. I could fill a blog post with descriptions of the slick UI of the soon-to-be-alpha-released CiviBooking extension and the variety of use cases it supports, the impressive CiviHR demonstration Tim Otten gave and the elegant code that powers it, or the Backbone.Marionette JavaScript framework leveraged by all three extensions.
But the thing that most stands out to me about the CiviCRM project is its extraordinary community.
We have so much diversity. Represented at the sprint were the United Kingdom, Canada, India, Belgium, Germany, the United States, and Spain. English, Spanish, French, and Hindi flowed freely through the corridors. Ages ranged from 20-something to 60-something. Among us were end-users, documenters, implementors, developers, and various sorts of 'tweeners. Core team, consultant, and nonprofit staffer sat elbow-to-elbow around the same tangle of Ethernet cables. Some installed git for the first time, while others polished up the half-dozen extensions they'd already written to make them suitable for public release.
Rather than factionalize our group, this diversity propelled us forward. Working together gave us a more complete picture of the problems we're all trying to solve:
- The core team witnessed the challenges a new developer faces in setting up his or her first testing/development environment. As a result, a spec was put together to eliminate unnecessary barriers to entry, and the code to pop up a new development environment with just two or three commands got its start.
- Developers got a tour of the interface used to translate CiviCRM and saw firsthand the ramifications of their decisions on translators. While some sprinters translated interfaces, others documented internationalization best practices, built in support for multiple surnames, and re-architected our translation functions to make it easier for developers to internationalize their extensions.
- Members of the CiviHR, CiviVolunteer, and CiviBooking teams huddled to discuss the prospect of a single utility extension that could serve the scheduling needs for all three projects.
The CiviCRM project is full of incredibly talented, brilliant, and welcoming people who want you to succeed, whether you're a tiny nonprofit setting up your first CRM or a small tech shop trying to compete in a landscape blotted with the shadows of multi-million-dollar providers. In the end, I'd say the best thing we built at the London code sprint was community.