New ASF PMC members, February 2026

In February, 2026, 12 projects added a total of 63 new PMC members. 46 of those are part of newly-established projects

ALLURA:
– Daniel Castillo (danielcastillothe) on 2026-02-24

CASSANDRA:
– Francisco Guerrero (frankgh) on 2026-02-09

CLOUDSTACK:
– Fabricio Duarte Junior (fabricio) on 2026-02-27
– Kiran Chavala (kiranchavala) on 2026-02-27

DATAFUSION:
– Adrian Garcia Badaracco (adriangb) on 2026-02-02

DRUID:
– Jesse Tuğlu (tuglu) on 2026-02-16

FLINK:
– Ferenc Csaky (fcsaky) on 2026-02-10
– Gabor Somogyi (gaborgsomogyi) on 2026-02-10

GLUTEN 🎉 (New Project):
– Chang Chen (changchen) on 2026-02-18
– Chengcheng Jin (chengchengjin) on 2026-02-18
– Felix Cheung (felixcheung) on 2026-02-18
– Binwei Yang (felixybw) on 2026-02-18
– Hongze Zhang (hongze) on 2026-02-18
– Junqing Li (jackylee) on 2026-02-18
– Ke Jia (kejia) on 2026-02-18
– Liang JiaBiao (lgbo) on 2026-02-18
– Jiayi Liu (liujiayi771) on 2026-02-18
– Neng Liu (liuneng) on 2026-02-18
– Yu Li (liyu) on 2026-02-18
– Shuai Li (loneylee) on 2026-02-18
– Hongbin Ma (mahongbin) on 2026-02-18
– Rong Ma (marong) on 2026-02-18
– Philo He (philo) on 2026-02-18
– Rui Mo (rui) on 2026-02-18
– Shao Feng Shi (shaofengshi) on 2026-02-18
– Taiyang Li (taiyangli) on 2026-02-18
– XiDuo You (ulyssesyou) on 2026-02-18
– Weiting Chen (weitingchen) on 2026-02-18
– Yang Zhang (yangzy) on 2026-02-18
– Kent Yao (yao) on 2026-02-18
– Yuan Zhou (yuanzhou) on 2026-02-18
– ZhiBiao Zhang (zhanglistar) on 2026-02-18
– Zhichao Zhang (zhangzc) on 2026-02-18
– Zhao Kuo (zhaokuo) on 2026-02-18
– Zhen Li (zhli) on 2026-02-18
– Keyong Zhou (zhouky) on 2026-02-18

ICEBERG:
– Prashant Singh (singhpk234) on 2026-02-24
– Sung Yun (sungwy) on 2026-02-24

KAFKA:
– Christo Lolov (clolov) on 2026-02-23
– Kamal Chandraprakash (kamalcph) on 2026-02-22
– Lianet Magrans (lianetm) on 2026-02-21
– Andrew Schofield (schofielaj) on 2026-02-23
– Viktor Somogyi-Vass (viktor) on 2026-02-23

POLARIS 🎉 (New Project):
– Alexandre Dutra (adutra) on 2026-02-18
– Anoop Johnson (anoop) on 2026-02-18
– Ashvin Agrawal (ashvin) on 2026-02-18
– Ryan Blue (blue) on 2026-02-18
– Michael Collado (collado) on 2026-02-18
– Dennis Huo (dhuo) on 2026-02-18
– Dmitri Bourlatchkov (dimas) on 2026-02-18
– Francois Papon (fpapon) on 2026-02-18
– Holden Karau (holden) on 2026-02-18
– Jack Ye (jackye) on 2026-02-18
– Jean-Baptiste Onofré (jbonofre) on 2026-02-18
– Russell Spitzer (russellspitzer) on 2026-02-18
– Robert Stupp (snazy) on 2026-02-18
– Tyler Akidau (takidau) on 2026-02-18
– John Roesler (vvcephei) on 2026-02-18
– Kent Yao (yao) on 2026-02-18
– Yufei Gu (yufei) on 2026-02-18
– Yong Zheng (yzheng) on 2026-02-18

SYSTEMDS:
– Christina Dionysio (cdionysio) on 2026-02-10

XERCES:
– Gary D. Gregory (ggregory) on 2026-02-28

