演習:報告書を作成しよう
ストーリー
「報告書の書き方を一通り学んだね。じゃあ実際に書いてみよう」
「週報と障害報告書、両方ですか?」
「うん。シナリオを用意したから、それをもとに書いてみて」
ミッション概要
2つの報告書を作成してください。
達成条件
- 週報がテンプレートに沿って書けている
- 障害報告書がテンプレートに沿って書けている
- 結論ファーストで書けている
- 具体的な数値や日付を使っている
- 箇条書きで読みやすくまとまっている
Part 1: 週報を書こう
シナリオ
あなたはWebアプリ開発プロジェクトのフロントエンドエンジニアです。 以下が今週の活動内容です。
今週の活動(4月7日〜4月11日):
月曜日:
- チーム定例ミーティングに参加(認証機能の仕様が確定)
- ログイン画面のコンポーネント設計を開始
火曜日:
- ログイン画面のUIを実装(React + Material UI)
- フォームのバリデーション実装
水曜日:
- ログイン画面の実装完了
- 単体テスト12件を作成(全件パス)
- コードレビューを依頼
木曜日:
- コードレビューで指摘された2件を修正
1. エラーメッセージの表示位置
2. パスワード入力フィールドのアクセシビリティ対応
- ユーザー登録画面の実装に着手
金曜日:
- ユーザー登録画面のUI実装(50%完了)
- 来週の作業計画を整理
課題:
- バックエンドAPIのエラーレスポンス形式がまだ決まっておらず、
エラーハンドリングの実装ができていない
→ 田中さん(バックエンド担当)に確認中。4/14までに回答予定
来週の予定:
- ユーザー登録画面の完成
- エラーハンドリングの実装(API仕様確定後)
- パスワードリセット画面の着手
学んだこと:
- Material UIのカスタムテーマの設定方法
- Reactのフォームバリデーションライブラリ(React Hook Form)の使い方
タスク
上記の内容をもとに、週報を作成してください。
<details> <summary>解答例</summary>markdown
# 週報 2025-04-07 〜 2025-04-11
## 報告者
(あなたの名前)
## 今週の成果
### 完了したタスク
- ログイン画面のUI実装完了(React + Material UI)
- フォームバリデーション実装完了
- 単体テスト12件作成(全件パス)
- コードレビュー指摘事項2件の修正完了
- エラーメッセージの表示位置修正
- パスワード入力フィールドのアクセシビリティ対応
### 進行中のタスク
- ユーザー登録画面のUI実装: 50%(来週前半に完了予定)
## 来週の計画
1. ユーザー登録画面の実装完了(優先度: 高)
2. エラーハンドリングの実装(優先度: 高 / API仕様確定後)
3. パスワードリセット画面の着手(優先度: 中)
## 課題・リスク
- **バックエンドAPIのエラーレスポンス形式が未確定**
- 影響: エラーハンドリングの実装が着手できない
- 対応: 田中さんに確認中(4/14までに回答予定)
## 学んだこと・気づき
- Material UIのカスタムテーマ設定方法を習得した
- React Hook Formでのバリデーション実装を学んだPart 2: 障害報告書を書こう
シナリオ
以下の障害が発生しました。この内容をもとに障害報告書を作成してください。
発生日: 2025年4月10日(木)
何が起きたか:
- 午前9:00頃、ユーザーから「ログインできない」という問い合わせが3件来た
- 午前9:05に、監視ツール(Datadog)からアラートが届いた
「認証サービスのエラー率が50%を超過」
- 午前9:10に、田中さんが調査を開始した
- ログを確認したところ、認証サービスが使用しているAuth0との
通信でタイムアウトエラーが発生していた
- 午前9:20に、Auth0のステータスページを確認したところ、
Auth0側でシステム障害が発生中であることが分かった
- 午前9:25に、Auth0の障害が復旧し始めた
- 午前9:30に、自社サービスの認証も正常に戻った
- 午前9:35に、全機能の動作確認を実施し、問題がないことを確認した
影響:
- 約30分間、全ユーザー(推定800名)がログインできなかった
- データの損失はなし
- ユーザーからの問い合わせ: 合計12件
原因:
- Auth0(外部サービス)側のシステム障害
- 自社サービスにAuth0障害時のフォールバック(代替手段)がなかった
対応:
- Auth0のステータスを監視し、復旧を待った
- 復旧後に全機能の動作確認を実施した
再発防止として考えたこと:
- Auth0のステータスページを監視対象に追加する
- Auth0障害時のキャッシュ認証(一定時間内の再ログインは許可)を検討する
- ユーザー向けの障害通知ページを用意する
タスク
上記の内容をもとに、障害 報告書を作成してください。
<details> <summary>解答例</summary>markdown
# 障害報告書: 認証サービス障害によるログイン不可
## 概要
| 項目 | 内容 |
|------|------|
| 報告者 | (あなたの名前) |
| 発生日時 | 2025-04-10 09:00 〜 09:30(約30分間) |
| 検知方法 | ユーザーからの問い合わせ + 監視アラート(Datadog) |
| 影響範囲 | 全ユーザー(推定800名)のログイン機能 |
| 重要度 | Critical |
## タイムライン
| 時刻 | イベント |
|------|---------|
| 09:00 | ユーザーから「ログインできない」の問い合わせ(3件) |
| 09:05 | Datadogアラート発報(認証サービスエラー率 > 50%) |
| 09:10 | 田中が調査開始。Auth0通信のタイムアウトエラーをログで確認 |
| 09:20 | Auth0ステータスページでAuth0側の障害を確認 |
| 09:25 | Auth0側の障害が復旧開始 |
| 09:30 | 自社認証サービスが正常復旧 |
| 09:35 | 全機能の動作確認を完了。問題なし |
## 原因
### 直接原因
Auth0(外部認証サービス)側でシステム障害が発生し、認証APIへの通信がタイムアウトした。
### 根本原因
- 外部サービス(Auth0)の障害時にフォールバック(代替手段)が用意されていなかった
- Auth0のステータスを自社監視に組み込んでいなかった
## 対応内容
1. Auth0のステータスページで障害発生を確認
2. Auth0側の復旧を待機
3. 復旧後、全APIエンドポイントの動作確認を実施
## 影響
- 約30分間、全ユーザーのログイン機能が利用不可
- データ損失: なし
- ユーザーからの問い合わせ: 合計12件
## 再発防止策
| 対策 | 担当 | 期限 |
|------|------|------|
| Auth0ステータスページの監視追加 | 鈴木 | 2025-04-14 |
| Auth0障害時のキャッシュ認証の設計・実装 | 田中 | 2025-04-25 |
| ユーザー向け障害通知ページの作成 | 佐藤 | 2025-04-18 |
## 教訓
- 外部サービスへの依存がある場合、障害時の代替手段を事前に用意すべき
- 外部サービスのステータスも自社の監視対象に含めるべきPart 3: 自分の週報を書いてみよう
タスク
あなた自身の今週の学習内容をもとに、週報を作成してください。
- 今週学んだこと(このミッションの内容でOK)
- 来週の計画(次に取り組むStep)
- 課題があれば記載
実際の学習を振り返ることで、報告書を書く練習にもなり、学習の定着にもつながります。
達成度チェック
| チェック項目 | Part 1 | Part 2 | Part 3 |
|---|---|---|---|
| テンプレートに沿った構成 | |||
| 結論ファーストで書けている | |||
| 具体的な数値・日付がある | |||
| 箇条書きで読みやすい | |||
| 主語が明確 |
まとめ
この演習で実践したこと:
| 項目 | 内容 |
|---|---|
| Part 1 | シナリオをもとに週報を作成 |
| Part 2 | シナリオをもとに障害報告書を作成 |
| Part 3 | 自分の学習内容で週報を作成 |
重要なポイント
- テンプレートに沿って書けば構成に迷わない
- 結論ファースト + 箇条書きで読みやすく
- 課題には「影響」と「対応」をセットで
次のステップへ
報告書の作成は実践できましたか?
次のセクションでは、Step 3の理解度をチェックするクイズです。
推定所要時間: 90分