なになれ

IT系のことを記録していきます。

XP祭り2018に参加しての気づき 〜品質とアーキテクチャの関係〜

XP祭り2018に参加しまして、QA to AQ – Being Agile at Quality: Values, Practices, and Patternsというワークショップを体験して思ったことを書きたいと思います。

XP祭り2018:QA to AQ – Being Agile at Quality: Values, Practices, and Patterns(Joseph Yoderさん、鷲崎さん)

以下のような内容でした。

伝統的な品質保証(Quality Assurance)の考え方から、アジャイル品質(Agile Quality)へとチームや組織において変わっていくために必要なパターン集が「QA2AQ」としてまとめられています。

本ワークショップでは、背景にあるアジャイル品質の基本的な考え方や主要なパターンの解説のうえで、品質シナリオ等を中心に幾つかの主要なパターンを体験いただく機会とする予定です。

上記の内容にもある通り、重要なパターンとして品質シナリオというものがあります。
品質シナリオとは、対象とするシステムの品質を可視化するための簡易なドキュメントです。
簡易なフォーマットなので、アジャイルなやり方にもマッチするのではとのこと。
以下のようなフォーマットです。

1. Stimulus (刺激) ※刺激と訳されるが入力といったほうが分かりやすいと思われる
 システムに影響を与えるコンディション
2. Source (発生源)
 入力を生み出した要素
3. Environment (環境)
 入力が発生した状況・環境
4. Artifact (成果物)
 入力を受けた成果物
5. Response (応答)
 入力によって持たらされるべき動作
6. Response measure (応答測定)
 評価可能なシステムの応答単位

今回のワークでは、お題としてIoTのシステムが提示されました。
そのIoTシステムで満たすべき品質を品質シナリオで定義します。可用性やパフォーマンスなどの観点です。

品質シナリオを考えたら、次に品質シナリオを満たすアーキテクチャを考えます。
以下のIoTシステムのためのアーキテクチャを参考にして、これを改良して、満たすべき品質を保証するには?という風に考えました。
冗長構成にするとか、遠隔地にバックアップ環境を用意するなど。

azure.microsoft.com

このような一連のワークを経験して、品質とアーキテクチャは目的と手段の関係のように密接に関係していることが分かります。
品質というとあまり興味がなくても、どのようにシステムを作るのかというアーキテクチャの話には興味があるエンジニアもいると思うので、このようなワークを通して品質を考えるのも役立ちそうと思いました。

つまり、アーキテクチャを学ぶことはイコール品質を学ぶことに繋がっているんだなぁという気づきです。
どういう品質を保証するために、こんなアーキテクチャになっているんだろうと考えたりできます。
アーキテクチャがやりたいことを実現できていたとしても品質を考慮しなかったら全然ダメということにも関係します。

開発現場での品質意識を高めるのにこんな内容を話したらいいのではと思った次第です。

後日、今回のワークの内容が共有されるということなので、またその時に振り返りたいと思います。