詳細設計書がクソすぎて・・・

いまの案件の詳細設計書は、ダメだ。必要な情報は書かれてないのに、不要な情報ばかり書いてるから、性能改善を行うために何の処理なのか理解しようと思ったら、プログラムを読んだ方が早いということを、声を大にして叫んでいたら、先輩より「みんなそれでも頑張って書いているから、そこらへんにしてあげて」と言われてしまった。人としては反省。

まず先に書いておくと、私は詳細設計(=内部設計)は必要だと考えている。もし詳細設計書を省略しても成立する案件があるとしたら、それは、外部設計だけでことが済んでしまい詳細設計書が不要なほど小粒の案件か、それ以外のドキュメントで詳細設計で行うべき検討が行われてしまっているかのどちらかだ。前者はともかくとして、後者は、詳細設計工程で検討した内容のまとめとしての詳細設計書はないけど、詳細設計での検討は行っているという意味で、詳細設計書相当はある形になる。

ただ、詳細設計工程で何を検討すればよいのか、考えていない人が多すぎるので、現行システム開発時に、デスマーチ状態となり、納品時に慌ててリバースで作ってしまった詳細設計書を、その経緯をすっかり忘れて次期システム開発時になぜか踏襲してしまい、「ソースコードと1対1のドキュメント」を作るはめになった上で、自分ではプログラムを碌に書いたこともない大手プライムベンダの若手が、なまじ東大卒とか、そういう上澄み層ばかりだから、そんな下らない案件で詳細設計書とはこういうものだとしっかりと学習してしまい、それが次の案件でも活かされてしまうという悪循環が、SIerの中では過去十年以上繰り返され、大手プライムベンダの中堅層が現在進行形の案件で「大活躍」するにあたり、それを下請けへと要求している結果として、相も変わらず「ソースコードと1対1のドキュメント」を作成するという詳細設計が21世紀も15年過ぎたにもかかわらず継続しているというのが、現在の状況なのではないだろうか。
さらに遡ってみると、デスマーチなんてものに当たらなくとも、まだ計算資源が少なくコンピュータが凄く高価だった時代、一生懸命机上でプログラムの設計、すなわち「ソースコードと1対1のドキュメント」を作成していた時期にまだ若手だった人たちが、90年代、もうそんなことをする必要もないのに、〜以下略。さらには時代背景として、高校生でもプログラムが書けるようにを目指したお国が、Σプロジェクトなる〜以下略。

当然のように、会社は企業体であるから、「生産性向上」、「品質向上」などのために「標準化」と称して、社内標準テンプレートと作業標準を作ってきているのだが、上記背景が大部分を占める大手プライムベンダが「標準化」を行ったところで、上記背景を超える何かを生み出すことなど神のみわざにも等しいことで、当然のように「ソースコードと1対1のドキュメント」を大量生産するテンプレートと作業標準を制定してしまい、「生産性向上」とは一体何だったのかという、本当にいったいお前らは何がしたいんだと〜以下略。
さらに「品質向上」のため、バグが出たら「なぜなぜ」分析をするも、品質分析なんてまともにできる人は大手プライムベンダにはここ10年で現場から居なくなってしまい、既に隠居してしまっているので、現場で育った「大活躍中」の中堅層は自分では品質分析できず、下請けに丸投げをすると、下請けのプログラマやその上司は当然できれば自分のせいにしたくないものだから、「仕様誤り」「設計誤り」という分類としてしまい、それをチェックする大手プライムベンダの人間は、分かっているのか分かっていないのかは分からないが、「ソースコードと1対1のドキュメント」を推奨する社内標準を守るべく?、「確かに詳細設計書に記載されていない」ということで、それを認めてしまい、詳細設計書をよりソースコードに近付ける無駄な努力をするために、「横並びチェック」と魔法のように唱え続け、さらにはご丁寧にチェックシートまで用意し、これは使えると自画自賛したうえで社内ノウハウ集約サイトに登録するなどという公害をまき散らしたうえで〜以下略。

まあとにかく、「自動化」なんて叫んでる暇があったら、もう一度、システム開発とは何かから考え直せ、と〜以下略。