Share
Embed
Transcript
40 slides
-
アジェンダ #phpcon_niigata 1. この発表でいう「地力」とは 2. 自己紹介 3. エラーに向き合う 4. 運用の気づきを次の開発に活かす
5. 対応の手数とエラーそのものを減らす 6. まとめ © 2012-2026 BASE, Inc. 8 -
アジェンダ #phpcon_niigata 1. この発表でいう「地力」とは 2. 自己紹介 3. エラーに向き合う 4. 運用の気づきを次の開発に活かす
5. 対応の手数とエラーそのものを減らす 6. まとめ © 2012-2026 BASE, Inc. 9 -
アジェンダ #phpcon_niigata 1. この発表でいう「地力」とは 2. 自己紹介 3. エラーに向き合う 4. 運用の気づきを次の開発に活かす
5. 対応の手数とエラーそのものを減らす 6. まとめ © 2012-2026 BASE, Inc. 10 -
自己紹介 #phpcon_niigata meihei | Yohei Ema BASE株式会社 BASE Department /
ソフトウェアエンジニア X: @app1e_s mixi2: @meihei2 GitHub: @meihei3 © 2012-2026 BASE, Inc. 11 -
アジェンダ #phpcon_niigata 1. この発表でいう「地力」とは 2. 自己紹介 3. エラーに向き合う 4. 運用の気づきを次の開発に活かす
5. 対応の手数とエラーそのものを減らす 6. まとめ © 2012-2026 BASE, Inc. 13 -
エンジニアの地力の鍛え方 #phpcon_niigata • エンジニアの地力の鍛え方 ◦ 目の前の小さな問題を拾い、解決する。その地道な繰り返し。 →実際どうやるの? • 私が実践してきた1つの例をお話しします ◦
エラーチャンネルのボールを拾い続けること © 2012-2026 BASE, Inc. 14 -
エンジニアの地力の鍛え方 #phpcon_niigata • エンジニアの地力の鍛え方 ◦ 目の前の小さな問題を拾い、解決する。その地道な繰り返し。 →実際どうやるの? • 私が実践してきた1つの例をお話しします ◦
エラーチャンネルのボールを拾い続けること © 2012-2026 BASE, Inc. 15 -
BASE でのエラーチャンネル #phpcon_niigata • 重要度の高いエラーは1つのチャンネルに集約させている ◦ Ref: SLI/SLOの設定を進めるその前に、アラート品質の改善に取り組んだ話 ▪ https://devblog.thebase.in/entry/2024/12/14/110000_1
◦ Sentry, New Relic などの全ての監視ツールからの通知を一元管理 ◦ 誰もがこのチャンネルを見れば、アラートに素早く気づける状態 • 素早く気づいているが、拾われない ◦ 担当チームがいる領域で発生したエラーアラートはすぐに次のアクションに進む ◦ そうではない領域のエラーアラート、緊急性の低いエラーアラートはなかなか 拾われないのが現実 © 2012-2026 BASE, Inc. 16 -
拾われないアラートを拾う #phpcon_niigata • 週1回、1時間のSentryトリアージ会を開催 ◦ Sentry の画面から担当が付いていないエラー(Issue)を 0 にする会 ◦
みんなで一つの画面を見ながら、誰が対応するか決めて連絡する ▪ 一次対応というより放置を解消する ◦ 担当チームがいない領域・すぐ直せるものは修正する © 2012-2026 BASE, Inc. 17 -
すぐ直せるものはすぐ修正する #phpcon_niigata • 実際、原因が明確ですぐ直せるものは多い ◦ (例)配列のキーチェックしていなかった ◦ (例)非常に稀なケースでバリデーションが不足していた ◦ 答えが明確なものは
AI に修正コードを生成させやすい • 1つ1つは小さな問題 ◦ でも、このエラーで困っているユーザーがいる ◦ これを解決することで、目の前のユーザーに価値を届けられる © 2012-2026 BASE, Inc. 19 -
アジェンダ #phpcon_niigata 1. この発表でいう「地力」とは 2. 自己紹介 3. エラーに向き合う 4. 運用の気づきを次の開発に活かす
5. 対応の手数とエラーそのものを減らす 6. まとめ © 2012-2026 BASE, Inc. 20 -
商品の保存に 8回失敗した人がいた #phpcon_niigata • 件数ではなく、困っている人を見る ◦ 8件のエラーは、1人のユーザーが6分間に8回保存に失敗した跡だった • エラーが出た場所と、原因が入った場所は違うことがある ◦
実際にエラーが発生していたのは管理画面。原因の値を入れたのは外部向けAPI • 原因を直して終わりにせず、いま困っている人まで届ける ◦ 外部向けAPIに検証を追加。カスタマーサポートと連携し、ユーザーに連絡 • 学び:「この値を書ける入口は、ほかにないか?」という観点 © 2012-2026 BASE, Inc. 22 -
一件で得た観点が、次の一件で活きる #phpcon_niigata • 同じ原因のエラーは、場所を変えてまた来る ◦ 数ヶ月後に販売期間や割引率で似たエラーが発生。どれも入口の検証漏れ • 持ち帰った観点があると、次の対応で最初に見る場所が決まる ◦ これらのエラーの修正で「ほかの入口は?」と確かめ、登録側の同じ抜けも直した
• エラーを拾い、対応し、観点を得て、次の一件で使う →この繰り返しが、エンジニアの地力になる © 2012-2026 BASE, Inc. 23 -
一件で得た観点が、次の一件で活きる #phpcon_niigata • 同じ原因のエラーは、場所を変えてまた来る ◦ 数ヶ月後に販売期間や割引率で似たエラーが発生。どれも入口の検証漏れ • 持ち帰った観点があると、次の対応で最初に見る場所が決まる ◦ これらのエラーの修正で「ほかの入口は?」と確かめ、登録側の同じ抜けも直した
• エラーを拾い、対応し、観点を得て、次の一件で使う →この繰り返しが、エンジニアの地力になる © 2012-2026 BASE, Inc. 24 -
一件で得た観点が、次の一件で活きる #phpcon_niigata • 同じ原因のエラーは、場所を変えてまた来る ◦ 数ヶ月後に販売期間や割引率で似たエラーが発生。どれも入口の検証漏れ • 持ち帰った観点があると、次の対応で最初に見る場所が決まる ◦ これらのエラーの修正で「ほかの入口は?」と確かめ、登録側の同じ抜けも直した
• エラーを拾い、対応し、観点を得て、次の一件で使う →この繰り返しが、エンジニアの地力になる © 2012-2026 BASE, Inc. 25 -
コルブの経験学習モデル #phpcon_niigata • 具体的経験 • 内省的観察 • 抽象的概念化 このサイクルを回し続ける •
能動的実験 © 2012-2026 BASE, Inc. 26 -
アジェンダ #phpcon_niigata 1. この発表でいう「地力」とは 2. 自己紹介 3. エラーに向き合う 4. 運用の気づきを次の開発に活かす
5. 対応の手数とエラーそのものを減らす 6. まとめ © 2012-2026 BASE, Inc. 29 -
エラー対応そのものを、振り返る #phpcon_niigata • 具体的経験:エラーを拾い、調べ、対応する。これを繰り返してきた • 内省的観察:同じ調査・同じ判断を、何度もやっている • 抽象的概念化:「これ、前にもやらなかったか?」 • 能動的実験:調査は
AIに任せ、判断の根拠は記録に残す © 2012-2026 BASE, Inc. 31 -
繰り返していることを見つけて、減らす #phpcon_niigata • 同じ調査を繰り返している → AIに任せる • 同じ判断を繰り返している → 根拠を記録に残す
© 2012-2026 BASE, Inc. 32 -
エラーの初動調査を、 AIに任せる #phpcon_niigata • エラー通知に付いたボタンを押すと、 AIが調査を始める • Sentry・New Relic・コードを調べ、根拠付きのレポートを保存 •
参考:https://devblog.thebase.in/entry/2026/08/29/110000 © 2012-2026 BASE, Inc. 33 -
判断の根拠を、次の担当者に残す #phpcon_niigata • 同じ種類のエラーは、担当者を変えて何度も来る ◦ そのたびに、前回どうしたかを調べ直すことになる • 前の担当者が実行した SQLは、履歴からコピーできる ◦
でも「なぜその結果で対応を終えたか」は、どこにも残っていない • 残したいのは、作業の手順よりも判断の根拠 © 2012-2026 BASE, Inc. 34 -
判断の根拠を、次の担当者に残す #phpcon_niigata • 共通の前提:その業務でいつも使う知識( Context) ◦ 通知チャンネル、確認用SQL、対象のテーブルなど • 手順:あるエラーが来たときの調べ方( Runbook)
◦ どのSQLを実行し、どの状態なら対応を終えてよいか • 一件ごとの記録:実際に起きた一件の作業記録( Record) ◦ 何を確認し、どう判断し、どうなったか © 2012-2026 BASE, Inc. 35 -
アジェンダ #phpcon_niigata 1. この発表でいう「地力」とは 2. 自己紹介 3. エラーに向き合う 4. 運用の気づきを次の開発に活かす
5. 対応の手数とエラーそのものを減らす 6. まとめ © 2012-2026 BASE, Inc. 36 -
どうやって地力を鍛えるか #phpcon_niigata • 拾う:担当のいない小さなエラーを、一件拾う • 最後まで見る:誰が何に困っているかまで調べ、直すか、つなぐ • 持ち帰る:分かったことを、次に確かめる「問い・観点」にする • 次で使う:次の開発やレビューで、それを最初に確かめる
• 続ける:繰り返す。繰り返すこと自体もサイクルにいれて繰り返す © 2012-2026 BASE, Inc. 37