Slide 1

Slide 1 text

チームメンバーをエンパワーメントしよう! レガシープロジェクト改善事始め ぬさし( @nukisashineko ) 1/19

Slide 2

Slide 2 text

チームをエンパワーメントする ● 輪読会、勉強会、モブプロ等 ○ スキルマップを広げ、基礎力の向上 ● Developer Experience(開発体験)の向上 ○ 環境の質向上、手動運用を自動化する等 2/19

Slide 3

Slide 3 text

方針・指針 1. できることからやるのが一番早い 2. 簡単で自動化可能なものから始める 何から改善して いけばいいの? 3/19 ● できること=手を動かした経験があるもの ● できること ≠ 知ってること (経験がないもの)

Slide 4

Slide 4 text

方針・指針 1. できることからやるのが一番早い 2. 簡単で自動化可能なものから始める 1. すぐに効果が出ること 2. チームへ効果が出ること 4/19 コスパ良く改善するには 何から改善して いけばいいの? も重要

Slide 5

Slide 5 text

改善対象のプロジェクトを紹介 ● 10年を超えたサービス ● ローカル開発環境はない ○ debug不可能 ● アプリ・DBはオンプレ ○ ロギングが貧弱 ● CIは無い 5/19

Slide 6

Slide 6 text

改善可能な点 ● debugを動かせるようにする ● CIの導入 ● 新しいツールやSaaSの導入 …… ● etc. 6/19

Slide 7

Slide 7 text

7/19 「じゃあ何からやったの?」 debugを動かせるようにした! 活動報告(1) - 環境改善 選択理由: 「できることだった!」

Slide 8

Slide 8 text

debug環境作成 - 作って配る 8/19 ● 1週間目→検証用のovaファイルを入手 ● 1ヶ月目→debug可能環境へ再構築 ● 2ヶ月目→ repository化& チームメンバーに配布 作業時間は1[時間/日]

Slide 9

Slide 9 text

debug環境作成 - メンバーに使ってもらう 9/19 ● debugを文化にする ○ ドキュメントは丁寧に ○ remote debug設定は簡単化 (gitに含める) ○ debuggerの使い方をハンズオンする(都度) 「作ったよ!」で終わらず使い続けて広める

Slide 10

Slide 10 text

debug環境作成 - 結果 10/19 ● debugが使える! ○ 調査時間の大幅削減 (printf debugと比較) ● 問題の切り分けが容易に! ○ ローカル環境があるという強み

Slide 11

Slide 11 text

11/19 「次は何をやったの?」 GitHub Actions(CI)を導入しました 活動報告(2) - 自動化による省力化

Slide 12

Slide 12 text

CIの導入 - 指摘の自動化 - master merge 12/19 「PR依頼の前にmaster mergeしといてよ」

Slide 13

Slide 13 text

CIの導入 - 指摘の自動化 - Linter dry run 13/19 「PR依頼の前にLinterの実行をしといてよ」

Slide 14

Slide 14 text

CIの導入 - 結果 14/19 ● PRの往復時間削減! ○ レビュイーが修正点に気づける ● 本質的な指摘が増えた! ○ 時間をロジック検討に多く使える

Slide 15

Slide 15 text

改善の際に注意すべきこと ● 改善はチームメンバーの参意を確認 ○ チームで保守・運用するため ● 大きな変化はゆっくり起こす ○ 唐突で大きな変化は定着しない 15/19

Slide 16

Slide 16 text

改善の際に注意すべきこと - 例を元に ● 例:Linterの導入 ○ よくあるパターン (完璧主義) ■ 「Linterで機械的なレビューを行うため  全部のファイルへ置換を行います!」 ■ 「確認範囲が拡大して難しいから後で」 16/19

Slide 17

Slide 17 text

改善の際に注意すべきこと - 例を元に ● 例:Linterの導入 ○ やるべきパターン (導入を目指す) ■ 「影響範囲が広がらないように  新規ファイルに限って適用します!」 ■ 「それならお試しで導入してみたいね」 17/19

Slide 18

Slide 18 text

何からやればいい?という人へ 1. Linter (PHP-CS-Fixer, PHPMD, Phan) 2. Github Actions 3. SaaSの監視ツール Extra. debug環境の用意 18/19 PR高速化 自動化の事始め 導入が楽で高機能 開発体験に効果的 難易度高め

Slide 19

Slide 19 text

まとめ - チームをエンパワーメント事始め! ● できるものから始める ● 作ったらチームの文化にする ● 独りよがりな開発にしない 19/19