メインページに戻る
過去ログ

私たちも設計するよ!

ウォーターフォールのくせにボトムアップで外部設計するという謎過ぎる体制のプロジェクトは 大変面白うございます。どのような業務が要件として求められているのかはわからないが 画面の検索条件で参照するDBは確定しているという。 で、そのDB何に使うテーブルでいつデータが登録されるんだろう……

一方、自分で作っているアプリでは近頃インターフェイスがマイブームなので、 大した意味も無く疎結合してはインスタンスの解放タイミングがどこにもねぇ!? という愉快なプログラミングをしております。 .netはガベージコレクションがあるからいいじゃんってもんでもなくてね?

ともかく愉快なプロジェクトの愉快な設計書を書きながら思いついたので、そのうち再利用の機会があることを夢見て ここに書き残しておこうと思ったこと。

何らかの説明に必要な基本要素である5W1Hをソフトウェア開発に置き換えてみようと思いました。

Whenいつ実行条件
Who誰が実装箇所、クラス、メソッド、etc...
What何を操作対象、検索条件など
Whereどこから/どこに入出力対象、DB、ファイルなど
Whyなぜそうなのか記述した設計の背景
How実現するための具体的な方法実装

一番下の実装はそのまんま製造とかプログラミングとかそういう工程ですね。 詳細設計だとWhyを除く4Wに実際のテーブル名だとかクラス名、publicなメソッド、プロパティのレベルで書くもんでしょうか。 SIerだと外部設計と内部設計って工程がありますけど、詳細設計があるんだから分けなくていいじゃんって思いますね。 まあ大雑把なオブジェクト群の分割単位を定義して、それらの間のやり取りを定義する感じ?

要件定義なんかはコンピュータシステムというくくりよりも大雑把に、 何の情報をデータ化したいかとか、お仕事の開始から終了までのライフサイクルをフローチャート的に書いてみるとかそんなレベルでしょうか。

で、話は戻って今のプロジェクトだと、まぁことごとくWhyは書かれてないですね。代わりに設計段階からHowが書いてあったり、 要件定義の段階なのにWhat、Whereにテーブル名だの列名だの、Web画面のフォントサイズだのがクソ細かく書いてあったりする。 そのように設計した理由、背景が何処にも書いてないからレビューしても合ってんだかどうだか判らないんですよね。 で、いつものようにテスト工程くらいまで行ってから話が違うって事になると。

設計する方もする方で、「何故そうなのか」を考えずに他所の設計書からコピペで量だけ水増しするので、 品質 = 印刷した紙の重さ という評価基準で地球に厳しい紙屑量産体制が出来上がるわけです。 そして読みもしない設計書が大量に出来てワケがわからなくなるので、「設計書一覧更新履歴」という さらに意味の無いドキュメントが作られてしまいます。

話は変わるのですが、先日までうちで開発してたシステム、東京に持っていってシステムテストに入っている「はずだった」んですが、 あちらの「基盤環境の構築経験が豊富なSE」様はDBの構築ができずにおブチ切れになっていらっしゃるようです。

まあこれも「環境設定一覧」という設定ファイルを丸写ししただけの「設計書」を作ったもんだから、 その設定が何を意味するのかも考えずに値を丸コピーしておかしくなってるってだけなんですが。 ていうか、HP/UXのサーバで動くアプリケーションで何の疑いも無く「C:\」で始まるファイルパスを書くその漢気に惚れ惚れするわっ。


メインページに戻る
過去ログ