アジャイルソフトウェアの12の原則から考える品質指標
はじめに
ソフトウェア開発を行っていくうえで、「品質」をどのように定義するかは組織によって様々かと思います。
私が所属する開発チームではアジャイルによるソフトウェア開発を行っていますが、毎スプリントごとに開発スタイルや仕事の取り組み方を改善し続けるアジャイル開発において、
大きな一つの指針になる「品質」をどのように定義するかは重要な課題の一つだと考えます。
そこで、本記事ではアジャイル開発における品質定義の指標について考えたいと思います。
具体的には、アジャイルソフトウェア開発宣言の12の基本原則をもとに、品質定義に向けた指標を洗い出していきます。
想定読者
- アジャイル開発を採用している開発チーム
- 品質定義に悩んでいる開発チーム
アジャイルソフトウェア開発宣言の12の原則
アジャイルソフトウェア開発宣言とは、2001年に17人のソフトウェア開発者によって発表されたアジャイルソフトウェア開発における価値観や指針をまとめた文書です。
4つの価値と12の原則からなっていますが、本記事では12の原則のみを扱うこととします。
4つの価値については以下の記事を参照していただければと思います。
アジャイル宣言の背後にある原則
私たちは以下の原則に従う:
顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。
要求の変更はたとえ開発の後期であっても歓迎します。
変化を味方につけることによって、お客様の競争力を引き上げます。動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリリースします。
ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。
意欲に満ちた人々を集めてプロジェクトを構成します。
環境と支援を与え仕事が無事終わるまで彼らを信頼します。情報を伝えるもっとも効率的で効果的な方法はフェイス・トゥ・フェイスで話をすることです。
動くソフトウェアこそが進捗の最も重要な尺度です。
アジャイル・プロセスは持続可能な開発を促進します。
一定のペースを継続的に維持できるようにしなければなりません。技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。
シンプルさ(ムダなく作れる量を最大限にすること)が本質です。
最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます。
チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たちのやり方を最適に調整します。
自分なりにざっくり要約すると、以下の解釈です。
- 顧客にとって価値のあるものを早い段階で届けることが最優先事項。そのために要求の変化に柔軟かつ迅速に対応できる環境を整える
- ビジネス側と開発者が一緒に働くことで、コミュニケーションを効率化し、真に価値のある製品の提供を早める
- 改善意識を持ったメンバーでチームを構成することで、技術的な卓越性を追求し、開発プロセスにおいても持続的な改善を行う
アジャイルソフトウェア開発宣言の12の原則から考える品質指標
アジャイルソフトウェア開発宣言の12の原則をもとに、アジャイルにおける品質定義をプロダクトの品質指標と開発プロセスの品質指標の2つの品質指標で分類し、整理してみました。
プロダクトの品質指標
-
顧客の満足度を最優先とし、早期かつ継続的な価値提供を通じて顧客満足度を高められているか
-
変化する要件に柔軟に対応することで、顧客の市場での競争力の維持・向上を支援できているか
開発プロセスの品質指標
-
自己組織化されたチーム組織による定期的な振り返りと改善活動を通して、効率的な開発プロセスを確立できているか
-
対面での直接的なコミュニケーションを重視し、情報伝達の効率を高められているか
-
優れた技術と設計により、持続可能な開発を実現できているか
-
短いリリースサイクルを確立し、動くソフトウェアを早期に提供できているか
各指標が他の指標の領域に重なる点もありますが、なるべく独立して評価できるように分類しました。さらに詳細に落とし込むのも良いと思いますが、「品質とは何か」を定義する道のりにおいて、まずは抽象度高く考えることをはじめの一歩としたいと思います。
まとめ
本記事では、アジャイルソフトウェア開発宣言の12の原則をもとにプロダクトに関する品質指標と開発プロセスに関する品質指標を考えてみました。
プロダクトの品質指標では2項目、開発プロセスの品質指標では4項目で整理しましたが、チームの状況やその時々の課題に合わせて適宜見直し、改善を加えることが必要だと思います。
次回は、具体的な品質の計測手法について雑多に調査しまとめたいと思います。
Discussion