GitHub Actions のワークフローを社内に普及するメリット

本記事は、GitHub Actions Advent Calendar 2023 の 19日目の記事です。

qiita.com

以前、社内で dependabot や renovatebot によるライブラリアップデートを自動化する GitHub Actions のワークフローを導入した話を書きました。

具体的にどのように導入したかはこちらの記事を見てください。

tech.classi.jp

この仕組みの導入から3ヶ月が経過し、自動マージされたPRは100件を超えているため、チームでの運用負荷軽減に大きなメリットがありました。

それだけではなく、今ではこのワークフローを参考にして、社内の他のチームでも導入が進んでいます。

ここでは、他のチームに導入される過程で生じたメリットについて紹介します。

他のチームとの繋がりが生まれた

GitHub Actions は基本的にどのリポジトリでも使用可能であり、社内だと技術スタックも近いため仕組みをそのまま導入しやすいです。

他にも同じモチベーションを持ったエンジニアがいたので、導入した背景や使用しているオプションなどの話ができました。

他のチームメンバーから声をかけられている様子

これらのコミュニケーションによって、知識の共有やチーム間の横の繋がりが形成されました。

チーム間の文化の違いを認識できた

同じ技術スタックであっても、自動マージの条件や日々の運用方法はチームによって異なります。

自動マージという同じ題材をきっかけにチームでのマージ条件や運用方針の違いを知ることで、チームの文化を間接的に把握することができました。

他のチームのアプローチを知ることで、自分たちの運用方法を見直す良いきっかけにもなりました。

より洗練されたワークフローを導入できるようになった

他のチームがブラッシュアップしたワークフローを取り入れることで、自分たちのチームでもより効果的な運用が可能になりました。

例えば、テストや Lint のワークフローを切り出して再利用する方法は、他のチームから逆輸入し、自分たちのチームに導入されたものです。

docs.github.com

多くのエンジニアが関わり様々な手法を共有することで、技術のキャッチアップが進みチーム内での実践に反映されます。

これにより、単に知識を広げるだけでなく、チーム全体としてより良い運用を生み出す相乗効果が生まれました。

まとめ

ライブラリアップデートの自動化するGitHub Actionsを公開したことで、得られたメリットについて紹介しました。

アウトプットすることで、人と交流できたり、さらにより良いワークフローを作るきっかけになります。

このような活動は、引き続きやっていきたいと思いました。

ここまで読んでいただきありがとうございました。

5章 カルチャーはバリューによって醸成される (〜P126 効率性(Efficiency)まで)

  • GitLab Value

    • 6つの中心となる Core Value
    • 関連する具体的なアクション
  • GitLabにおいて最も根幹をなすものであり、あらゆる行動の基準として活用されている
    • 役職が高いほど Value の遵守が求められる
    • 人事評価
    • 昇格基準
    • 採用
  • GitLab Value は常に改善する機会を求めている
    • 社員だけでなく誰でも改善の提案ができる
    • 社員は slack
    • それ以外は Xや CEO にリクエストを送ることで Value として検討される

カルチャーマッチではなくバリューマッチが重要

  • カルチャーマッチとは
    • それぞれの会社が持っているカルチャー・社風に近い価値観を持っている人材を採用・評価すること
    • カルチャーマッチではなく、カルチャーアドを重視している
  • カルチャーアド とは
    • カルチャーが流動的なものであると捉えて、カルチャーをよりよく成長させられる人材かどうかという観点で採用や評価を行うこと
  • カルチャーアドを採用する背景
    • カルチャーマッチを続けるのはリスク、非効率が分かってきた
  • カルチャーマッチによる採用を重視していた背景
    • 「放置しておくと暗黙的なやり方を踏襲しないため、パフォーマンスを発揮できないという」
    • しかし暗黙のやり方が必ずしも良いものではないことがわかってきた
    • 「カルチャーは環境や戦略に合致させるために調整されづけなくてはならない」by 両利きの経営
    • 強固なカルチャーはその会社が歴史的に経験してきた「勝利の方程式」によって培われている
    • 固定されてしまったカルチャーは変化やチャンスに対応できなくなる
      • 経営にとってリスク
  • 従来のカルチャーからよりビジネス的に有利なカルチャーに改善できる部分を発見するため、外部から新たに加わるメンバーを絶好のチャンスとして捉えている
  • not カルチャ破壊
    • 環境に適応させ続けるために調整し続けていく日強具あある
  • カルチャーマッチに代わって注目されているのが、「「バリューマッチ」」
  • カルチャー とは
    • バリューを体現した結果として歴史的に構築されていく暗黙のパターン
  • バリューとは
    • 市場環境に適応した明示的なパターン
    • 勝負している史上のいて勝てる可能性を高くするためのアクション、優先順位。禁止事項などを具体的に示したもの
  • バリューは明示的なパターンなので基準を守るか守らないかの2分できる
    • 採用対象者の考え方や性格は問われることがなくなる
    • 明示的なパターンを守るつもりがある全ての人を採用対象者として見ることが可能
  • ダイバーシティインクルージョンの実現が組織のパフォーマンスに足して好影響を与える
    • 多様な価値観、文化、属性の人たちがお互いに違いを乗り越えてコラボレーションできるようになる

