« 会社標準の開発プロセス(ウォーターフォールモデル)に関する、あるユーザー側の評価と私見 | トップページ | 節約料理 人参と玉ねぎのかき揚げ »

2019年6月 7日 (金)

詳細設計書が役立たずになる理由や解決策について

※以下の内容は、中規模~小規模なシステムの開発で要件定義~テストまで同一グループで行う場合に当てはまるであろうことで、大規模システムの開発では、通用しないことは断っておきます。また、ユーザの頭の柔らかさや、開発手法の違い等も影響するので、ある一例と考えてもらいたいです。

詳細設計書は、だいたい役立たずになります。あんなに時間をかけて、コードと1対1になるようにExcel方眼紙に文章書いて、SQL文は印刷に収まるように加工したのに、役に立つのは最初だけ、その後は、不具合報告を潰しまくっているうちに、どんどん設計書と乖離していく始末。

教科書通りでは、「詳細設計書を直したうえで、プログラムを直すように」なんて言われますが、その時間は遅れているプロジェクトでどこから捻出できるのでしょうね?

教えて偉い人(プロジェクトマネージャー)
プロジェクトマネージャー「そんなの自己責任だ、どうにかしろ!」

出ました自己責任、新自由主義者かアンタは。

あんまり書くと、パワハラのフラッシュバックが来て「近所迷惑」をしでかすかもしれないので、これぐらいにしておきます、文章が進みませんし。

詳細設計書を書いてからプログラミングという流れって、開発環境がまだ十分でなかったころ(COBOL全盛の頃とか)の名残だと思うのですよ。昔は、端末でコーディングする前に、入念にコーディングシートに記載して、机上デバッグしてから、端末でコードを打ち込むのとよく似ているなと思いまして。

でも、当時と今では、開発する内容も高度化していますし、複雑さも増していて、更に低価格受注、短納期となっていますので、古き良き時代(?)のようには、行かなくなっているかなと思います。

それなのに、このコーディングシートの後継と思われる、詳細設計書は名前を変えながらに残っている。
しかも、JavaやC#を使っているプロジェクトなのに、使用関数と書いてあったりしている。

愚痴をだらだら書くだけでは、居酒屋のサラリーマンと変わらないので、解決策というか、この詳細設計書を誤魔化した実例を載せておきます。上には極秘でこっそりやった方法になります。(色々な要因があるので、「銀の弾丸」では無いと思っていますが、この時は比較的、上手く行きました)

今の時代だと、Excel方眼紙と睨めっこして、プログラムを脳内で作ろうとするよりも、テーブルの定義をとりあえず作ってみたり、考えるためにプログラミングをした方が、開発効率が良いと考えて、実際そうしました。脳内妄想よりは、実際動かして試行錯誤できる分だけ、信頼性は上がるのではと思います。

こんな方法で、プログラムを書くと、品質の悪いコードが出来上がりそうですので、その汚いコードをリファクタリングして綺麗にするか、もう一度、綺麗に清書する必要はあります。

そのときに、最終的にプログラムを完成させるために、上記の未修正のコードと直す指示を出すためのものとして、ドキュメントを作って、プログラム担当者に渡す必要がありました。
(自分で直すなら、大規模修正でない限り、要らないと思いますが)

それで、プログラムが完成した後に、プログラムの説明を記すものとして、プログラムの説明書は作っておいた方が、良いかと思いますが、コード1対1のようなものは、作りませんでした。例えば、画面だったら、ボタンを押すとこういうイベントが発生して、どのメソッドが呼ばれるかなどでいいかなと思います。それ以上細かいことは、コードを読みましょうでいいと思うのです。(実際そうなるのだし)

それ以上に、クラス図などプログラム間の繋がり等を俯瞰できる設計書は必要と思っています。

そもそもプログラムを書くという工程は、製造ではなく設計の最終工程と思っています。プログラムが製造されるのは、コンパイルで、実行可能ファイルが出来上がるところだと思います。(コンパイル不要な言語でしたら、適宜読み替えましょう)

でも、「プログラムは人件費の安い中国(この頃は東南アジア?)にオフショアだ」とお考えの方々には、プログラミングは、製造なんでしょうね。

« 会社標準の開発プロセス(ウォーターフォールモデル)に関する、あるユーザー側の評価と私見 | トップページ | 節約料理 人参と玉ねぎのかき揚げ »

システム開発」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 会社標準の開発プロセス(ウォーターフォールモデル)に関する、あるユーザー側の評価と私見 | トップページ | 節約料理 人参と玉ねぎのかき揚げ »