New ASF Committers, February 2026

In February, 2026, 18 projects added a total of 21 new committers

ALLURA:
– Daniel Castillo (danielcastillothe) on 2026-02-24

AMBARI:
– Sandeep Kumar (sandeepk) on 2026-02-23

CALCITE:
– Weihua Zhang (zwh) on 2026-02-04

CAMEL:
– Luigi De Masi (ldemasi) on 2026-02-26

CASBIN:
– Xiangwen Meng (cit110) on 2026-02-26
– Yang Luo (hsluoyz) on 2026-02-23
– Hanyang Xia (xhy5000) on 2026-02-27

DAFFODIL:
– Ryan Cover (coverryan) on 2026-02-02

DORIS:
– Si Wu (seawinde) on 2026-02-25
– Zhang Dong (zddr) on 2026-02-26

GRAPHAR:
– Jinye Wu (jinyewu) on 2026-02-04

ICEBERG:
– Drew Gallardo (dru) on 2026-02-23

KVROCKS:
– Xiaojun Yuan (sryanyuan) on 2026-02-23

NUTTX:
– Chengdong Wang (chengdong) on 2026-02-25

PAIMON:
– Hongbo Xiao (hope) on 2026-02-23

PINOT:
– Shaurya Chaturvedi (shauryachats) on 2026-02-23

POLARIS:
– Danica Fine (danica) on 2026-02-26

SEATA:
– Rongye Wang (lokidundun) on 2026-02-08

SHENYU:
– Siheng Yu (sihengyu) on 2026-02-23

SOLR:
– Rahul Goswami (rahulgoswami) on 2026-02-08

SUPERSET:
– Rafael Benitez (rbenitez) on 2026-02-02

 

ASF releases, January 2026

In January, 2026, 53 ASF projects made 176 releases

AGE:
– apache-age-1.6.0 on 2026-01-08

AIRFLOW:
– apache_airflow_client-3.1.6 on 2026-01-22
– apache_airflow_ctl-0.1.1 on 2026-01-13
– apache_airflow_providers_airbyte-5.3.2 on 2026-01-17
– apache_airflow_providers_apache_beam-6.2.2 on 2026-01-17
– apache_airflow_providers_apache_drill-3.2.1 on 2026-01-17
– apache_airflow_providers_apache_druid-4.4.2 on 2026-01-17
– apache_airflow_providers_apache_flink-1.8.2 on 2026-01-17
– apache_airflow_providers_apache_iceberg-1.4.1 on 2026-01-17
– apache_airflow_providers_apache_impala-1.8.1 on 2026-01-17
– apache_airflow_providers_apache_kylin-3.10.2 on 2026-01-17
– apache_airflow_providers_apache_pig-4.8.2 on 2026-01-17
– apache_airflow_providers_apache_pinot-4.9.2 on 2026-01-17
– apache_airflow_providers_apache_spark-5.5.0 on 2026-01-17
– apache_airflow_providers_apache_tinkerpop-1.1.1 on 2026-01-17
– apache_airflow_providers_apprise-2.3.1 on 2026-01-17
– apache_airflow_providers_arangodb-2.9.2 on 2026-01-17
– apache_airflow_providers_asana-2.11.1 on 2026-01-17
– apache_airflow_providers_atlassian_jira-3.3.1 on 2026-01-17
– apache_airflow_providers_cloudant-4.3.2 on 2026-01-17
– apache_airflow_providers_common_io-1.7.1 on 2026-01-17
– apache_airflow_providers_common_messaging-2.0.2 on 2026-01-17
– apache_airflow_providers_datadog-3.10.2 on 2026-01-17
– apache_airflow_providers_dingding-3.9.2 on 2026-01-17
– apache_airflow_providers_discord-3.12.0 on 2026-01-17
– apache_airflow_providers_docker-4.5.2 on 2026-01-17
– apache_airflow_providers_facebook-3.9.2 on 2026-01-17
– apache_airflow_providers_ftp-3.14.1 on 2026-01-17
– apache_airflow_providers_grpc-3.9.2 on 2026-01-17
– apache_airflow_providers_influxdb-2.10.2 on 2026-01-17
– apache_airflow_providers_jdbc-5.3.2 on 2026-01-17
– apache_airflow_providers_jenkins-4.2.2 on 2026-01-17
– apache_airflow_providers_microsoft_mssql-4.4.1 on 2026-01-17
– apache_airflow_providers_microsoft_psrp-3.2.3 on 2026-01-17
– apache_airflow_providers_microsoft_winrm-3.13.3 on 2026-01-17
– apache_airflow_providers_mongo-5.3.2 on 2026-01-17
– apache_airflow_providers_neo4j-3.11.3 on 2026-01-17
– apache_airflow_providers_odbc-4.11.1 on 2026-01-17
– apache_airflow_providers_openai-1.7.2 on 2026-01-17
– apache_airflow_providers_openfaas-3.9.2 on 2026-01-17
– apache_airflow_providers_opsgenie-5.10.1 on 2026-01-17
– apache_airflow_providers_papermill-3.12.1 on 2026-01-17
– apache_airflow_providers_pgvector-1.6.1 on 2026-01-17
– apache_airflow_providers_pinecone-2.4.2 on 2026-01-17
– apache_airflow_providers_presto-5.10.3 on 2026-01-17
– apache_airflow_providers_qdrant-1.5.2 on 2026-01-17
– apache_airflow_providers_redis-4.4.2 on 2026-01-17
– apache_airflow_providers_salesforce-5.12.2 on 2026-01-17
– apache_airflow_providers_samba-4.12.2 on 2026-01-17
– apache_airflow_providers_segment-3.9.2 on 2026-01-17
– apache_airflow_providers_sendgrid-4.2.1 on 2026-01-17
– apache_airflow_providers_singularity-3.9.2 on 2026-01-17
– apache_airflow_providers_slack-9.6.2 on 2026-01-17
– apache_airflow_providers_smtp-2.4.2 on 2026-01-17
– apache_airflow_providers_sqlite-4.2.1 on 2026-01-17
– apache_airflow_providers_telegram-4.9.2 on 2026-01-17
– apache_airflow_providers_trino-6.4.2 on 2026-01-17
– apache_airflow_providers_vertica-4.2.1 on 2026-01-17
– apache_airflow_providers_weaviate-3.3.1 on 2026-01-17
– apache_airflow_providers_zendesk-4.11.1 on 2026-01-17
– apache_airflow_python_client-3.1.6 on 2026-01-22

ANSWER:
– apache-answer-2.0.0 on 2026-01-29

ARROW:
– apache-arrow-adbc-22 on 2026-01-06
– apache-arrow-go-18.5.1 on 2026-01-26
– apache-arrow-julia-2.8.1 on 2026-01-13
– apache-arrow-object-store-rs-0.12.5 on 2026-01-19
– apache-arrow-object-store-rs-0.13.1 on 2026-01-19

ARTEMIS:
– apache-artemis-2.50.0 on 2026-01-16
– apache-artemis-console-1.6.0 on 2026-01-28

ASTERIXDB:
– apache-asterixdb-jdbc-0.9.8.4 on 2026-01-29

BEAM:
– apache-beam-2.71.0 on 2026-01-22
– apache_beam-2.71.0 on 2026-01-22

BOOKKEEPER:
– bookkeeper-4.17.3 on 2026-01-13

BRPC:
– apache-brpc-1.16.0 on 2026-01-18

CAMEL:
– apache-camel-4.17.0 on 2026-01-12
– apache-camel-quarkus-3.20.4 on 2026-01-14
– apache-camel-quarkus-3.27.2 on 2026-01-05
– camel-kamelets-sources-4.14.4 on 2026-01-12
– camel-kamelets-sources-4.17.0 on 2026-01-14
– camel-upgrade-recipes-sources-4.17.0 on 2026-01-13

COMMONS:
– bcel-6.12.0 on 2026-01-22
– commons-build-plugin-1.16.1 on 2026-01-31
– commons-codec-1.21.0 on 2026-01-29
– commons-parent-96 on 2026-01-21
– commons-pool2-2.13.1 on 2026-01-02
– commons-release-plugin-1.9.2 on 2026-01-31