バリューの全体像と優先順位

カルチャーマッチではなくバリューマッチが重要

  • カルチャーマッチとは
    • それぞれの会社が持っているカルチャー・社風に近い価値観を持っている人材を採用・評価すること
    • カルチャーマッチではなく、カルチャーアドを重視している
  • カルチャーアド とは
    • カルチャーが流動的なものであると捉えて、カルチャーをよりよく成長させられる人材かどうかという観点で採用や評価を行うこと
  • カルチャーアドを採用する背景
    • カルチャーマッチを続けるのはリスク、非効率が分かってきた
  • カルチャーマッチによる採用を重視していた背景
    • 「放置しておくと暗黙的なやり方を踏襲しないため、パフォーマンスを発揮できないという」
    • しかし暗黙のやり方が必ずしも良いものではないことがわかってきた
    • 「カルチャーは環境や戦略に合致させるために調整されづけなくてはならない」by 両利きの経営
    • 強固なカルチャーはその会社が歴史的に経験してきた「勝利の方程式」によって培われている
    • 固定されてしまったカルチャーは変化やチャンスに対応できなくなる
      • 経営にとってリスク
  • 従来のカルチャーからよりビジネス的に有利なカルチャーに改善できる部分を発見するため、外部から新たに加わるメンバーを絶好のチャンスとして捉えている
  • not カルチャ破壊
    • 環境に適応させ続けるために調整し続けていく日強具あある
  • カルチャーマッチに代わって注目されているのが、「「バリューマッチ」」
  • カルチャー とは
    • バリューを体現した結果として歴史的に構築されていく暗黙のパターン
  • バリューとは
    • 市場環境に適応した明示的なパターン
    • 勝負している史上のいて勝てる可能性を高くするためのアクション、優先順位。禁止事項などを具体的に示したもの
  • バリューは明示的なパターンなので基準を守るか守らないかの2分できる
    • 採用対象者の考え方や性格は問われることがなくなる
    • 明示的なパターンを守るつもりがある全ての人を採用対象者として見ることが可能
  • ダイバーシティインクルージョンの実現が組織のパフォーマンスに足して好影響を与える
    • 多様な価値観、文化、属性の人たちがお互いに違いを乗り越えてコラボレーションできるようになる

バリューの全体像と優先順位

https://handbook.gitlab.com/handbook/values/#hierarchy

Collaboration

  • 相反する矛盾と向き合っている
    • 協力することで「個人的にできる以上に洞察力が高まり、知性が高まる」
    • 熱意のあるマネージャーと IQ 120 以上のメンバーで構成されたチームの集団IQが63
    • by 学習する組織
  • 有名な研究結果
    • ソーシャル・ファシリテーション
      • 他人に見られている時にシンプルな作業は大幅に効率が上がるが、複雑な作業の効率は下がる
    • リンゲルマン効果
      • 集団で共同作業を行う際に一人当たりの生産性が人数の増加にともって低下する
  • https://dev.classmethod.jp/articles/process-gain-and-loss/
  • GitLabでは具体的な行動基準を定めている

