WF開発とアジャイル開発の品質特性の違い?!

JSTQBの勉強会の調べ物をして気になったこと。

 

WF開発とアジャイル開発で目標としている指標が違うこと。

元ネタ:アジャイル開発が重視する品質特性~保守性と移植性

http://forza.cocolog-nifty.com/blog/2012/07/post-1e49.html

 

従来のWF開発で重要視されていた品質特性は機能と信頼性、

一方アジャイル開発では保守性と移植性であること。

 

この記事を読んだときになるほど!と思った。

そしてなぜこのように変わってきたきたのかを自分なりに考えてみた。

 

従来のソフトウェアは、あくまで、何かをするための"道具"であり、ハードウェアの付属品とういう考え方だった。ソフトウェアを自体を楽しむことは少なく、ゲームセンターのインベーダーゲームなどが数少ない"楽しむための"ソフトウェアだったのではないかと思う。

 

一昔前のある装置に搭載されているソフトウェアを考えてみる。

このときは目的が最優先であり、作業者は、如何に間違いなく操作をするかが要求される。このときは言語やCPU、メモリなどの制限により、ソフトウェアから人に近づくことはできなかった。

 

しかし、近年は様々な言語、ライブラリ、CPU、メモリ、HDDの進化により、ユーザビリティ(使用性)が注目されるようになった。コマンドベースだったものがアイコンになったり、iphoneのような自然に近いソフトウェアの動きとソフトウェアが人に近づいているのは間違いないと思う。近頃のソフトウェアをユーザー視点で見ると、目的を達成するだけではなく、ストレスなく使えて、如何にかっこいいということも重視しているように感じる。何かのアプリ探すときとか数個見比べてしまうのはそのせいだと思う。

 

勉強会で品質特性の話をすることがあるが、どういうテストをすれば担保できるか分からない品質特性もある。(自分の勉強不足もあるが・・・)

品質特性の中でも特に感覚に近いユーザビリティ(使用性)は一意にテストができないと思っているものの一つ。例えば使いやすいと感じるかどうかは、その人の置かれている環境で決まってくる。12歳の少年のユーザビリティと80歳の老人が求めるユーザビリティは明確に違うし、しらふの時に求められるユーザービリティと酔っ払っているときのユーザビリティも違う。すなわち効率的にユーザビリティを高める方法はターゲットとする人に実際に操作してもらい、感覚をフィードバックしていくしかない。

また同様に本当に必要な機能というのも使ってみると良く分ってくる。携帯にプリインストールされているアプリの中で8割以上使っている人なんて稀だよね。

 

そうすると、速く変更ができる効率性、保守性(保守性の中でも変更性、安定性)がソフトウェアに求められてくることになる。だからこその小さく作るアジャイル開発であり、効率性と保守性に重きを置いているんだなぁと思った。でもそこで本当に追っているのは必要な機能(機能性)とユーザビリティだなぁと。

 

結論的には、

 ・ソフトウェアの周りの環境が良くなり、ユーザビリティが求められてきた。

 ・ユーザビリティの良し悪しは一意に定義できない。(=テストできない)

 ・必要な機能やユーザビリティの改良を重ねていくためには保守性が必要。

 

もちろん、他にもビジネスの変化が早くなったなど沢山の要因があると思う。

でも個人的にはWF開発とアジャイル開発で求められる品質が違うってことがなんとなく分った気がしたので書いてみた。