DAFFODIL:
– apache-daffodil-4.1.0 on 2026-01-28
– apache-daffodil-sbt-1.6.0 on 2026-01-28

DATAFUSION:
– apache-datafusion-52.0.0 on 2026-01-12
– apache-datafusion-52.1.0 on 2026-01-23
– apache-datafusion-ballista-51.0.0 on 2026-01-19
– apache-datafusion-comet-0.13.0 on 2026-01-29

DATASKETCHES:
– apache-datasketches-rust-0.2.0 on 2026-01-09

DOLPHINSCHEDULER:
– apache-dolphinscheduler-3.4.0 on 2026-01-14

DORIS:
– apache-doris-4.0.3-rc03 on 2026-01-30

FLINK:
– flink-connector-aws-5.1.0 on 2026-01-07
– flink-shaded-21.0 on 2026-01-08

GERONIMO:
– xbean-4.30 on 2026-01-26

GRAILS:
– apache-grails-7.0.6 on 2026-01-22
– apache-grails-7.0.7 on 2026-01-29
– apache-grails-publish-0.0.4 on 2026-01-08

GROOVY:
– apache-groovy-4.0.30 on 2026-01-19
– apache-groovy-5.0.4 on 2026-01-19
– apache-groovy-sdk-4.0.30 on 2026-01-19
– apache-groovy-sdk-5.0.4 on 2026-01-19

HERTZBEAT:
– apache-hertzbeat-1.8.0-docker-compose on 2026-01-31

ICEBERG:
– apache-iceberg-cpp-0.2.0 on 2026-01-22
– apache-iceberg-rust-0.8.0 on 2026-01-12
– pyiceberg-0.11.0 on 2026-01-30

INCUBATOR-BURR:
– apache-burr-0.41.0-incubating on 2026-01-11
– apache-burr-0.41.0-incubating-sdist on 2026-01-11

INCUBATOR-FESOD:
– apache-fesod-2.0.0-incubating on 2026-01-14
– apache-fesod-2.0.1-incubating on 2026-01-28

INCUBATOR-LIVY:
– apache-livy-0.9.0-incubating on 2026-01-09

INCUBATOR-POLARIS:
– apache-polaris-1.3.0-incubating on 2026-01-09
– polaris-1.3.0-incubating on 2026-01-09

INCUBATOR-SEATA:
– apache-seata-2.6.0-incubating on 2026-01-28

IOTDB:
– apache-iotdb-1.3.6 on 2026-01-05
– apache-iotdb-2.0.6 on 2026-01-20

JACKRABBIT:
– jackrabbit-2.22.3 on 2026-01-13

JENA:
– jena-6.0.0 on 2026-01-27

KUDU:
– apache-kudu-1.18.1 on 2026-01-05

LOGGING:
– apache-log4cxx-1.6.1 on 2026-01-05

MAVEN:
– apache-37 on 2026-01-13
– maven-archiver-3.6.6 on 2026-01-26
– maven-build-cache-extension-1.2.2 on 2026-01-27
– maven-jdeprscan-plugin-3.0.0 on 2026-01-26
– maven-jdeps-plugin-3.2.0 on 2026-01-26
– maven-jmod-plugin-3.0.0 on 2026-01-26
– maven-parent-47 on 2026-01-13
– maven-scripting-plugin-3.1.0 on 2026-01-26

MINA:
– apache-sshd-2.17.0 on 2026-01-21
– apache-sshd-2.17.1 on 2026-01-22

NETBEANS:
– nbpackage-1.0 on 2026-01-22

NIFI:
– nifi-api-2.6.0 on 2026-01-20

OFBIZ:
– apache-ofbiz-24.09.05 on 2026-01-20

ORC:
– orc-1.9.8 on 2026-01-05
– orc-2.0.7 on 2026-01-05
– orc-2.1.4 on 2026-01-06
– orc-2.2.2 on 2026-01-09

PEKKO:
– apache-pekko-grpc-2.0.0-M1-20260128 on 2026-01-30
– apache-pekko-http-2.0.0-M1-20260114 on 2026-01-20
– apache-pekko-persistence-jdbc-2.0.0-M1-20260127 on 2026-01-27

PULSAR:
– apache-pulsar-client-cpp-4.0.1 on 2026-01-17

QPID:
– apache-qpid-jms-1.16.0 on 2026-01-20
– apache-qpid-jms-2.10.0 on 2026-01-20
– apache-qpid-protonj2-1.1.0 on 2026-01-12
– qpid-proton-dotnet-1.0.0 on 2026-01-16

SEDONA:
– apache-sedona-1.8.1 on 2026-01-09

SIS:
– apache-sis-1.6 on 2026-01-27

SLING:
– org.apache.sling.commons.testing-2.2.2 on 2026-01-13
– org.apache.sling.jaxp-configurator-1.0.0 on 2026-01-30

SOLR:
– solr-9.10.1 on 2026-01-15

SPARK:
– SparkR_3.5.8 on 2026-01-12
– SparkR_4.1.1 on 2026-01-02
– pyspark-3.5.8 on 2026-01-12
– pyspark-4.1.1 on 2026-01-02
– pyspark_client-4.1.1 on 2026-01-02
– pyspark_connect-4.1.1 on 2026-01-02
– spark-3.5.8 on 2026-01-12
– spark-4.1.1 on 2026-01-02
– spark-connect-swift-0.5.0 on 2026-01-12
– spark-kubernetes-operator-0.7.0 on 2026-01-12

STORMCRAWLER:
– apache-stormcrawler-3.5.1 on 2026-01-17

SYNCOPE:
– syncope-4.0.4 on 2026-01-30

TEACLAVE:
– apache-teaclave-trustzone-sdk-0.8.0 on 2026-01-30

TOMCAT:
– apache-tomcat-10.1.52 on 2026-01-23
– apache-tomcat-11.0.18 on 2026-01-23
– apache-tomcat-9.0.115 on 2026-01-21

TOMEE:
– apache-tomee-10.1.4-microprofile on 2026-01-29
– apache-tomee-10.1.4-plume on 2026-01-29
– apache-tomee-10.1.4-plus on 2026-01-29
– apache-tomee-10.1.4-webprofile on 2026-01-29
– tomee-10.1.4 on 2026-01-29

TVM:
– apache-tvm-ffi-v0.1.8 on 2026-01-12

ZOOKEEPER:
– apache-zookeeper-3.8.6 on 2026-01-28

Source: find_activity.py from asf-highlights

New ASF PMC members, January 2026

In January, 2026, 10 projects added a total of 23 new PMC members

AIRFLOW:
– Bugra Ozturk (bugraoz) on 2026-01-14
– Rahul Vats (rahulvats) on 2026-01-14

DATASKETCHES:
– Zili Chen (tison) on 2026-01-06

FLINK:
– Ruan Hang (ruanhang1993) on 2026-01-12

GRAILS:
– Thomas Rasmussen (tbrasmussen) on 2026-01-20

HUGEGRAPH:
– Xiangdong Huang (hxd) on 2026-01-21
– Jermy Li (jermy) on 2026-01-21
– Imba Jin (jin) on 2026-01-21
– Lidong Dai (lidongdai) on 2026-01-21
– NingRui Li (linary) on 2026-01-21
– Yu Li (liyu) on 2026-01-21
– Shiming Zhang (ming) on 2026-01-21
– Willem Ning Jiang (ningjiang) on 2026-01-21
– Juan Pan (panjuan) on 2026-01-21
– Yan Zhang (vaughn) on 2026-01-21
– Yuchen Ding (vgalaxies) on 2026-01-21
– Cong Zhao (zhaocong) on 2026-01-21

LIBCLOUD:
– Miguel Caballer (micafer) on 2026-01-24
– Zili Chen (tison) on 2026-01-24

NETBEANS:
– Brad Walker (bwalker) on 2026-01-26

PARQUET:
– Andrew Lamb (alamb) on 2026-01-21

SDAP:
– Joshua Garde (joshgarde) on 2026-01-13

ZOOKEEPER:
– Kezhu Wang (kezhuw) on 2026-01-19

Source: find_activity.py from asf-highlights

New ASF committers, January 2026

In January, 2026, 25 ASF projects added a total of 35 new committers

AIRFLOW:
– Dheeraj Turaga (turaga) on 2026-01-07