Results

  • コミットした責任を果たすこと
    • いくら時間をかけても、他人に影響を与えられなければ何も変化は起きない
    • 顧客やユーザーに対して良い影響を与え、チームに貢献し、投資家から信頼されるために自分達がコミットした責任に向き合い切る
  • ステークホルダーに影響を与えられたのか客観的に計測すること
    • 障害を取り除くためにマネージャーを動かす
      • Azure Functions チームでは既にそういう役割をマネージャーが担っていて、エンジニアは自分の作業に集中できる環境が用意されているみたい
      • https://fukabori.fm/episode/108

ISUCON 13 に参加したことで起こった心境の変化

ISUCON 13 に初参加しました。

終わってから少し時間が空いてしまったので、ISUCONを経て感じたエンジニアとしての心境の変化を3つほど書き残します。

知識だけで止めずに手を動かすようになった

これは悔いが残る反省なのですが、原因が明確であと治すだけ!という状態でも普段から手を動かしていないと全然うまくいかなかったです。

例えば今回の問題だと N+1 がたくさんあり、これを直せばいい!ということがわかっていたのですが、意外と手が動かなくてすごく時間がかかりました。

最近はドキュメントを読んでなんとなく理解した気にならずに、サンプルコードを手元で動かしたり、人に自分の理解をぶつけて思考を深めたりなど、アウトプットすることを意識的に行うように心がけています。

技術の関心の幅が広がった

普段の業務では安定稼働しているサービスで運用・開発を行っているので、ログ周りを最初から設定したり、slow query や実行計画を眺めてインデックスを貼ったりすることはありませんでした。

新規のサービスに関わらない限りは、インフラや監視ツールは既に導入されており、ログも綺麗にビジュアライズされているので、手を入れたりする機会は少ないです。

ログの基本的な方法や解析方法、SSHやインフラなど、改めて自分で手を動かして触ることで、普段の業務でも「どうしてこういう構成になっているんだろう」「もっと良い設計はないか」など思考が深められるようになる引き出しや興味の幅が増えたように感じます。

技術との距離が近くなった

過去に社内でもISUCONが盛り上がっていたことはありましたが、なんかすごそう?というぐらいで無意識に距離を置いていた気がしています。

今改めて読むと、パフォーマンスやデータベースなどに対する深い理解と、それを短時間で遂行する技術力が凄まじいと思いました。

tech.classi.jp

tech.classi.jp

同じ土俵に立たないと「ただすごいな」という感想だけになってしまい、どのくらい自分と距離があるのか正確に比較できません。

差分がちゃんと認識できるのは大きな収穫だと思いました。

次のISUCONに向けて

というわけで、ISUCONとの距離も近くなったし、いちエンジニアでも得られるものがたくさんあるすごい良い機会でした。

来年はちゃんと準備をして臨みたいと思います。

ISUCON関係者の皆様、準備から運営までありがとうございました。

4章 リモートワークで発生する問題と対策

リモートに共通して発生する問題

  • 働きすぎる
  • テキストベースコミュニケーションに対応できない
  • 孤独感を覚える
  • 仕事と生活の境目が曖昧になり疲弊する
  • 新入社員や部署移動したメンバーがチームに馴染めない
  • バーンアウト

リモートワークに共通する問題への対策

  • 孤独感の問題
    • 個人の努力や周囲の気配りに期待するのではなく、組織が責任を持って対処できるようにする
    • インフォーマルコミュニケーション施策
  • 働きすぎ・バーンアウト
    • 効率的な休暇・休憩を取得するためのガイドライン
    • 人体に関する専門的なケアのノウハウ
    • 作業環境への支援
    • マネージャーの1on1
  • テキストコミュニケーション
    • SBI モデル
    • クルーシャル・カンバセーション

ハイブリッドリモートワークで発生する問題

  • 情報へのアクセス格差が生じる
  • キャリアと能力開発の機会に差ができる
  • 劣等感を与えてしまう
  • 罪悪感を与えてしまう
  • 見せしめになるリスク
  • パフォーマンスのプレッシャーが高くなる
  • オフィスを中心としたカルチャーが形成されやすい
  • オフィスの特典を活用できない

ハイブリッドリモートワークの問題への対策

  • 意思決定の場をリモートワークに移す
  • 打ち合わせは必ず議事録を残し、議事録の外で物事が決定しないように徹底する
  • オフィスを縮小し、物理的に出社できる人数を制限する

オフィス回帰への欲求に対処する

  • 要望が発生する原因
    • 孤独感
    • パフォーマンス
  • 1年程度は違和感があっても意思決定を覆さないようにコミットメントを求めておく

