Shipping the right thing
Two weeks ago, I stumbled upon a two-part blog post by Alex Russell, titled Effective Standards Work
.
The first part (The Lay Of The Land
) sets the stage. The second part (Threading the Needle
) attempts to draw conclusions.
It’s worth reading if you’re interested in how Drupal is developed, or in how any consensus-driven open source project works (rather than the increasingly common “controlled by a single corporate entity” “open source”).
It’s written with empathy, modesty and honesty. It shows the struggle of somebody given the task and opportunity to help shape/improve the developer experience of many, but not necessarily the resources to make it happen. I’m grateful he posted it, because something like this is not easy to write nor publish — which he also says himself:
I’ve been drafting and re-drafting versions of this post for almost 4 years. In that time I’ve promised a dozen or more people that I had a post in process that talked about these issues, but for some of the reasons I cited at the beginning, it has never seemed a good time to hit “Publish”. To those folks, my apologies for the delay.
Parallels!
I hope you’ll find the incredibly many parallels with the open source Drupal ecosystem as fascinating as I did!
Below, I’ve picked out some of the most interesting statements and replaced only a few terms, and tadaaa! — it’s accurately describing observations in the Drupal world!
Go read those two blog posts first before reading my observations though! You’ll find some that I didn’t. Then come back here and see which ones I see, having been a Drupal contributor for >11 years and a paid full-time Drupal core contributor for >6.
Standards Theory
DesignA new Drupal contrib module is the process of trying to address a problem with a new feature.StandardisationMoving a contributed module into Drupal core is the process of documenting consensus.
…
The process offeature designDrupal contrib module development is a messy, exciting exploration embarked upon from a place of trust and hope. It requires folks who have problems (web developerssite builders) and the people who can solve them (browser engineersDrupal core/contrib developers) to have wide-ranging conversations.
The Forces at Play
FeatureDrupal module design starts by exploring problems without knowing the answers, whereas participation inWorking GroupsDrupal core initiatives entails sifting a set of proposed solutions and integrating thebest proposalscompeting Drupal modules. Late-stage iteration can happen there, but every change made withoutdevelopersite builder feedback is dangerous — andWorking GroupsDrupal core initiatives aren’t set up to collect or prioritise it.
…
A sure way for abrowser engineerDrupal core/contrib developer to attract kudos is to make existingcontentDrupal sites work better, thereby directly improving things foruserssite builders who choose yourbrowserDrupal module.
Essential Ingredients
- Participation by
web developerssite builders andbrowser engineersDrupal core/contrib developers: Nothing good happens without both groups at the table.- A venue outside
a chartered Working GroupDrupal core in which to design and iterate: Pre-determined outcomes rarely yield new insights and approaches. Long-term relationships ofWG participantsDrupal core developers can also be toxic to new ideas. Nobody takes their first tap-dancing lessons under Broadway’s big lights. Start small and nimble, build from there.- A path towards eventual
standardisationstability & maintainability: Care must be taken to ensure thatIP obligationsAPI & data model stability can be met the future, even if the loose, early group isn’t concerned with a strictIP policyupdate path- Face-to-face deliberation: I’ve never witnessed early design work go well without in-person collaboration. At a minimum, it bootstraps the human relationships necessary to jointly explore alternatives.
…
If you’ve never been to afunctioning standardsDrupal core meeting, it’s easy to imagine languid intellectual salons wherein brilliant ideas spring forth unbidden and perfect consensus is forged in a blinding flash. Nothing could be further from the real experience. Instead, the time available to cover updates and get into nuances of proposed changes can easily eat all of the scheduled time. And this is expensive time! Even when participants don’t have to travel to meet,high-profile groupsDrupal core contributors are comically busy. Recall that the most in-demand members of thegroupDrupal core initiative (chairsDrupal core initiative coordinators, engineers from the most consequentialfirmsDrupal agencies) are doing this as a part-time commitment. Standards work is time away from the day-job, so making the time and expense count matters.
Design → Iterate → Ship & Standardise
What I’ve learned over the past decade trying to evolving the web platform is a frustratingly short list given the amount of pain involved in extracting each insight:
- Do early design work in small, invested groups
- Design in the open, but away from the bright lights of the big stage
- Iterate furiously early on because once it’s in
the webDrupal core, it’s forever- Prioritize plausible interoperability; if an implementer says “that can’t work”, believe them!
- Ship to a limited audience using experimental Drupal core modules as soon as possible to get feedback
- Drive
standardsstabilization of experimental Drupal core modules with evidence and developer feedback from those iterations- Prioritise
interopminimally viable APIs & evolvability over perfectspecsAPIs & data models; tests createcompatibilitystability as much or more than tight prose or perfectIDLAPIs- Dot “i”s and cross “t”s;
chartered Working GroupsDrupal core initiatives andwide reviewmany site builders trying experimental core modules are important ways to improve your design later in the game. These derive from our overriding goal: ship the right thing.
…
So how can you shape the future of the platform as aweb developersite builder?The first thing to understand is that
browser engineersDrupal core/contrib developers want to solve important problems, but they might not know which problems are worth their time. Making progress withimplementerssite builders is often a function of helping them understand the positive impact of solving a problem. They don’t feel it, so you may need to sell it!Building this understanding is a social process. Available, objective evidence can be an important tool, but so are stories. Getting these in front of a sympathetic audience
within a browser teamof Drupal core committers or Drupal contrib module maintainers is perhaps harder.
…
It has gotten ever easier to stay engaged asdesignsexperimental Drupal core modules iterate. After initial meetings, early designs are sketched up and frequently posted toGitHubDrupal.org issues where you can provide comments.
“Ship The Right Thing”
These relatively new opportunities for participation outside formal processes have been intentionally constructed to give developers and evidence a larger role in the design process.
…
There’s a meta-critique of formalstandardsprocesses in Drupal core and the defacto-exclusionary processes used to create them. This series didn’t deal in it deeply because doing so would require a long digressioninto the laws surrounding anti-trust and competition. Suffice to say, I have a deep personal interest in bringing more voices into developing the future of the web platform, and the changes toChrome’sDrupal core’s approach tostandardsadding new modules discussed above have been made with an explicit eye towards broader diversity, inclusion, and a greater role for evidence.
I hope you enjoyed Alex’ blog posts as much as I did!