Quantcast
Channel: Planet Grep
Viewing all articles
Browse latest Browse all 4959

Wim Leers: Shipping the right thing

$
0
0

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 of feature 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 in Working GroupsDrupal core initiatives entails sifting a set of proposed solutions and integrating the best proposalscompeting Drupal modules. Late-stage iteration can happen there, but every change made without developersite builder feedback is dangerous — and Working GroupsDrupal core initiatives aren’t set up to collect or prioritise it.

A sure way for a browser engineerDrupal core/contrib developer to attract kudos is to make existing contentDrupal sites work better, thereby directly improving things for userssite builders who choose your browserDrupal module.

Essential Ingredients

  • Participation by web developerssite builders and browser 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 of WG 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 that IP obligationsAPI& data model stability can be met the future, even if the loose, early group isn’t concerned with a strict IP 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 a functioning 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 the groupDrupal core initiative (chairsDrupal core initiative coordinators, engineers from the most consequential firmsDrupal 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 perfect specsAPIs & data models; tests create compatibilitystability as much or more than tight prose or perfect IDLAPIs
  • Dot “i”s and cross “t”s; chartered Working GroupsDrupal core initiatives and wide 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 a web 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 with implementerssite 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 as designsexperimental Drupal core modules iterate. After initial meetings, early designs are sketched up and frequently posted to GitHubDrupal.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 formal standardsprocesses 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 digression into 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 to Chrome’sDrupal core’s approach to standardsadding 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!


Viewing all articles
Browse latest Browse all 4959

Latest Images

Trending Articles



Latest Images