嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

V字モデルのおかしさ 1

どの様な話?

V字モデル(Vモデル Wikipedia 日本語版)について前から(特にテストの辺りで)おかしいと思っていましたが、

何がおかしいか、理解出来つつある様に思えて来ました。

 

V字モデルでは、

と言うモデルですが、

確かに、V字の左側(コーディング開始前)は、その様な荒い切り方(分析・設計の各段階)以外にあり得ないでしょうけれど、

V字の右側(コーディング開始後)には、果たしてそれで事足りるのか? と言う問題意識が生じるはずです。

 

コーディング開始後

このブログの初めの方で「箇条書きが書けない 1」と言う記事を書きましたが、

  • (感覚的に言って)レベル20の項目や、レベル50の項目が それなりの重要性をもって現れる。
  • しかしExcelでもWordでも、専用のWBSのツールでも、 レベル50はもちろん、レベル20の項目でも書き込めない。

と言うのが趣旨でした。

これは現役当時の偽らざる実感でしたが、なぜなのかは名状し難い問題でした。

 

これを(閉じた、束構造の)因果ダイアログを使って名状する事が可能では無いかと思えて来たのです。

つまり、

  • コーディング開始前には、要求分析・基本設計・機能設計・詳細設計程度の数のレベル分けからスタートする事は、合理的で有り、仕方の無い事かも知れないが、
  • それら(この場合は4レベル)が、コーディングにより実際の動作対象として観測されると、多数レベル*1の因果ダイアログ*2に細分化する

のでは無いかと言うのです。

プログラミングの実務を担当していた私がいくら、箇条書きが書けない(レベルが多すぎる)と話しても、
プログラミングの実務を担当していない上司には届かない(4レベルが妥当に見える)と言う話は、これが原因だった可能性があります。

 

V字モデルのテストの真のあるべき姿

そして、

  • それらをコーディング前の階梯(例えば4レベル)のまま、「対応するレベルのテスト」として扱うと、
  • せっかく多数レベルの因果ダイアグラムの形に現実化した知見を全部捨てることになり、
  • 複数の「原因ー結果」が連なった隔靴掻痒的なテストになってしまう。(まさに因果推論・統計学的な『交叉』を地で行く様)

(のでは無いか)と言う言い方です。

つまり、

  • 要求分析・基本設計・機能設計・詳細設計程度の数のレベル分けは、コーディング開始便法で有り
  • テストでは、コーディング開始に得られた、因果ダイアログの階梯にしたがった、より現実的なレベル分けに対応するテストをするべきでは無いか?

と言うのが、私のV字モデルに対する疑念です。
(ベクトルのアルファベット表示の様な、V字の仮説とでも言いましょうか? V字の左側は2本線であるべきかと思います。)

ベクトルのV字

結論

V字モデルは、コーディング開始後には、現実離れした側面が現れる為、
これからも「V字モデルのおかしさ」でプログラミングが嫌いになる人は存在し続けることでしょう。 

*1:実用システムでは100レベルに達しかねない

*2:レベルが増えた分、1つのレベル内のノードは減る