Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
障害を発生させないために
Search
s_tanaka
November 10, 2017
Education
0
650
障害を発生させないために
社内LT(2017/11/10)
s_tanaka
November 10, 2017
Tweet
Share
Other Decks in Education
See All in Education
1111
cbtlibrary
0
250
20251023@天童市いこう会
koshiba_noriaki
0
100
Introduction - Lecture 1 - Web Technologies (1019888BNR)
signer
PRO
0
5.8k
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
620
1008
cbtlibrary
0
120
1021
cbtlibrary
0
370
多様なメンター、多様な基準
yasulab
5
19k
AIを使って最新研究 について調べて発表しよ う!
mickey_kubo
4
180
令和エンジニアの学習法 〜 生成AIを使って挫折を回避する 〜
moriga_yuduru
0
190
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
HTML5 and the Open Web Platform - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
2
3.1k
Design Guidelines and Models - Lecture 5 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.2k
Featured
See All Featured
First, design no harm
axbom
PRO
1
1.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Abbi's Birthday
coloredviolet
0
3.7k
WCS-LA-2024
lcolladotor
0
390
Mind Mapping
helmedeiros
PRO
0
39
30 Presentation Tips
portentint
PRO
1
170
Raft: Consensus for Rubyists
vanstee
141
7.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
エンジニアに許された特別な時間の終わり
watany
106
220k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Transcript
障害を発生させないために @s_tanaka
アジェンダ そもそも障害ってなに? なんで障害は発生するの? 障害を起こさないために何をすれば良いの? 障害が起きたときどうすれば良いの?
アジェンダ そもそも障害ってなに? なんで障害は発生するの? 障害を起こさないために何をすれば良いの? 障害が起きたときどうすれば良いの?
障害とは? システムの構成要素であるハードウェアの故障、ソフトウェアのバグやその他の機能不 全が原因となって、システムが本来の機能をユーザに対して提供できない状態を言う。 (Wikipedia 「障害 -情報技術分野での障害(Fault)」) システムが仕様(思い)通りに動作しないこと ※仕様が間違っている場合もある…
アジェンダ そもそも障害ってなに? なんで障害は発生するの? 障害を起こさないために何をすれば良いの? 障害が起きたときどうすれば良いの?
発生する要因 コミュ不足 作業ミス ハード故障 運用 バグ 仕様漏れ テスト不足 不明 どっかで見たこと
あるぞ? AAのインシデント管理システム
テスト不足 発生した要因で一番多いのが「テスト不足」 そもそも試験しなかった 試験したけど不十分だった(パターンから漏れていた) そんなところに影響があるなんて思わなかった バグ + テスト不足 と言うのも多い →バグがあってもテストをちゃんとやっておけば気付けた
なぜテスト不足が発生するのか
アジェンダ そもそも障害ってなに? なんで障害は発生するの? 障害を起こさないために何をすれば良いの? 障害が起きたときどうすれば良いの?
気づきのポイント 要件定義 •要件定義書 設計 •設計書 実装 •コード 試験 •試験仕様書 リリース
•リリース手 順書 各工程で漏れがなければ障害の発生はかなり抑えられる →それぞれのOutputをチェックすることで、その工程は(ある程度)担保される 各工程と成果物(Output)
がしかし… 今まで 要件定義 設計 実装 試験 リリース 1人日 1人日 3人日
1人日 0.5人日 計6.5人日 全部やると 要件定義 設計 実装 試験 リリース 1人日 1人日 3人日 1人日 0.5人日 計11.5人日 0.5人日 ×2 0.5人日 ×2 0.5人日 ×2 1人日 ×2 0.5人日 ×2
なので プロジェクト全体の大きさに応じて各工程のアウトプットの有無、レビューの有無を決 めよう。 …それだと、いつもと変わらないので、 試験仕様書の作成と、それの確認を行ってはいかがだろうか。 ライトな開発でも、行った動作確認の流れや、画面表示があればキャプチャを貼るなど で、確認項目の共有(他の人がわかりやすい)や、自分自身での確認、今後同様の開発 があった場合の注意点となる。
テスト不足になる理由 要件定義 設計 実装 試験 リリース リリースまで時間が無く、実装を進めながら仕様の調整、試験と言うよりは動作確認の みになってしまう場合が多い(気がしている)。 コードレビューは行っているが、それだけではそのシステムに詳しくない限り、潜在し ているバグや仕様漏れに気付くのは難しい(私だけ?)
バグを発見する可能性で言えば試験が重要 →テスト不足の障害が少なくなるのでは?
アジェンダ そもそも障害ってなに? なんで障害は発生するの? 障害を起こさないために何をすれば良いの? 障害が起きたときどうすれば良いの?
障害は発生する 気を付けていても予期せぬ要因で障害は発生する 障害が発生しないようにも重要だが、障害が発生してからの対応も重要。
障害が発生したら 暫定 対応? 状況の確認 障害発生 関係者に 連絡 暫定対応 内容の検討 暫定対応
解消? Y N 恒久対応 内容の検討 N Y 恒久対応 解決? 関係者に 連絡 N Y インシデント レポート インシデントレポートは 社内で共有
障害の報告 第一報には下記をわかる範囲でまとめる 発生事象 発生日時 (判明していれば)原因 (わかっていれば)解消予定時間 事象が解決したら、下記も調べて報告する 発生期間 影響範囲 対応内容
上記にプラスして、インシデントレポートでは再発防止策があれば記載する
最後に 障害は時間が無い場合に発生する。 時間が無いと、試験の時間を削ってしまう場合が多いから。 時間が無いというときは、危ないなと思い、実装だけじゃなく、試験の時間も確保出来 るようにしましょう。 試験仕様書は、作成することで、パターンの洗い出しや、実装の漏れに気付く場合もあ るので、未知なるアプリ、機能の改修の場合、文字に起こして整理することが大事。 共有されたインシデントレポートから、障害になりやすい内容についても試験を行うこ とで、より障害の発生の可能性を下げられる。 チームで障害が発生しない仕組みを考えましょう。
試験仕様書(をはじめ、ドキュメント類)は標準化し、作成のコストを抑えたい