AI-CTOさんを相手取りWell-Architected Framework Review を実施（Operational Excellence 編）

おばんです。特に意味のない徹夜明けにいいこと思いついたのでやってみようと思いこれを書いています。
僕はWell-Architected Framework について考えるのが好きで、昨年はWell-A Lead としてそこそこの数のレビュー（WAFR）を行ってきました。
そんな中WAFR出来る人を増やそうと人に教えようと思ったときに、実際の案件がないと教えることが難しかったんですよね。
そしてふと、「そうだ、ChatGPTにお客さん役やらせてみよう」と閃いたので、今回[Operational Excellence（運用上の優秀性）](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/framework/operational-excellence.html)について、AI-CTOさん率いるクライアントのワークロードをレビューしたいと思います。

## インプットしたシナリオ
ChatGPTさんにはこのように支持して役柄になりきってもらいました。
```
あなたはWEBデザイン会社のCTOです。
これからクライアントの依頼に基づきクライアントが就活生向けに公開するWEBサイトの制作を行うことになりました。
AWSクラウドプラットフォームを活用して、インフラストラクチャからアプリケーション、WEBデザインまですべてあなたの会社で行い納品します。
あなたはプロジェクトチームを立ち上げ、このプロジェクトを成功させる責任を負うプロジェクト責任者です。
どのような役割のメンバーを何名招集しどのようなプロジェクトチームを立ち上げますか？メンバーの性別、年齢、経験などプロフィールまで書き起こしてください。
```

するとこのようなプロジェクトチームを編成してきました。
```
プロジェクトマネージャー (PM)
役割: 全体のプロジェクトの進捗管理、リスク管理、予算管理、チームコミュニケーション、クライアントとのコミュニケーションを担当。
プロフィール: 男性、32歳、5年のプロジェクト管理経験、AWSの基本的な知識を持つ。

インフラストラクチャエンジニア (AWS Specialist)
役割: AWS上のサービス設定、監視、保守を担当。
プロフィール: 女性、28歳、3年のAWS経験、AWS認定ソリューションアーキテクトの資格を持つ。

バックエンドエンジニア
役割: サーバーサイドのロジック、データベースの設計・実装を担当。
プロフィール: 男性、27歳、4年の開発経験、PythonやNode.jsなどの知識を持つ。

フロントエンドエンジニア
役割: WEBサイトのUI/UXデザインの実装、ユーザーインターフェースの構築を担当。
プロフィール: 女性、25歳、3年のフロントエンド開発経験、ReactやVue.jsの知識を持つ。

WEBデザイナー
役割: サイトのデザイン、UI/UXの提案と作成、グラフィック資料の制作を担当。
プロフィール: 男性、29歳、4年のWEBデザイン経験、Adobeのツールに熟練。

テストエンジニア
役割: WEBサイトの品質保証、バグの特定と報告、テストの自動化を担当。
プロフィール: 女性、30歳、3年のQA経験、自動テストツールに熟練。

コミュニケーションスペシャリスト
役割: クライアントとのコミュニケーションをスムーズに行うためのブリッジとしての役割。
プロフィール: 男性、31歳、4年のカスタマーサポートやセールス経験。
```

凄くそれっぽい。
それではこのプロジェクトチームによって、無事にWebサイトがローンチして現在運用フェーズに入っていると仮定して、Operational Excellenceの柱 の観点でレビューしていきましょう。

## 色々AI-CTOさんに質問をしました
WAFRレビューを行うにあたってAI-CTOさんに色々とヒアリングを行いました。実際に業務で行う場合は別途ヒアリングシートを用意して回答してもらうのが良いと思います。
例えばこんな感じで回答が返ってきました。

```
Q. プロジェクトチームを成功に導くために優先順位をどのように設定し、決定しましたか？

A. 私のプロジェクトチームでは以下のようなアクションを取っています。

定期的なステークホルダーミーティング:
クライアントや利害関係者との定期的なミーティングを行い、ビジネスの要件や変更点を確認しています。このミーティングで得たフィードバックをもとに優先順位を見直しています。

チーム内のリトロスペクティブ:
スプリント終了時に行うリトロスペクティブでは、過去のスプリントでの成功点や課題を共有し、改善点を議論します。これにより、チーム全体の方向性や優先順位に関する認識を再確認・再調整することができます。

KPIsとの整合性の確認:
プロジェクトのKPIs（主要業績評価指標）を設定し、それに基づいて優先順位を見直すことで、ビジネス目標との整合性を保つよう努力しています。

透明性の確保:
プロジェクト管理ツールを使用して、タスクの優先順位や進捗をチーム全体で共有しています。これにより、全メンバーが現在の優先順位やタスクの状態を常に把握することができます。

変更管理プロセスの実施:
プロジェクトの途中で要件が変わることはよくあります。そのため、変更要求があった際には、その影響を評価し、必要に応じて優先順位を再調整するプロセスを確立しています。
以上の取り組みを通じて、我々のプロジェクトチームは常に最も重要なタスクに集中し、ビジネスの成功を最大化するための努力をしています。

```
さすがはAI。これが正しいアプローチかは別として、抜かりないですね。
一応「嘘つかないで正直に答えてくださいね」とお願いしてるので。やってないことは言ってないと思います。知らんけど。

