Slide 1

Slide 1 text

OSSコントリビュートをphp-src メンテナの立場から語る 高町 咲衣

Slide 2

Slide 2 text

自己紹介 高町 咲衣(たかまち さき) BASE株式会社 PHP Foundation コア開発者 PHP 8.4 Release Manager 歌手 / 声優 / 空手黒帯 X: @takamachi1saki

Slide 3

Slide 3 text

php-srcの現状

Slide 4

Slide 4 text

php-srcの現状(issue) issue報告は結構ある ● 時期にもよるけれど、平日は1〜5件/日くらい ● 主にバグ報告と機能リクエストがある ● バグ報告の内訳を見ていくと、実際にバグである報告もあれば、仕様 の勘違い等による「バグじゃなかった」パターンもある ● 「バグじゃなかった」パターンだとしても、「ドキュメントがわかり にくいねこれ」という話になってドキュメント修正が入ったりするこ ともある ● いずれにせよバグ報告は改善に繋がることが多い

Slide 5

Slide 5 text

php-srcの現状(pull request) コミットまでいくメンテナ以外のPRはかなり少ない ● コミット履歴を見ていくと、ほぼメンテナのコミットであることがわ かる ● 2024年のPHP Foundationの報告によると、6〜7割がコア開発メン バーによるコミット ● 「コア開発メンバー」ではなく「メンテナ」で独自に計算し直すと、 2024年は、95%以上がメンテナによるコミットとなる

Slide 6

Slide 6 text

php-srcの現状(属人性) 属人性がありすぎる ● 英語圏では「バスファクタ」という。チーム内の何人までバスに轢か れても大丈夫か?という指標 ● 修正できる人はいる。けれど、それをレビューできる「もう1人の詳し い人」がいない機能が多い ● いたとしても、Nielsである場合が多い(BCMathもそう) ● pdo_pgsqlのように、見れる人が専門的に複数人いると、PRがマージ されるまでがすごく早い

Slide 7

Slide 7 text

コントリビュートについて

Slide 8

Slide 8 text

コントリビュートについて(issue) issue報告はなんであれありがたい ● 実装・テスト時に見逃してしまったバグを報告してもらえるのは本当 に助かる。公開デバッグみたいになってしまって申し訳ない ● 想定してなかったコードの組み合わせとかで報告されてくることも結 構あるので、「その発想なかった!」となることもしばしば ● どこがおかしいかなどの調査はメンテナができるので、「とりあえず このコードでおかしくなるんだけど...」くらいの温度感でもありがた い ● 保守は、issue報告ありきで成り立っていると思う

Slide 9

Slide 9 text

コントリビュートについて(pull request 1/2) PRが立つと、いい意味で目立つ ● 特にバグ修正PRでメンテナ以外の方によるPRが立つと、「おっ!」と なる ● 顔馴染みのコントリビュータもいる中、初めての方だと、特に丁寧に 対応を心がけている(初めてかどうかはラベルですぐわかる) ● 他のメンテナのレビューコメントを見ていても、メンテナ同士でのレ ビューの時よりも明らかに丁寧にしているのがわかる ● 継続的に参加してくれるかもしれない貴重な人材を、雑に扱うことが あってはならない

Slide 10

Slide 10 text

コントリビュートについて(pull request 2/2) issueを立ててから着手した方が吉 ● たまに、メンテナが「あっ、それ着手してるんです...」となることが ある ● issueを立ててからだと、そういった事故を防ぎやすい わからないことがあったら聞いてほしい ● テストの書き方でも実装で迷ってるところでも、わからないところは どんどん聞いてほしいです ● メンテナみんな、教えるのうまいし、教えるの好きです

Slide 11

Slide 11 text

OSSとの付き合い方

Slide 12

Slide 12 text

OSSとの付き合い方 ● 大前提として、OSSはボランティアである ● やりたい人ができる時にするのが一番 「やりたい」に繋がるモチベーションとは? メンテナとして活動してきた経験からいくつかご紹介

Slide 13

Slide 13 text

OSSとの付き合い方(モチベーション) スキルが上がる => 具体的には? ● 調査能力が上がる ○ バグなどを調査するための嗅覚や手法はもちろん、最小限の再現 コードを用意する能力も上がる ○ 情報をissueにまとめたりするので、情報共有能力も上がる ● コミットの積み方 / 分け方が洗練される ○ コミット1つ1つについての意味をよく考える機会が多くなる ○ レビューしやすいコミット粒度が見えてくる

Slide 14

Slide 14 text

OSSとの付き合い方(モチベーション) 様々な「お作法」に触れる機会を得られる => 具体的には? ● コードの書き方、設計のアプローチなどのいわゆる「お作法」はどん なところにもあるもの ○ OSSの「お作法」は所属する企業とはもちろん異なるものなの で、考え方の刺激になる ○ 何かに取り組む時、思考の一本道ではなく、色々なアプローチを 思いつきやすくなる

Slide 15

Slide 15 text

OSSとの付き合い方(モチベーション) 英語力が上がる => 具体的には? ● 日常英会話でまず使わない言い回しに慣れる ○ ビジネス英語も頻繁に出てくるし、スラングも出てくる ○ ITの専門用語も、もちろん頻繁に飛び交う ○ 丁寧でビジネス的、失礼のない言い回しができるようになると、 今後絶対に役立つ場面がある

Slide 16

Slide 16 text

OSSとの付き合い方(モチベーション) 自信に繋がる => 自信に繋がると何が良いのか? ● チャレンジする or しないを選択する場面で、一歩を踏み出す原動力に なる ○ 大事なのはシンプルな成功体験だけではない ○ 特に複雑なOSSでは「失敗して、それでも最終的になんとかなっ た」ということが起こりやすい ○ 「失敗しない自信」ではなく「失敗してもリカバリできる自信」 が身に付きやすい

Slide 17

Slide 17 text

OSSとの付き合い方(モチベーション) 挙げていくとまだまだあります 重要なのは、「だから、やりましょう!」と言いたいのではなく 「興味を持ってくれたら嬉しいな」というような、もっと自由な温 度感であるということ OSSへの個人の取り組みは、自由であるべきです

Slide 18

Slide 18 text

ご清聴ありがとうございました