ARROW:
– Ryan Johnson (scovich) on 2026-01-29

ASTERIXDB:
– Shahrzad Haji Amin Shirazi (shahrshirazi) on 2026-01-14

CALDERA:
– Chris Lenk (clenk) on 2026-01-16
– Mark Perry (mperry) on 2026-01-19
– Rachel Murphy (rmurphy) on 2026-01-19

CLOUDBERRY:
– Rose Duan (roseduan) on 2026-01-16

DAFFODIL:
– Jeremy Yao (jeremyyao) on 2026-01-07

DATAFUSION:
– Nuno Faria (nunofaria) on 2026-01-26

DATASKETCHES:
– Filippo Rossi (frossi) on 2026-01-19
– Hyeonho Kim (proost) on 2026-01-14

DORIS:
– Shixin Zhang (honestmanxin) on 2026-01-14

DRUID:
– Adheip Singh Sadhrao (adheipsingh) on 2026-01-27
– Andrew Ho (aho) on 2026-01-16

FLAGON:
– Mederick Grivel (mgrivel) on 2026-01-14

GEODE:
– Kaajal Nanavati (kaajal) on 2026-01-19
– Ventsislav Marinov (ventsi) on 2026-01-14

HADOOP:
– Haobo Zhang (zhanghaobo) on 2026-01-01

HBASE:
– Dieter De Paepe (dieter) on 2026-01-28
– Hernan Romer (hgromer) on 2026-01-08

IGGY:
– Łukasz Zborek (lzborek) on 2026-01-14

IOTDB:
– Zhenyu Shi (shizy818) on 2026-01-12
– Weihao Li (weihao) on 2026-01-12
– Zhengming Zhang (zhangzhengming) on 2026-01-16

JENA:
– Øyvind Gjesdal (oyvindlg) on 2026-01-26

LUCENE:
– Shubham Chaudhary (shubhamvishu) on 2026-01-07

MAHOUT:
– Ryan Huang (hcr) on 2026-01-14
– Jie-Kai Chang (jiekaichang) on 2026-01-26

NETBEANS:
– Haidu Bogdan (haidubogdan) on 2026-01-28

RANGER:
– Vikas Kumar (vikaskumar) on 2026-01-16

RESILIENTDB:
– Henry Chou (bchou9) on 2026-01-14

SDAP:
– Joshua Garde (joshgarde) on 2026-01-08

SHIRO:
– Steinar Bang (steinarb) on 2026-01-12

SYSTEMDS:
– Jannik Lindemann (janniklinde) on 2026-01-07
– Rene Enjilian (renjilian) on 2026-01-12

Source: find_activity.py from asf-highlights.

Las Vegas, the Fourth Circle

reflections on Last Vegas
Re:Invent, 2025

From the moment I
emerge from the A321 at Harry Reid,
into the Fourth Circle of the Inferno,
the auditory assault commences.

Bells and klaxons accompanied by
leering show girls and roaring dragons.

There is so much to be won!
Perhaps not by you.

I, the reluctant Candide,
running the auto da fé
for listening to the heresy of Pangloss:
This year will be fun!

I had breakfast this morning
at a lovely French café
at the base of an ersatz Eiffel,
the waiter shouting
from a few centimeters away
to enquire how I would
desire mes oeufs.
I yelled back that over easy would be
magnifique.

The cacophany is constant
the bells, bells, bells, bells
the clamor and the clangor of the bells!

While I desire, in the words of James Kirkup,
the sanctuary of the guestroom
where the bedlam is muffled,
but still unremitting.

Soon I must emerge, and go to work,
incredulous, as each year
that these throngs come here
voluntarily.

DDOS?

A couple of weeks ago I posted a recording of “The Veldt”, by Ray Bradbury, which I recorded for my son.

Today I got a notice from my web host that I had used 75% of my bandwidth allocation for the month – something which has never happened since I was slashdotted back in the 90s. Poking around, it appears that thousands of requests were beind made for that mp3 file. There have been almost a half million requests for the file so far this month.

A quick mod_security rule, and fail2ban is now blocking 187 clients, and that’s growing at a rate of about one per second.

I have absolutely no idea why this would be happening.

Which Glen

Which Glen
(Banners, Lexington, KY)

