SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

QA to AQ:アジャイル品質パターンによる、伝統的な品質保証からアジャイル品質への変革

品質のアジャイルなあり方(2):「アジャイル品質スペシャリスト」「品質チェックリスト」「品質作業の分散」

QA to AQ 第3回


品質作業の分散

  • 品質作業の分散(原題Spread the Quality Workload, 原著 Joseph W. Yoder, Rebecca WirfsBrock, Hironori Washizaki)[6]

 「グループの取り組みに対する個人のコミットメントが、チームを、会社を、社会を、文明を、機能させる。」 — Vince Lombardi(アメリカンフットボールのコーチ)

 アジャイルチームは、ほとんどの時間を機能の仕様策定、実装、そして検証に費やします。そして、システムのリリース前には、システムが持つべき品質特性の組み込みとその検証も必要です。実施すべき品質関連のタスクはたくさんあります。こうしたタスクがタイムリーに対処されないと、QAがGTD(Getting Things Done)のボトルネックになりかねません。

 アジャイルチームがすべてのタスクを適切なタイミングで対処するには、品質管理と機能提供のバランスをどのように取れば良いでしょうか?

***

 QA担当者は、部分的に実装された機能ではテストが役に立たないと考え、すべての機能が完成するまでシステムの品質特性の検証に消極的かもしれません。重要な品質特性を早めに検証しないと、重大な問題、遅延、手直しを引き起こす可能性があります。パフォーマンスやスケーラビリティの欠陥の改善には、システムのアーキテクチャに大幅な変更と修正が必要になることがあります。システムの品質特性に焦点を合わせる時期が早過ぎると、過剰設計と時期尚早の最適化につながる可能性があります。

 システムの品質特性を検証する環境を構築するには、技術的なスキルと相応の労力が必要です。QA担当者がシステム品質の要件定義と検証タスクの全範囲の経験を欠いていると、反復的で非効率的な手動タスクを数多く実施することになるかもしれません。素早いフィードバックが得られるという利点はありますが、プロジェクトが大きくなるにつれて、増加するシステムの品質特性を検証する手動タスクが、チームの開発速度を低下させるでしょう。

 文化的障壁の克服は困難を伴うかもしれません。たとえば、多くの開発者はコードの実装に専念することを好み、QAタスクやテスターの役目を引き受けたくないと考えています。開発者は、システムの品質特性の検証を、退屈なテスト作業だと思っているかもしれません。

 QA担当者 は大抵、人員不足であり、過労状態であり、そして過小評価されています。これは士気低下の原因になり得ます。システムの品質特性に対処しようとした時には、十分なQAリソースや経験がないかもしれません。こうなると、QA担当者 は自発的ではなく受け身になり、役割が火事の防止ではなく火事の発見になります。

 プロダクトオーナーは大抵、プロジェクトの初期段階では機能要件に集中します。機能を理解することは重要ですが、そのため品質関連のタスクが最後まで山積みになってしまうことがあります。

***

 QA担当以外の人も品質関連のタスクに巻き込み、品質管理の負担を調整するようにしましょう。プロジェクト全体に品質関連のタスクを差し込み、品質作業の負荷を長期にわたって分散させましょう。

 我々のゴールは、システムの品質特性の定義、実装、検証といった、品質作業への取り組みを安定して行えるようにすることです。開発者は既にコードの品質に対して責任と所有権を持ち、それがシステムの機能や機能を含む中核となるビジネス要件を満たしているかどうかを確認する手助けをしています。加えて、開発者がシステムの品質特性の検証を支援することもできます。たとえば、開発者は、QAエキスパートによる指導と検証を受けながら、テストフィクスチャ(テストを何度も繰返し実行可能にするための前提や条件)を作成し、特定のシステム品質の検証に取り組むことがあります。あるいは、開発者がQA担当者とペアになって、重要なシステムの品質特性を検証・監視するためのインフラストラクチャを構築することもできます[Sav]。また、開発者がもし探索的テストの基本的なトレーニングを受けたなら、新しいシステム機能のまだ試されたことのないテスト観点を提供し、作業負荷を軽減してくれるかもしれません。

 こうしたことは、プロジェクトの成功のため全員が協力し、言われた時だけでなく、必要な時に必要なだけ参加するということになります。開発者を含む全チームメンバーがQAのタスクを手伝うことができます。これが、品質への取り組みを「負荷分散」するということです。誰もが同じ専門知識を持っているわけではありませんが、品質関連のタスクをこなすことで学ぶことはできます。チームが成長して行く中で、チームメンバーがコンフォートゾーン[注2]から少し外れることもあるでしょうが、それは、成長においてはよくあることです。たとえば開発者は、コードをチェックインする前に、システム品質テストがすべてパスすることを保証する責任を持つようになるでしょう。QA担当者は依然としてシステム全体の品質を保証する責任がありますが、その責任やタスクの一部を共有することができます。

 品質の作業負荷を長期に渡って分散させることは、チーム内に分散させることと同じくらい重要です。複雑なシステムの品質特性をプロジェクトの最後になって対処しようとすると、問題とやり直しが多く発生することでしょう。適切な時期に重要な項目が確実に対処されるようにするための方法の一つは、品質ロードマップ品質バックログを作成することです。

 また、スプリントの終了前であっても、テストの実施に十分耐えうる実装になり次第、システム品質テストの作成と実施に取り掛かることは有効です。テスト結果は、まだ暫定的なものであっても、開発チームに重要なフィードバックを提供します。このテスト結果はまた、チームがいつ重要な品質特性に取り組み、改善すべきかを知るのに役立ちます。QA担当者は、実施したテストとその結果を継続的にフィードバックしなければなりません。いえ、これで十分ではありません。チームの全員が、品質の問題を見つけたら、気兼ねなく提起できるようにしましょう。

 品質チェックリストシステム品質ダッシュボードは、品質項目が忘れられたり、見落とされたりしないようにするのに役立ちます。経験は、品質エキスパートをシャドーイングし、QAリーダーとペアリングの実施で共有できます。品質作業の分散や、QAを含むOneチームとして働くことで、必ずや障壁の解体はできるでしょう。

