(3)重要なことは実装を見通すことである

 吾輩はシステムエンジニアーである。仕様はまだ、把握していない。

 さて、3Aの画面は、子画面が「3Aの1」から「3Aの6」まで6つある。あわせて7画面。一つ一つ確かめて不足を埋めていくと、ほとんど書き終わったあとに、知らない仕様がわかって後戻りするということがありそうなので、まずは全体像を把握してみることにする。そもそも、WBSに引いてある5日というのが、実現可能なのかどうか。

 親画面だけでも入力項目は 30 くらいあるが、よくよく意識して見てみると、子画面それぞれにも、ほぼ同じ数の入力項目がある。そのうえ、ほとんどの項目で、何らかのチェック処理やデータベースへの参照処理が書いてある。書いてあるだけで、エラーで落ちたり、全く動かなかったりするわけなのだが。
 子画面のひとつには、検索条件を入力し、その結果一覧を表示するというものもあるのだが、その結果一覧の表がやたら横に長く、少し心が折れそうになる。横スクロールバーのつまみが豆つぶぐらいしかない。
 ざっと見渡した感覚でしかないが、半分くらいの処理は、書いてあるが動かないか、コメントが書いてあるだけで、中身が書いてない。これでは、1日を 1.5 人日にしても、5日では無理そうな気がする。たとえ、仕様が把握できたとしても、今度は、数に負けてしまいそうだ。ということで、しばらくは、何が正解で、何を書くべきかを考えることに時間を割くことにする。

 この現場、設計書と呼ばれるものは存在しているのだが、これは、お客さんから最低限のレビューを受けるために作ったと思われるパワーポイントで、画面遷移と処理概要が書かれているだけである。幸いにして、テーブルのI/Oらしきものは記載されているから、これを基本設計書と呼ぶことにする。
 詳細設計書は、本来、プログラムを書くために、基本設計書を掘り下げたものであるが、共通機能については、これは存在しているようである。しかしながら、業務機能の開発単位で記述されているものが見つからない。とはいえ、詳細設計の要否は、どの現場でも問われるわけであり、工数が潤沢に確保されておらず、設計者と実装者が同じであれば、実装のコメントから詳細設計を起こすという場合も多い。きっとこの現場もそうなのであろう。ともかく、詳細設計で重要なことは、機能を実現できるかどうかを、上流工程に基づき理論立てて、実装を見通すことである。一応、論理ER図とテーブル設計書はあるようなので、これを、基本設計書のI/Oと見比べながら、いわゆる「詳細設計」を吾輩の脳内でやってみることにする。物理ER図があれば少しは楽になりそうなのだが、探した限りでは見つからなかった。いずれにしても、スケジュール調整をせざるを得ないと思うので、ちょっと相談しにいくことにする。

「スケジュール調整ですか。うーん。相談するとすれば、レインボーの浅見さんですけど、どうかなあ。仕様のことは、安藤さん。いちおう、DBAは桜木さんなので、データベースのことは彼に聞いたらいいと思います。」
 吉沢さんに教えてもらい、腕まくりをして、ものすごい勢いで自分の世界に入っているあのひとは、浅見さんという名前だったのだと知り、彼をロックオンしたのだが、ビッグイベント中なのか、珍しく離席のようである。安藤さんと桜木さんは在席だが、DBAは桜木さんということなので、まず彼に物理ERの場所を聞きに行く。横に並ぶ二人に割って入り、桜木さんに話しかける。

「すみません。ランサースタイルの山口といいますが、はじめまして。桜木さん、ですよね。ちょっとデータベースのことで聞きたいことがあるんですが。」
「はい。はじめまして。お話しはお聞きしています。よろしくお願します。」
 セルかチタン全盛の今にしては珍しく、ツーポイントの縁なしフレームをかけた、小ざっぱりした青年。育ちの良さがにじみ出ているという印象だ。吾輩が続ける。

「あのう、物理ERってあるんですかね?」
「あっ、えーと、ツールで出すようになってるんです。あとでメッセンジャーでセットアップの場所をお送りしますんで、インストールしておいてください。とりあえず今は印刷してお渡ししますね。」
 オフィスの窓側にあるプリンターから戻ってきた彼は、A3、3枚の巨大なER図を持って、僕に手渡してきた。うっ、でかいうえに字が小さい。面喰らいながら、一応お礼をするも、気になったことを思い出したので、A3の2枚目に目を凝らし、それがそうなっていることを確認して、彼に問う。

「ええと、3Aの画面、仕入データに仕入先と取引先を入れるんですけど、画面からは、両方マスタを参照して入力できるできるようになっています。なのに、仕入先マスタにも、取引先があって、マスタで登録されている取引先以外を仕入データに登録できるんですが、これはいいんですか?」