テストファースト仕様書、ユーザーと意思疎通の手段で
サーチマン佐藤です。
こんにちは。
まずは業務連絡。
今年も、アジャイル開発推奨
テストファーストの講習を開講しました。
よかったら、是非受講頂ければと思いますが、
「アジャイル開発」は、聞いたことありますよね。
アジャイル(agile)を訳すと、
「素早い」とか「しなやかな」という意味ですが、
従来の開発手法と比べて、
開発期間が短く、しかも融通が利く・・・と
言われていて、
その手段として、
「テストファースト」が推奨されています。
ところで、
「テストファースト」って何でしょうか?
たぶん、耳にしたことはあると思いますが、
具体的にどうするのか?
まあ、Java開発で言えば、
「Junit」という自動テストツールがあって、
これを使うことだったりしますが、
しかしですね、ツール以前に、
この「テストファースト」には、
大事な「意図」が含まれています。
その「意図」を知らずに、
なんの経験もない上司やお客さんから、
「テストは自動でしょ!」
「アジャイルでいこう」
と気楽に言われて、
気楽に受けると、大混乱(苦笑)。
さて、その「意図」は何でしょうか?
その問いを頭の片隅にいれた上で、
ところで、
一般的な開発のフローは、以下ですね。
------------------------------
仕様を決める→プログラム書く
→テスト仕様決める→テストコード書く
→テスト実施
------------------------------
「仕様を決める」部分は重要ですし、
ユーザーも力を入れますが、
しかし、仕様を決めたら、
(後は、プログラマーの世界とばかりに)
テスト実施までは、わりと緩やかになる。
下手すれば、放置プレー(笑)
でもね、どんなに仕様をしっかり決めても、
そりゃ「人の判断」が介在しますから、
プログラムを作っていく段階で、
齟齬(そご)がおきる。
解釈の違いというか、行間があるというか、
よくあるでしょ(苦笑)。
その齟齬(そご)を、
なるべく防ごうというのが「意図」ですが、
すみません、
まだピンときませんよね。
続けます。
つまり、テストファーストでは、
開発フローを、以下にします。
------------------------------
仕様を決める→テスト仕様を決める
→プログラムとテストコードを同時に書く
→テスト実施
------------------------------
テストファーストなので、当然、
「テスト仕様を決める」が先にありますが、
しかし、それは、
ただ先にもってくればいいわけでない。
大事なのは、
「テスト仕様を決める」段階でも、
ユーザーに大いに協力してもらうこと。
ここが、「意図」なのです。
何故かと言えば、
「仕様を決める」だけでは、
どうしても抽象的になりがちです。
しかし、「テスト仕様を決める」となれば、
より具体的に、
実際の動作をイメージせざるをえません。
結果、お互いの意思疎通が図れて、
ギャップが埋まるんですね。
これが、「意図」です。
よろしいでしょうか。
まだしっくりこないかもしれませんが、
図解して書いていますので、
↓をクリックして読んでみてくださいね。
https://www.searchman.info/moushi/eclipse_junit.html
↑受講しなくとも、相当役立つはずですので。
まあ、言い換えれば、
テスト仕様書は、ユーザーとアナタの
強力なコミュニケーション手段です。
そういうマインドを持つだけでも、
プロジェクトは、いい方向に向かうはずですよ。
ではでは、
今日は講習の開講にあわせて、
テストファーストの注意点を述べてみました。
プロジェクト、がんばってくださいね。
またお会いしましょう。
ありがとうございました。
●追伸
甲子園の金足農の活躍。
特に、準々決勝のツーランスクイズは、
たまたま生で見ていて、私も大興奮しました。
決勝は負けてしまいましたが、
ついつい応援してしまう自分に、
自らのアイデンティティを自覚しましたよ(苦笑)。
田舎、公立、お金ない、雑草魂・・・・
負けずに、がんばろっと。
●追伸2
韓国では今年から、
「慰安婦の日」が制定されたらしいですね。
さらに、銅像も撤去どころか、増えているとか。
これ、日韓合意に反するのでは?
--------------------------------------
※2015年、日本と韓国は、
「国際社会において、
本問題について互いに
非難・批判は控える」と合意した。
--------------------------------------
いい加減、うんざりしてきますが、
お互いに約束は守らないとね。
まあ、国のことは政治家に任せますが、
我々の仕事でも、当然ながら、
約束は守らないといけない。
約束を守った上で、信頼関係もできる。
約束を守らなければ、話にもならない。
しかしね、信頼関係ができても、
意思疎通を工夫しないと、
仕事は進んでいかないですよね。
特に我々の仕事は。
その意思疎通の一つの工夫が、
上記で述べたテストファーストでしょうか。
------------------------------------
サーチマン佐藤のJava