とある新人のブラック就労記 その9
20××年10月某日。
外注さんの力もあり、一通りの開発が終了し、テスト段階へと入ることができた。
システム開発のテストは大きく分けて二種類あり、それが――。
「本日より全員でシステムのテストを行います。テストは単体テストと、結合テストに分けます。単体テスト後の再テストと、結合テストは私たち、八九寺と鈴木が担当しますので、皆さんは単体テストを担当していただきます。テストスケジュールは……この通りになります。各々が開発を担当した機能は単体テスト時は別の人が担当するようにしています」
恒例の朝の会議。
鈴木さんがほぼ徹夜して作成したパワーポイントをもとに、八九寺さんによる説明が行われる。
新人くんが開発に関わっている食料品管理Webシステムは機能が複数用意されており、食料品の名前などのデータを登録するマスタ機能、数量を管理する在庫機能、倉庫への搬入搬出を管理する搬入出機能、倉庫内での作業指示書を印刷や画面上に表示する帳票機能……他にも様々な機能が存在し、細かく分けると数は120にも及んでいた。
この時点でのプロジェクトの人数は7人。
社員の八九寺さん、鈴木さん、新人くん。
そして外注のキムさんと9月から入った松井さん、田畑さん、坂本さん。
八九寺さんと鈴木さんはまだ作成しきれていない結合テストの計画書の作成からはじめるようだった。
つまり、説明通り単体テストは新人くんと外注の4人。計5人で回すことになる。
5人で120機能。単純計算で一人あたり24機能担当することになる。それを1か月で。もちろんバグが見つかった場合の再修正、再テストも含めて、その後の結合テストも込みだ。
新人くんは、単純に1日2機能ほどテストできれば再修正を含めたとしても問題なく終わる、と考えた。
しかし、それは甘い考えだったというのが、テストを始めてすぐに理解した。
「……思ったよりバグが出るな」
単体テスト報告書を見て、鈴木さんが思わず声を漏らす。
バグの内容は多岐にわたったが、一番多かったのは『データが空で表示される』というものだった。
例えば、システムに登録されている食料品の名前一覧を表示する、という機能で、名前の部分が空白の食料品が大量に表示される、といったもの。
「あっはっはっ、これすごい! すごい! なんじゃこりゃ! 印刷したら5000ページって!」
報告書を読んでいた八九寺さんは壊れたように笑う。その笑い声が耳障りなのか鈴木さんが眉間にしわを寄せた。
一番の問題は、データベースにあった。
開発するために使用していた開発環境用データベースに入っていたデータが、適当すぎたのだ。
そのため、どういうデータを表示すれば正解なのかわからずに開発を進めてしまった。
開発上は1件もデータが引けなければテストにならないので、とりあえずデータを引けるように『プログラムのほうを』適当な開発環境のデータベースに合わせてしまったのだ。
それが、本番に近い現場に基づいたデータをきちんと作成したテスト環境のデータベースを使用したことで、問題が発覚した。
もちろん、この問題も、プログラミング知識がきちんとあり、常識的なシステム開発経験者がいれば回避できた問題だった。
ただ、緊急でろくな説明もせずに雇った外注と、プログラミングどころかパソコンの使い方も分からない新入社員を開発に充てたことで起きてしまった。
「……外部結合を使いすぎだな。これじゃあ結合している意味がない。テーブルにあるデータ全部引っ張ってくんぞ。どういう頭してたらこういうSQLかけるんだよ……」
ソースを見て鈴木さんが頭を抱える。
「こっちも全部外部結合だなー。ってか作成者オタクじゃん。あいつSQLわかるっつってたのに全然わかってねぇ! ははははは!」
ソースを見て八九寺さんが爆笑する。
「いたるところでヌルポインターが起きて、まともにすすめることができませんネ……」
そしてキムさんも苦笑する。
まさに阿鼻叫喚。
それでも、期日は刻一刻と迫る。
――システム納品まで、あと2か月を切った。