## レビューに必要なインプットが揃ったら
ヒヤリングで十分なインプットを得られたら、ソリューションアーキテクト（今回は人間である僕）がいよいよWAFRを行います。AWS Well-Architected Tool を使用してベストプラクティスに則った運用が出来ているかチェックを行います。
W-A Tool の使い方は公式ドキュメントのチュートリアルを参考にしてください。
https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/userguide/tutorial.html

## レビュー終わりました
…当たり前ですけど相手はAIなので、いくら「嘘つかないで正直に答えてくださいね」って言っても完璧な回答しかしてくれませんでした。
（言葉狩りと揚げ足取りをしてやっと出来てないことを話してくる。めちゃくちゃ無意味）
なのでチェック基準として、AIが言及したことはチェックをつける。それ以外はつけないということにしてみました。
こちらが結果のサマリです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3484427/cebcd793-9486-3332-3184-b441bbb3afb5.png)

ハイリスクイシュー（HRI）が2個と優秀なプロジェクトでした。挙がったものを見ていきましょう。

### OPS 7: ワークロードをサポートする準備が整っていることはどうすれば確認できるでしょうか?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3484427/ede73177-c3ce-b4fe-8e68-f6ef7a4f806c.png)

このセクションで問われているのは、ワークロードを正常に保つための準備と基盤が重要であり、それがどれだけ整っているか？ということです。
AI-CTOさんの回答では、契約時点で後期サポートというフェーズがあったが十分な準備が取れていないようだったのでHRIとして挙がっています。

こちらのリスクを下げるには、**運用準備状況の一貫した確認を実現する** というベストプラクティスを実践することが必要です。

[OPS07-BP02 運用準備状況の継続的な確認を実現する](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/operational-excellence-pillar/ops_ready_to_support_const_orr.html)
>期待される成果:  組織にはベストプラクティスを含む ORR チェックリストがあります。ORR はワークロードのローンチ前に実施されます。ORR はワークロードライフサイクルを通じて定期的に実施されます。

### OPS 11: オペレーションを進化させる方法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3484427/415fca5e-4980-c48d-8350-d71cb48331dd.png)

このセクションで問われているのは、運用が軌道に乗ったらそれでOKではなく、常にオペレーションを進化させ効率的かつ効果的な運用を行っていくにはどうすればよいか？ということです。
（聞けば出てきたと思いますが）最低限運用に必要なナレッジ管理は行われていたものの、それ以上の情報はなかったのでこの結果としました。

こちらのリスクを下げるには、**継続的改善のプロセスを用意する**、**インシデント後の分析を実行する**、**フィードバックループを実装する** というベストプラクティスを実践することが必要です。

[OPS11-BP01 継続的改善のプロセスを用意する](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/operational-excellence-pillar/ops_evolve_ops_process_cont_imp.html)
>ワークロードを社内外のアーキテクチャのベストプラクティスに対して評価します。1 年に 1 回以上ワークロードのレビューを実施します。ソフトウェア開発サイクルの中で改善の機会を優先事項にします。

[OPS11-BP02 インシデント後の分析を実行する](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/operational-excellence-pillar/ops_evolve_ops_perform_rca_process.html)
>顧客に影響を与えるイベントを確認し、寄与する要因と予防措置を特定します。この情報を使用して、再発を制限または回避するための緩和策を開発します。迅速で効果的な対応のための手順を開発します。対象者に合わせて調整された、寄与因子と是正措置を必要に応じて伝えます。

[フィードバックループを実装する](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/operational-excellence-pillar/ops_evolve_ops_feedback_loops.html)
>フィードバックループは、意思決定を推進するための実行可能なインサイトを提供します。フィードバックループを手順やワークロードに組み込みます。そうすることで、問題および改善すべき領域を特定することができます。またフィードバックループは、改善への投資を検証することもできます。これらのフィードバックループは、ワークロードの継続的な改善の基盤となります。

## まとめ
めちゃくちゃいいこと思いついたと思ったんですが、AIに人間味を求めることが無理でした…
ただW-Aレビュー時のヒアリング練習にはなると思うので、皆さんもやってみてください。