3章 リモート組織構築のための移行プロセス

3章

リモート組織構築のための移行プロセス

  1. リモート組織に関する認識を改め明示する
  2. リモート責任者を任命する
  3. ハンドブックを制定する
  4. コミュニケーションガイドラインを明示する
  5. 経営陣のデフォルトをリモートにする
  6. リモート作業環境を整備する
  7. インフォーマルコミュニケーションを設計する

これらのプランを「すべて」実行することが推奨している。

リモート組織に関する認識を改め明示する

  • オフィスワークの代替や補助で捉えるとダメ
  • オフィスワークの補完的な要素として捉えると、「オフィスワーカーが主流派」「リモートワーカーが主流派」派閥ができてしまう
    • 両者に亀裂が入り、リモートワークの推進ができない
    • リモートワーカーのパフォーマンスも下がる
    • リモートワーカーが減少する、採用競争力の低下、負のスパイラル
  • リモートワーカーのパフォーマンスを最大化させるにはどうすれば良いかという発想の転換が必要
    • 物理的なオフィスを同期ミーティングや合宿のために活用
    • 小さい子供が家にいたり、リモートワークだと集中できない事業がある人の支援として物理的なオフィスを利用する

リモート責任者を任命する

  • DRI (Directly Responsible Individuals)
    • 最終責任者誰かを明確にする
    • 必要な意思決定権も与えられる
    • リモート責任者を DRI として任命し、十分な責任と権限を持たせなくてはいけない
  • 双方が意見を述べる責任を果たした上で責任者が決定したことであれば、それ以外のメンバーは賛否を問わず全員が決定を尊重してコミットし、全力で支援します。そうしたメンバーのコミットメントに対して、責任者は結果によって応えるのです。
  • 必要なスキル
    • GitLabで公開している

ハンドブックを制定する

  • Handbook First
    • あらゆる情報をハンドブックに集約している
    • いわばその会社の法律
  • ドキュメント化すると本質的にスピードを向上させる取り組みになる
    • 一人一人に説明しなくてもそれみてねで共有できる
  • 心理的安全性を高め、従業員の自律的な行動を促すことにつながる
    • ハンドブックの基準を満たしていれば攻撃的な振る舞いをされる心配がない
    • 安心して新たな挑戦ができる
  • いつでも誰でも参照できるようにアクセスしやすい場所に設置している必要がある
    • 従業員全員が見られなくては意味がない
    • Wikiで作成することは将来の構造を大きく変更することが困難であるため推奨されていない
  • ハンドブックの更新は従業員が提案はできるが、マージするのはDRIが行う

コミュニケーションガイドラインを明示する

  • GitLab Communication

  • ガイドラインの他

    • 非同期のコミュニケーションが3度発生したら同期のミーティングを推奨
    • 会議の前に議事録をカレンダーに添付してアジェンダを事前に共有しておく
  • ツールの種類は最低限に抑える
    • GitLabでは Zoomを必ず録画する
    • 会議が参加できなかったメンバーもあらかじめ確認できるようしている
    • カレンダーにはアジェンダや論点を会議前に整理し、全員が一通り目を通した上で会議に臨むようにしている
    • 議事録はリアルタイムで更新して、参加でできないメンバーがいつでも確認できるようにしておく

経営陣のデフォルトをリモートにする

  • 必ず実践してほしいこと、経営者や上級管理所を強制的にリモート化すること
    • 会社が本気でリモート組織を目指す覚悟があること
    • 必要な情報を収集する過程で問題に気づく
    • コミュニケーションに関する課題も見えてくる

リモート作業環境を整備する

  • 必要な備品をオンライン会議中に違和感を抱かない標準的な水準で用意する
    • パソコン、マイク、カメラ、イヤホン、モニター
  • 家庭内で作業する場合は家族の理解が必要
  • オンライン通話中に家族が映り込むことは歓迎
    • 重要員同士の親密さを生み出したり、自己開示に繋がる

