Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSS開発者という働き方

 OSS開発者という働き方

柴田 博志 GitHub: hsbt
2025 年 8 月 28 日 Ruby Association Activity Report

Avatar for ANDPAD inc

ANDPAD inc

August 29, 2025
Tweet

More Decks by ANDPAD inc

Other Decks in Programming

Transcript

  1. OSS։ൃͱͯ͠ͷ Ruby ͷ։ൃ͸ɺ ⼤ ͖͘2ͭͷ׆ಈʹ෼͚ΒΕΔɻ ৽͍͠ػೳ΍ະདྷͷઃܭΛٞ࿦ɺ࣮૷Λ͢Δɺ(ଟ෼)՚΍͔ͳ׆ಈɻ Ruby という言語の進化 (表舞台) どうやって「仕事」として成り⽴たせる?

    5 ஍ಓͳόάमਖ਼΍ɺ༷ʑͳ؀ڥͰಈ͖ଓ͚ΔͨΊͷ੔උɻ メンテナンスという⾒えない⼟台 (෣୆ཪ) ։ൃऀ͕։ൃΛ͢ΔͨΊͷ CI ΍֤छϓϥοτϑΥʔϜͷ੔උɺ༧ࢉͷ֬อͱࣥߦ Ruby ͕ಉ͍ࠝͯ͠Δ֤छϥΠϒϥϦͷ౷߹ͱςετ࣮ߦ ܶతͳύϑΥʔϚϯεվળɺ৽͍͠ύϥμΠϜͷಋೖɻ 柴田の活動領域は主にこっち
  2. RubyGems と Bundler は皆さんが使うgemを管理する、いわばRuby世界のライフライン。 RubyGems/Bundler を始めとするライブラリの継続統合: 舞台裏の仕事|エコシステムの⼼臓部を守る 6 ϦϦʔε࡞ۀΛ ⾃

    ಈԽ͢Δ͜ͱͰɺ ⼈ తϛεΛ๷͗ɺϝϯςφͷόʔϯΞ΢τ͔ΒΤί γεςϜΛकΔɻ ⾃動化によるリスク管理: RubyGems チームと連携しながら、Ruby 本体への同梱や戦略をコーディネート Ruby が同梱しているライブラリ(net-http や rake, rbs など) が開発版でも正常に動く ことを毎日確認 ্هͷϥΠϒϥϦͷ౷߹΋ՄೳͳݶΓࣗಈԽ
  3. 開発者の多くはMac/Linuxユーザー。それでも Windowsͷར༻ऀ͸ੈքͰ ࠷΋ユーザー数が多い環境。 Windowsαϙʔτͷ࠷લઢ: 舞台裏の仕事(2):|あらゆる場所で動かし続ける 7 「私のPCでは動くのに…」をなくすため、様々な環境で⾃動テストを動 かし続ける。rubyci を all

    green にしたので褒めて欲しい。 多様な環境での品質保証: ruby-build のメンテナンスを通して、常に Ruby がビルドできる状況 の維持 一度、壊れてしまったまま時間が経つと直すのが途端に難しくなるので ビルドとテストが通るように毎日チェック。
  4. openssl ͳͲͷϥΠϒϥϦ΍ Rails ͳͲʹ ੬ऑੑ͕ ⾒ ͔ͭΕ͹ɺଈ࠲ʹରԠ͢Δɻ 開発プラットフォームのメンテナンス: 舞台裏の仕事(3)|"当たり前"を⽀える⾒えない努⼒ 8

    Ruby ⾃ ମͷϏϧυ΍ςετͷ࢓૊ΈΛ վળ͠ɺଞͷ։ൃऀ͕΋ͬͱָʹɺ։ ൃʹूதͰ͖ΔΑ͏ʹ͢Δɻ GitHub ΍ Heroku ͳͲɺRuby Λࢧԉ ͯ͘͠ΕΔϓϥοτϑΥʔϜͱͷંি 開発環境の整備: Ruby の7月の GitHub の利用料金 $25000くらい
  5. 時間と給与を与えることで支えてくれているのはアンドパッド、一方で Ruby にフォーカスして支え てくれているのが Ruby Association ɻ ΧϯϑΝϨϯεલޙʹ։࠵͞ΕΔΠϕϯτͷۚમతͳ ⽀ ԉ΍ɺ৽ػೳͷ։ൃάϥϯτΛ௨ͯ͠

    Ruby ίϛολͷ ܧଓੑΛ֬อ RubyίϛϡχςΟͷԠԉஂ: では、誰がこの活動を⽀えているのか? 9 Ruby Associationͱڠ ⼒ ͠ɺ։ൃऀ͕ू͏ʮ։ൃ߹ ॓ʯΛاըɾӡӦɻ 私の役割: 皆で集まり、開発を加速させ、新しい仲間を育てる場を 作る。
  6. Ruby ʹ༻ҙ͍ͯ͠Δ CI(rubyci.org ΍ GitHub Actions)ΛશͯνΣοΫɻfail ͍ͯ͠ΔՕॴ͕ ͋Ε͹ϒϥ΢βͷλϒͱͯ͠։͍ͯอଘɻ 大体 6時に起床、ゲームのデイリー消化、朝食後にίʔώʔΛ

    ⽚⼿ ʹɺGitHub ͷ௨஌ɺメー リングリスト(ruby-core)や Slack ɺFeed ͷ Ruby/OSS ؔ࿈ʹ໨Λ௨͢ɻλϒͰอଘɻ 収集 診断 計画 OSS 開発者の日常|8:00 - 10:00 11 Fail している CI の修正を最優先にし、ऩूͨ͠৘ใ͔Β ⾃ ෼͕ରԠ͢΂͖಺༰を確認し、1 ⽇の⼤まかな計画を⽴てる。
  7. 最近はϦϦʔε࡞ۀͷࣗಈԽͱ CI ͷߴ଎ԽʹྗΛೖΕ͍ͯΔͷͰɺࢼߦࡨޡ͠ͳ͕Β͍Θ ΏΔී௨ͷϓϩμΫτ։ൃͱಉ༷ʹ࡞ۀΛߦ͏ɻ CI で落ちている箇所を調べ始める。毎日やっているので、前日に落ちていないなら1日分 の修正が原因なことが多く、コミットを全部読んで原因っぽいものを直す。よくわからな いものは revert して、コミットした人にメンションをする。

    मਖ਼: 仕込み: OSS 開発者の日常|10:00 - 18:00 12 自分が保有している macOS(beta, stable) と Windows、Linux(WSL)で Ruby をビルド、 テストが通ることを確認、通らない場合は bugs.ruby-lang.org に報告するか、nobu な どと連携してすぐに直す。 確認:
  8. OSS 開発者の日常|10:00 - 18:00 13 Ruby CI で落ちているが nobu が入れた変更に対応

    できてない奴なので毎日 nobu にどんな感じか聞き 続ける GitHub Actions で flaky なやつ、多分 笹田さんの環境で flaky なやつ、多分
  9. RFC ではクライアント側はヘッダはつけなくても良いと定義、aws-sdk でも Content- Type ヘッダを削除するようなパッチを使っていた Rubyͷඪ४ϥΠϒϥϦ net-http ͕ɺContent-Type Λࢦఆ͠ͳ͍৔߹ʹσϑΥϧτͷϔο

    μを付けていることで、aws-sdk の開発者が困っていた 例: https://github.com/ruby/net-http/pull/207 影響範囲の調査: OSS 開発者の日常| 例: net-http ͱ Content-Type 14 ։ൃऀձٞͰʮͱΓ͋͑ͣ΍ΊͯΈ·͠ΐ͏͔ʯͱఏҊ͠ɺ皆の合意を得て、Rubyの 次のバージョンに添付するものから未指定の場合は Content-Type を空とする事にし た 結論: CI や インフラの整備が中心だが、ライブラリの修正や機能追加もたまにやる。⼀つの修正が、世 界中のRuby利⽤者に影響するので、常に範囲や戦略を考え続けている。
  10. 毎月第二火曜午後に フルタイムコミッタを中心にオンラインで集まる。 毎週火曜午前に Matz や Ruby ίϛολΛத৺ʹオンラインで集まる。 井⼾端会議 (Ruby Office

    Hour): 開発者会議 準備会: OSS 開発者の日常|11:00 - 18:00 15 誰かに困っている話をしたりされたり、bugs.ruby-lang.org に投稿された内容についてカ ジュアルな感じで雑談する。 木曜の開発者会議の前に論点を整理して、「誰が」「何を」決めるのかを洗い出しておく 毎月第二木曜午後に Matz を含む Ruby コミッタがオンラインで集まる。 開発者会議: 準備会で洗い出した論点をベースに Matz に決めてもらう。たまに脱線して議論が発散し て 20時くらいまで喋っている時もある。
  11. 上長(古橋、秒速) や CEO(稲田) と組織の現状や事業の方向性、自分自身の動き方などを 会話 カンファレンスへのスポンサード、ブース設営や関連イベントの企画と運営、テックブロ グや対外的な露出について検討 採用広報チームの定例: 1on1: OSS

    開発者の日常|13:00 - 15:00 16 採用広報の動きを踏まえた上で新卒・中途などの採用に関する戦略を検討、いわゆるリク ルータ的な動きも担っている 採用チームの定例 © 2024 ANDPAD All Rights Reserved. Confidential Confidential
  12. OSS 開発者の日常|13:00 - 15:00 17 RubyKaigi 2025 のブース企画 Ruby 3.4

    リリースパーティ Kaigi on Rails 2024 アフターイベント © 2024 ANDPAD All Rights Reserved. Confidential Confidential
  13. 朝は US、夜は EU と仕事(=OSS開発)をやめる時をはっきりさせないと無限に何かをしてし まうので休日や平日の19:00 には Slack などをシャットダウンしている 情報をシャットアウトする強い気持ち OSS

    開発者の日常|1 ⽇ ͷ·ͱΊ 18 ࣗ෼͕΍͍ͬͯΔ͜ͱ͕८Γ८ͬͯॴଐݩͰ͋ΔΞϯυύουʹརӹΛ΋ͨΒ͢ͱ͍͏͜ͱ ΛৗʹϓϨθϯςʔγϣϯͰ͖ΔΑ͏ʹ͍ͯ͠Δ 自分で自分の価値を作って売り込む ྫ: OSS ։ൃΛ͢Δ > ςοΫϒϩάͳͲͰެ։͢Δ > ൓Ԡ͔Β࣮ࡍʹ࠾༻׆ಈΛͯ͠࠾༻ ʹܨ͛Δ
  14. 信念1: 地味で、でも重要な仕事をやり遂げる 21 ࠷৽ػೳͷ։ൃ͸ՖܗɻͰ΋ɺ ⼤ ଟ਺ͷϢʔβʔ͕࢖͏҆ఆ൛ΛकΓଓ͚Δ͜ͱ͕ͦ͜ɺ ࠷ ⼤ ͷ৴པʹܨ͕Δ(ଟ෼) 安定版のリリース:

    不定期に報告、または発見される脆弱性について、論点を整頓し、対応すると関係者で決 めたものの CVE を取得して、修正、新しいバージョンのリリースをする。 脆弱性対応: Windows ΁ͷ vcpkg ͷಋೖɺLinux/Windows ͷ ARM ରԠͳͲɺେଟ਺ͷਓ͕ "࢖͍ͬͯͳ ͍" ؀ڥͰ؆୯ʹ։ൃΛ։࢝Ͱ͖ΔΑ͏ʹυΩϡϝϯτ΍πʔϧΛ੔උ 開発プロセスの改善:
  15. Ruby͕༷ʑͳ؀ڥͰਖ਼͘͠ಈ͔͘Λ24࣌ؒ365 ⽇ νΣο Ϋ͢る。 Ruby CI や GitHub Actions のメンテナンス

    信念3: 開発の⽣命線を守る 23 新しいOSが出れば、Ruby Association と AWS のサポー トを眺めながら適当な新しいテスト環境を⽤意する。 プラットフォームの維持 Mackerel などの監視を設定し、アラートがあれば対応を する。CI の失敗は前述の通り。 多様な OS で構成されていて、それぞれの OS のメンテ 方法についてはそれなりに詳しい。 ࠷ۙ͸མͪண͍͖ͯͨΞϥʔτ
  16. © 2025 ANDPAD All Rights Reserved. Confidential Confidential 現場の効率化から経営改善まで一元管理できる クラウド型建設プロジェクト管理サービス

    社 内 社 外 営業 / 監督 / 設計 事務 / 管理職 職人 / 業者 メーカー / 流通 案件管理 資料 工程表 写真 報告 チャット 黒板 図面 受発注 •ɹ•ɹ• 26 ANDPADとは
  17. © 2025 ANDPAD All Rights Reserved. Confidential 28 ※『建設業マネジメントクラウドサービス市場の動向とベンダシェア(ミックITリポート2024年 12月号)』(デロイト

    トーマツ ミック経済研究所調べ) ANDPAD が支える建設DX 幸せを築く人を、幸せに。 住まいをつくる。ビルや施設をつくる。街をつくる。 生活を豊かにする建築・建設業は、幸せづくりと例えられます。 私たちは、その幸せづくりをする人たちをテクノロジーの力で 後押ししていきたい。心からそう考えてます。 我々はこれからもお客様の声をサービスに反映して、 建設業界及び建設業従事者様の業務効率化、 DX化を支援してまいります。 Mission 利用社数 23.3ສࣾ ユーザー数 68.4ສਓ