@uents blog

Code wins arguments.

ソフトウェア品質マネジメントについて考える

今年に入って職場で小規模なプロジェクトマネジメントをやらせてもらうようになったので、ソフトウェア品質管理の研修を受けてみた。

研修自体は2日間あったが、ソフトウェア品質の一般論に留まらず、開発プロセスにおける品質管理、プロジェクトマネジメントまで及び、「ソフトウェア品質」の基礎知識を習得する者を対象にすると言いながら、かなり濃い内容でとても為になった。(実際に受講者も40代のベテランの方達ばかりで。色々とこぼれ話も聞けたりして楽しかった)

以下、備忘録がわりに特に印象に残ったことをあげておく。

品質の定義

品質とはひとことで表すと、「ユーザーのニーズや用途を満足させるために、プロダクトやサービスが持つべき特性」を言うらしい。

品質が確保されたソフトウェアがというと、単に「バグが少ない」「テストが十分にこなされている」といったものと勘違いしていたが、それは一断片(品質特性の中の「信頼性」)に過ぎなくて、上記の特性を満たす作り込みがどれだけなされているかを考えなくてはならないということだ。

この大前提からして今まで間違っていたなんて、、、OJTばかりじゃなくて、やっぱり本を読んだり研修を受けたりしないとダメだな。

機能要件と非機能要件

ソフトウェア開発におけるスタートは、要求(ユーザーニーズ)を要件(ユーザーニーズを明確化したもの)に落とし込むことにあるが、要件は大きく次の2つに分けられる。
  • 機能要件:ニーズを満たすために具体的に要求される要件
  • 非機能要件:パフォーマンス、ユーザビリティ、信頼性、保守性など、機能に付随して発生するニーズによる要件
非機能要件で挙げられているようなものは、個人的な経験では設計フェーズで落とし込むものかと思っていたが、実は要件定義でブラッシュアップしなければならないとは、その考えは余りなかった。

きっと、Appleとか任天堂のように「使い心地のよい」商品は、要件定義の段階でこういったものをきちんと洗い出せているんだろうな。

品質の計画

品質のもつ特性は「信頼性」「保守性」「機能性」などに分類されるが、開発のどういったフェーズで落とし込むか、どういった形で見える化するかといったことは、これまで余り考えてなった。

信頼性であれば、工数率やKsあたりの指摘件数、機能性であれば機能テスト網羅率、といった具合で、(正確には難しいかもしれないが)ある程度指標化すれば、品質のコントロールも上手く行える仕組みとなる。

契約

プロジェクトマネジメントを行うにあたって、契約も重要なフェーズである。「請負」「委任」「派遣」の形態(そもそもココの違いからよく分かってなかった・・・)から、契約内容に要件・作業範囲・納入条件をきちんと盛り込むこと、瑕疵担保責任や保守契約など、ユーザーとの責任の明確化も品質確保にとって大事な要素。

まとめ

研修を受ける前に上記の写真の書籍、「アート・オブ・プロジェクトマネジメント」を読んで臨んだが、重複する内容も多く、やはり品質は開発プロセスの中で作り込むということを改めて認識させられた。
また、プロジェクトマネジメントは開発者の邪魔をするものではなく、開発を手助けするものというスタンスにはとても共感させられた。ここの肝が分かってないと、単に書類づくりなどの面倒な作業を開発者に押し付けるだけで、何にもならない。でも実際こういう人、多いんだな。要注意。

そのあたりを「アート・オブ・プロジェクトマネジメント」では、エピソードを交えて上手く表現している。

最初のうちはプロジェクトが順調に進んでいたため、上司は私が何をやっているのか気付いていませんでした。しかし、私がチームよりもチェックリストとプロセスに時間を割いていることを知った時、大きな赤旗(警告サイン)を振ったのです。

 ある日、彼は私の部屋に入り、室内のすべての壁に貼られた、滑稽なほど巨大なチェックリストと表を見た後、私を座らせてドアを閉めました。そして、「スコット君、こういったものも悪くないが、君のプロジェクトってーのは君のチームそのものなんだよ。チェックリストではなくチームをマネジメントするんだ。 このチェックリストがチームのマネジメントに役立つなら、それは素晴らしいことだ。しかし、君のやり方ではすぐにチェックリストのマネジメントをするため に君のチームを使うことになるだろう」と言ったのです。


他にもいっぱいあるんだけど、もう書ききれないので、この辺で。

こういった品質プロセスをトップダウン/ボトムアップの両面からのサイクルで回していくことが大事。僕も実務と今回勉強したことを何度も照らし合わせながら、実践して行きたいと思った。

参考リンク
アート・オブ・プロジェクトマネジメントを購入するにあたって、以下のサイトを参考にさせて頂きました :)