They can never remember which Glen —
fiddich or livet
But they know it’s one of those,
and that when Maria’s order comes in
that’s for me.

Maybe some day they’ll remember my name
and possibly even which Glen
but this is a good start.

When your village becomes a city

One discussion at the Accountability In Open Source workshop I attended this week was about when your village becomes a city. This was an analogy for when a small project, where everyone knows everyone else (ie, a village) reaches that inflection point where that’s no longer the case.

Community norms, agreed upon by consensus and habit, need to be codified. Tasks that everyone knew how to do need to be documented, so that they can be delegated to people who weren’t there at the beginning. The purpose and mission of the project, which everyone knew because they were in the room where it happened, must be written down and explained to the people who came later.

The discussion covered a lot of ground, as one might expect, from reasons why projects don’t survive this transition (founders’ unwillingness to share control with a larger group; user demands outpacing developers’ bandwidth; company tries to capture more value from the growing audience and ends up alienating them; etc.) to specific things that a community should do to prepare for and succeed through this phase.

Projects tend to succeed when the participants have ownership. Project leaders should therefore be willing to share leadership, rather than clinging to it. At the same time, they should clearly document project goals, and non-goals, to stave off value drift and feature creep, which can be the death of a project.

A common theme with small projects which was addressed at some length was that they tend to be controlled by Large Personalities, rather than by a project mission. That can lead to power struggles, interpersonal squabbles, and decisions being about the who rather than about the ideas themselves. Project growth is an (often missed!) opportunity to move past that, and refocus on specific goals.

Projects should proactively create roles (and give them titles! that lets people know that their work is valued!) that community members can step into. This involves looking around and intentionally documenting the stuff that you just do and don’t think about. Write runbooks. Ask for a shadow, and ask them to follow the runbook with your supervision. Incrementally improve it with the steps that you just automatically do and forgot to write down. Over time, relinquish control and let them just take it. Encourage them to identify the next person in the succession path.

 

Open Source Diplomats

At the open source accountability workshop earlier this week, Stephen Walli used a phrase that really resonated with me. He called his role (and mine) open source diplomats. We do much the same thing that diplomats do – lots of conversations, negotiations, wheedling and persuading – which is all incredibly hard to measure.

He mentioned that he investigated how actual diplomats are measured, and, turns out, that’s really hard too.

A large part of my work is what we snarkily refer to as preventing dumpster fires. We identify potential errors in open source engagement, and we work with the teams in question to ensure better outcomes. This might be something as simple as helping an engineer persuade a project to welcome their patch, in ways that are appropriate to that community. Or it might be something as potentially catastrophic as avoiding a fork of a major open source project, which might harm reputation and careers, and burn trust in critical communities.

That’s hard to measure. I mean, I could put in my monthly report that I avoided 10 catastrophes, but there’s only my word that those catastrophes would have happened otherwise. And, even then, quantifying the cost or impact of those catastrophes, or of avoiding them, is also impossible. Would customers care? Would it affect revenue? Would it be a blip in the tech news? So many of these things are impossible to predict. I have only my decades of experience and a gut feeling to guide me in most of these scenarios.

It’s also easy to abuse this kind of situation. I could, for example, simply state that, by my wisdom alone, we avoided a billion dollar loss. Yay me. Who’s to say otherwise? And, indeed, I have, in the past, worked with people who did exactly that, and got away with it, for years. Which is in large part why I care about trying to find ways to quantify what I do, and why it matters — often to people who don’t understand the nuances of open source community engagement.

Unfortunately, this particular part of the workshop produced more questions, and anecdotes, than actual solutions, but one thing was raised by several people. Many engineering roles at large corporations are measured by what you released/launched/shipped. As such, engineers working in open source are at a disadvantage for promotions or recognition because that’s not often an actual thing in the projects that they work with. Moreover, you can realistically work for a year on a feature and then have the community say, no thanks. (Granted, there are ways to mitigate that, but that’s another article.) This makes it very important that people who understand open source are involved in discussions around promotion and recognition, and find ways to reward open source participation in that process. Notably, everyone in the room said that their employer is bad at that, so a lot more discussion is warranted here.

The Margin Is Too Narrow