インフォーマルコミュニケーションを設計する

  • GitLab では
    • コーヒーチャット
    • slack チャンネルで趣味活動
    • 同僚同士が集まって旅行できる制度
  • 重要な目的
    • インフォーマルコミュニケーションが従業員のパフォーマンスを上げるため
      • チームメイトやリーダーから見てパフォーマンスを発揮している新入社員に対しては「社会的効果関係」が影響している
      • 社会的交換関係とは、人間が社会の中で「金銭」などの有形のものや、「尊敬」「愛情」「承認」「共感」「愉快」などの無形の資源を交換し合っている関係
      • インフォーマルコミュニケーションによって、チームメイト間に共感や愛情、楽しい感情、尊重されている感情を交換させることで高いパフォーマンスに繋がる
    • メンタルヘルスの問題を避けるためにインフォーマルコミュニケーションが重要な役割を果たすため
      • 社会的孤立・孤独感
      • 孤独は体調にも影響を及ぼす、脳が「報酬が足りていない」ことをアピールしている
      • 人と会わずに家から一歩も出ないような生活を続けていると、体調を崩す
      • belonging:チームや組織に対して自分の居場所であると感じる感覚

2章 リモード組織を実現することによるメリット

キーコンテンツ

  • リモートワークでも卓越したエンゲージメントの実現
  • 優秀なエンジニアの重要性

  • リモート組織におけるダイバーシティインクルージョンの実践

    • 多様性の活用と企業業績の関連性
    • 成果主義と柔軟性
  • リモート環境での成果主義の重要性

    • パフォーマンスの計測と成果にこだわることの柔軟性への影響
    • 効率的な非同期業務
  • 業務時間の使い方の見直し

2章

  • 94%が「誇りに感じる」脅威のエンゲージメント
    • エンゲージメントとは、従業員が組織に愛着や思い入れを感じて、組織課題に対して積極的に貢献する関係
    • エンゲージメントが向上すると
      • 行動・感情・認知・自律的な行動に対する主体性にポジティブな影響を与える
    • リモートワークでも卓越したエンゲージメントを実現している企業は数多くある
    • 調査結果は悪い結果に関係なく、オープンに公開するようになっている
    • 対面じゃなく、リモートワークでもエンゲーメントを高めることができる
  • 最も優秀な人材を早く採用できる

    • 「一流のエンジニアは、平均的なエンジニアの300倍の価値がある」 toyokeizai.net
    • いつまでに人材を採用できるかも重要
      • リモード組織だとアプローチできる候補者の数は多くなり、優秀な人材にとって魅力的な環境を確保できる
      • 競争力に寄与する
    • 完全リモート組織ではなく、出社とリモートを併用するハイブリット型の組織を求めている企業もある
      • GlitLabでは推奨しているわけではない
  • 多様なメンバーのパフォーマンスを最大化できる

    • 最先端のリモート組織では、ダイバーシティインクルージョンが徹底されている
      • ダイバーシティ
        • 多様性を意味しており、多様な属性が組織内に集まっていること
      • インクルージョン
        • 包括性を意味し、特定の人だけでなく多様な人たちが制約を受けずに活躍できる配慮やしくみが整っていること
    • 多様性を活用できる土壌を整えることは企業の業績と正の関連性がある
      多様な人材と収益率

      出典:内閣府「令和元年度 年次経済財政報告」

      URL:https://www5.cao.go.jp/j-j/wp/wp-je19/pdf/p02031.pdf

    • メモ)あくまで関連性があるだけで、因果関係があるかどうかは不明(多様性を許容できる企業が元々業績が良いだけという可能性もある)
    • 経営者にとって重要なのは、従業員が経営に寄与できているかどうか
    • 国内企業でも無関係ではない
      • バブル世代とZ世代、出産、介護、短時間勤務、女性管理職、外国人の活用
    • カルチャーに固執しない
      • カルチャーマッチで採用を行っている企業はグローバルのトレンドからすでに遅れをとっている
      • 新しい価値観や知見を取り入れ、より良いカルチャーを醸成する
  • 成果にこだわる風土が醸成される

    • リモートだとサボる?
      • むしろ逆
      • 必死に働いているふりをしても評価されない
      • メンバーから評価されるには成果物や良い影響を与えるなど、目に見える成果を残さないといけない
    • 公平に評価するために、パフォーマンスを計測する必要がある
    • 役割に応じた成果にこだわることは、仕事の柔軟性につながる
      • パフォーマンスがしっかり計測できているなら、働く時間や決まった時間を拘束することにこだわる必要がない
      • ルフレックスの導入、最低労働時間の撤廃
  • コストが効率化され、本質的な業務に集中できるようになる

  • 効率的な非同期業務は、オフィス中心の阻止も改善できる

    • GitLabはタイムゾーンが違う人が存在するので、即レスを期待しないことを前提として業務を行っている
    • そもそも同時に取り組まないといけない業務はほぼない
      • 会議の内容はヒアリングするより議事録見た方が効果的
      • 決めるべき人だけを集めてすぐに意思決定をする