[注2] コンフォートゾーン(Comfort zone)

 不安を持たずに仕事ができる範囲をコンフォートゾーンと言います。コンフォートゾーンの外側はラーニングゾーンとなります。ラーニングゾーンで仕事をこなし、最終的にその仕事に不安がなくなると、ラーニングゾーンはコンフォートゾーンに変わります。つまり仕事のスキルをあげる、成長するとは、ラーニングゾーンに踏み込んでコンフォートゾーンを広げることなのです。ただ、コンフォートゾーンから外側に大きく踏み込みすぎて、仕事を上手くこなすことができないようであれば、気をつけてください。そこはラーニングゾーンの外側に広がるパニックもしくはデンジャーゾーンかも知れません。

おわりに

 本稿では、アジャイル開発において効率的かつ効果的に品質保証を進めるために有用な実証済みのパターン集QA2AQから、アジャイルプロセスにおける品質保証のあり方や役割のパターンをまとめた、分類「品質のアジャイルなあり方」から3つのパターン「アジャイル品質スペシャリスト(Agile Quality Specialist)」「品質チェックリスト(Quality Checklists)」「品質作業の分散(Spread the Quality Workload)」の和訳を提供しました。本連載の以降では引き続き、他のパターンの和訳を提供する予定です。

参考文献

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
QA to AQ:アジャイル品質パターンによる、伝統的な品質保証からアジャイル品質への変革連載記事一覧

もっと読む

この記事の著者

鷲崎 弘宜(ワシザキ ヒロノリ)

 早稲田大学 研究推進部 副部長・グローバルソフトウェアエンジニアリング研究所所長・教授。国立情報学研究所 客員教授。株式会社システム情報 取締役(監査等委員)。株式会社エクスモーション 社外取締役。ガイオ・テクノロジー株式会社 技術アドバイザ。ビジネスと社会のためのソフトウェアエンジニアリングの研究、実践、社会実装に従事。2014年からQA2AQの編纂に参画。2019年からは、DX時代のオープンイノベーションに役立つデザイン思考やビジネス・価値デザインからアジャイ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

長谷川 裕一(ハセガワ ユウイチ)

 合同会社Starlight&Storm 代表社員。日本Springユーザ会会長。株式会社フルネス社外取締役。 1986年、イリノイ州警察指紋システムのアセンブリ言語プログラマからスタートして、PL,PMと経験し、アーキテクト、コンサルタントへ。現在はオブジェクト指向やアジャイルを中心に、コンサルテ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

濱井 和夫(ハマイ カズオ)

 NTTコムウェア株式会社 技術企画部プロジェクトマネジメント部門、エンタープライズビジネス事業本部事業企画部PJ支援部門 兼務 担当部長、アセッサー。PMOとしてプロジェクトの適正運営支援、及びPM育成に従事。 IIBA日本支部 教育担当理事。BABOKガイド アジャイル拡張版v2翻訳メンバー。ビジネスアナリシス/BABOKの日本での普及活動に従事。Scrum Alliance認定Product Owner。SE4BS構築やQA2AQ翻訳チームのメンバー。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

小林 浩(コバヤシ ヒロシ)

 株式会社システム情報 フェロー CMMコンサルティング室 室長。CMMI高成熟度リードアプレイザー(開発,サービス,供給者管理)。AgileCxO認定APH(Agile Performance Holarchy)コーチ・アセッサー・インストラクター。Scrum Alliance認定ScrumMaster。PMI認定PMP。SE4BS構築やQA2AQ翻訳チームのメンバー。CMMIやAPHを活用して組織能力向上を支援するコンサルテ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

長田 武徳(オサダ タケノリ)

 株式会社エヌ・ティ・ティ・データ シニアITアーキテクト。ITサービス・ペイメント事業本部所属。2006年入社以来、決済領域における各種プロジェクトを担当後、2018年よりプロダクトオーナ・製品マネージャとしてアジャイル開発を用いたプロジェクトを推進。現在は、アジャイル開発におけるQAプロセスの確...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

田村 英雅(タムラ ヒデノリ)

 合同会社 GuildHub 代表社員。日本 Spring ユーザー会スタッフ。大学で機械工学科を専攻。2001 年から多くのシステム開発プロジェクトに従事。現在では主に Java(特に Spring Framework を得意とする)を使用したシステムのアーキテクトとして活動している。英語を用いた...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

陳 凌峰(チン リョウホウ)

 フリーランサー。2003年に上海交通大学(ソフトウエア専門)を卒業後、2006年から日本でシステム開発作業に従事。技術好奇心旺盛、目標は世界で戦えるフルスタックエンジニア。現在はマイクロサービスを中心にアジャイル 、DevOpsを展開中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/12324 2020/09/09 17:43

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー