読者です 読者をやめる 読者になる 読者になる

mhlyc -presentation

ソフトウェアテスト、品質に関わること、たまに変なことを書いていくブログです。

SQuBOK V2をクオリアちゃん(仮名)と読んでいこう 第1話

まえがき

本日、SQuBOK V2読破会なる勉強会に参加してきました。

SQuBOKというのはソフトウェア品質知識体系ガイドのことです。品質保証とか関わるエンジニアは必読の書ですし、もちろん開発者が読むことにもおおいに価値があります。

 

 

SQuBOK V2読破会という勉強会は、月1で集まって、SQuBOK第二版を皆で頑張って読破しようという会なのですが

なんともうすぐ読破してしまいます。

あと残りは約60ページです。(全368ページ)

読破会スタートが今年の1月でしたから、まあ長い道のりではありました。

 

読破会のメンバーは大変な英傑揃いで、勉強会本編はもちろん、毎度の懇親会も非常に楽しいのですが

いかんせん終わってしまうのは寂しいですね。

そして、有終の美を飾る意味でも「SQuBOK V2アドベントカレンダーなるものに取り組むことが決定しています。

技術系アドベントカレンダーというのは、アドベントカレンダーの風習に習って12月1日〜24日の間、なにかテーマを決めてWebに1日1エントリずつ投稿していくというものです。今回はSQuBOK関連のネタを投稿することになりますね。

 

ということで、まずは試しにということでSQuBOKネタを投稿してみることにします。

しかし、ですね。さすがにエベレスト級の意識の高さを誇る私であっても、SQuBOKの重厚感にモチベーションを打ち砕かれることがあるかもしれません。

と、いうわけで。

古今東西、モチベーションの源泉となるのは

「可愛い女の子」ですから。

クオリアちゃん(仮名)と一緒にSQuBOKを読んでいくブログを書くことにしました。(名前は思いつきです。)

さすがにこんな変態的な試みをする人は自分以外にいないだろうなーという気がしますので

興味ある方は読んでみてくださると、

何か勉強になるかもしれませんし、まったく勉強にならないかもしれません。

前置きが長くなりましたが、これから本編を始めます。

 

SQuBOK V2をクオリアちゃん(仮名)と読んでいこう vol.1

※絵は書けないので、キャラの姿は想像で補ってください。

 

登場人物紹介

伊敷 孝男(いしき たかお)

意識高い系。口癖は「まあ、俺のモットーは"高品質"だから」。

 

佐藤 大輔(さとう だいすけ)

伊敷の同僚。いつも伊敷の尻拭いをやらされている。

 

クオリアちゃん

突如、伊敷の部署に配属された中途採用の女性。本名は不明だが「クオリア」と名乗っている。見た目は女子大学生。品質の話になると語りだす。ツンデレ

 

第1話 「アンタのクソコードを保守する側の気持ちになってみなさいよ!」

 

 「うわ、なんだこのコード!」

佐藤は伊敷の書いたコードを読んで愕然とした。

「if文多すぎだろ! アホかお前!」

伊敷の書いたコードには、if文があろうことか50回連続して入れ子状態で記述されていた。

 

※参考イメージ

-----------------------

 if(a == 100){

  return 0;

     if(a == 200){

       return 1;

        if(a == 300){

          return 2;

....

-----------------------

 

 

「ていうかこんな処理だったらcase文とかでもっと簡単に書けるだろ!!」

「何言ってるんだよ、佐藤。俺は機能仕様書に書いてある通りに実装したぜ?仕様通りに実装しているんだから、なんの問題もないじゃないか。見ろよ、このテスト結果。このモジュールの単体テストだって、バグひとつも出てないぜ?まあ俺のモットーは高品質だかr」

「はあ????お前はこのプロジェクトもうすぐ抜けるからいいかもしんないけどさ、俺はお前が抜けたあともこの製品保守するんだぜ??お前が書いたクソコードも保守するんだぜ??お前いいかげんにs」

「いいかげんにするのはお前の方だろ、佐藤。俺は仕様書通りにコーディングしてるんだよ、何度も同じこと言わせんなって」

二人が喧々諤々の議論を戦わせる中、一人の女性がその場に近づいていった。

「ちょっとコード見せて」

「あっ、え・・・?誰・・・?」

二人は顔を見合わせる。

「はあ?何なのこのクソコードは」

「おいおいちょっと待て誰だあんた。ていうか・・・学生?」

伊敷は首をかしげた。その女性はどうみても大学生にしか見えなかった。

「失礼ね!私は中途採用で、今日からこの部署に配属されたの。名前はクオリアです」

クオリア・・・?」

「えっ・・・?名前がクオリア・・・? あっ、でも確かに中途の人が来るってこないだ部長が言ってたような・・・」

社員証にも「クオリア」と書いているから、本当に名前がクオリアらしい。(苗字はどこに消えたのだろうか?)

「さて、話を戻すわね。このコード書いたのは誰?」

「俺だけど・・・」

「あのね、あんた。保守性って言葉知ってる?」

「保守性?」

居敷はよくわからない、といった表情をした。

「保守性ってのは・・・まあよくわかんねえけど、保守する側が気にすることなんだろ」

「お前はだから・・・」

佐藤が怒り狂いそうになるのを、クオリアちゃんがなだめた。

「いいから、ここは私に任せて。いい、伊敷くん。居敷くんはそもそも"品質"ってなんだと思う?」

「品質?」

居敷はうーん、と考えてから言った。

「よくわかんないけど、バグが少ないほど高品質なんじゃないか」

クオリアちゃんはうなずいた。

「なるほどね。それも正解のひとつよ。でもそれがすべてじゃない」

クオリアちゃんは続けた。

「品質が良いっていうのは、単純に機能が仕様通りに動くことを意味することもあれば、レイアウトの綺麗さとか高級感とか、その製品の醸し出す雰囲気を指すこともあるし、あるいは使いやすさといった特定の特性の優秀さを示すことだってあるの」

「そうなのか・・・仕様通り動けば高品質、ってわけでもないんだな」

居敷は落ち着いた様子で話を聞いている。

「そう。さっき伊敷くんは、『バグが少ないほど高品質だ』って言ったわね。それじゃあ例えば、自分がシステムの発注者になったとして考えてほしいんだけど、自分が発注したシステムに機能追加のリクエストをしたら、あまりにも高額な料金を請求されたとする。そしたらどう思う?」

「なんだそれ、って腹が立ちますね」

「そう思うでしょう?けれど、この場合バグを作りこんでいるわけではないの。あくまで、機能追加にかかるコストが異様に高いというだけの話だから。ちなみにこれが、さっき話した『保守性』が低いということよ」

居敷は黙って考え込んだ。

システムの発注者は、システムを作る側からしてみれば顧客よね。 顧客の立場になって考えてみると、システムに要求するものが『バグが少ないこと』だけじゃないことがわかるはずよ

「なるほど・・・」

「機能追加に柔軟に対応したいとか、ユーザインタフェースは初心者にもわかりやすくしてほしいとか、システム利用のピーク時にも性能劣化することなく操作したいとか・・・顧客は様々な要求を持っているの。 顧客の要求には、『障害が起きないこと』のように明示的な要求だけではなくて、例えばさっき言った『保守性が高いこと』のように、潜在的なニーズも含まれることがあることに留意する必要があるわ」

居敷は真剣にクオリアちゃんの話を聞いている。(佐藤はそれを満足気に眺めている)

「伊敷くんも当然、品質の高い製品を作ろうとしていると思うわ。けれど、そのためには顧客の要求をしっかり把握して、それを着実に実現していくということが必要不可欠なの。今回のプロジェクトにおいても、保守性に関する顧客の要求については過去の打合せの議事録にまとめてあるはずよ。要求を実現するために、どういう方針で開発を進めればいいかは自分で考えて。そこの佐藤くんも相談に乗ってくれるはずよ」

「ええ!?俺!?」

いきなり話を振られた佐藤はかなり動揺した様子だ。

「俺が悪かったよ、佐藤!俺にcase文の書き方を教えてくれ!」

「case文の書き方くらい、自分でググれよ!」

クオリアちゃんも、ありがとう!」

「べ、べつにアンタのために言ったわけじゃ・・・っていうか『ちゃん付け』で呼ぶな!」

 

ー第2話に続く

 

参考文献: 「ソフトウェア品質知識体系ガイド(第2版) SQuBOK Guide V2」, 2014

あとがき

今日、懇親会にて某氏に言われました。

「ブログだとキャラちがうよね」

はい、よく言われます。

それではまた次回!