1章 世界最大のリモート組織「GitLab」

キーコンテンツ

  • GitLabでは、同期・非同期コミュニケーションにおけるそれぞれの特性を理解した上で、最適な活用方法を模索している
  • 最新の正確な情報が1箇所にしか存在しない
  • OSS文化
  • 再現性
  • 組織の意思決定のプロセスは解釈の余地を限りなく減らすように徹底的に言語化されている
  • 施策や意思決定の評価に定量的な指標を用いている

はじめに

  • 組織作りに再現性を重視している  - 「パフォーマンスの高い組織は、誰でも再現性を持って実現可能である」「リモート組織にとどまるものではなく、あらゆる組織に効果があり再現性がある」
    • 「カルチャーとは何か」「パフォーマンスとは何か」など、解釈が分かれるテーマを理論や定義を引用して言語化するよう努めている
  • 筆者がオフィス中心組織〜リモート組織への移行を目指す中で必要な観点だけではなく、ケアすべき点などを具体的に説明している
    • 世界最先端といわれるリモート組織の実態やメリットなどの概要説明
    • 世界最先端のリモート組織への移行プロセス、発生する問題への対処法
    • リモート組織が円滑に機能するためのカルチャーの醸成方法
    • リモート組織でパフォーマンスを上げるための人事制度・業務ルール設計
  • GitLab の非同期業務スタイルは、オフィス中心の企業にとっても非常に価値の高いもの
  • 移行のノウハウだけじゃなく、施策やアイデアの背景に隠れている「狙い」「考え方」「根拠」を把握する

1章

  • GitLabってどんな会社?
    • 世界67カ国以上にまたがり 2000名を超えるメンバーが在籍している「オールリモート企業」
    • 2011年ウクライナ〜スタート
  • 最初はリモートワークとは真逆の思想
    • GitLabは 同期コミュニケーション を大事にしている
  • 3つのバリュー
    • GitLab Value
    • 仲間意識(信頼と友情)
    • ワークスタイル
  • 仲間意識を醸成するためにインフォーマルコミュニケーション(業務外の日常的な会話、雑談、何気ないやり取り)が「意図的」に設計されている
  • GitLabのカルチャーを構成する要素
    • コーヒーチャット
    • GitLab Contributes 全社サミット
  • 効果に繋がらない・継続できない
    • 取り敢えずやることが目的になっていて、達成したい目的やプロセスが曖昧、根拠に基づいていない
    • よくわからないので繋がらない  - 人間的な感情の交流が存在することがパフォーマンスやコラボレーション上必要不可欠であることを認知して、継続的な改善が行われないと継続は難しい
  • GitLabでは、同期・非同期コミュニケーションにおけるそれぞれの特性を理解した上で、最適な活用方法を模索している
  • 情報の集約されるべき方向
  • https://learn.gitlab.com/effective-communication-for-autonomous-organization
    • 電話や会議などの揮発性の高い情報、複数の類似した情報が混在している状況を良しとしない
    • 関係者全員アクセスできて、情報同士の関連性が可視化されている一元管理された揮発性の低い情報に集約するようにしている
      • SSOT(Single Source Of Truth / 信頼できる唯一の情報源)
      • 最新の正確な情報が1箇所にしか存在しない
  • ここまでGitLabがオールリモートで成長できた背景
    • OSSオープンソースソフトウェア)の概念を組織へと拡大して適用することで効率的なコラボレーションを成し遂げてきたこと
    • 年齢・性別・国籍、関係なく全ての人が貢献できて、提案の内容が共通の目的のために良いものであれば反映される。
  • 組織の意思決定のプロセスは解釈の余地を限りなく減らすように、徹底的に言語化されている
    • 評価に定量的な指標を用いている
    • 組織の意思決定は、客観的な視点を基準に、ユーザーやチームにとって良いものかという判断のもと改善されている