開発事例①
マスタデータを移行せよ〜若手プログラマーの葛藤と挑戦〜

[登場人物] ※登場人物は全て仮名です。
プログラマー 田坂哲也、田坂の上司、安藤、大越、堀田(元請システムエンジニア)

田坂哲也はキャリア5年の若手プログラマー。全国展開する農協系スーパーマーケットの保守業務を担当、元請企業のシステムエンジニアである大越とシステム改修や不具合調査に勤しむ日々を過ごしていた。

そんな折、ある依頼が舞い込む。

それは関東圏を中心に25店舗を展開するホームセンターのマスタデータ移行。その極めて重要なプロジェクトにおいて、田坂に課せられた役割は「システムエンジニア」であった。
プログラマーとシステムエンジニアは例えるなら「大工などの職人」と「設計士」ほど違う。田坂は入社直後から量販店向けのシステムに携り、そのノウハウを期待されてのことである。

これは一職人であった田坂の技量と経験を買われての大抜擢だったのだ。

プロジェクトリーダーは元請企業のシステムエンジニアである堀田が務めた。
田坂は堀田とともに顧客であるホームセンターを訪ね、マスタデータの変換ルールや移行のタイミングなどについて打ち合わせを重ねていった。システムエンジニアの指示に従い、決められた作業を進める今までの仕事とは違い、顧客と堀田の取り決めを理解し、実際の仕様に落とし込んでいく。課せられたミッションは田坂に大きなやりがいと、高いハードルを同時に感じさせていた。

「仕事はチームで行うもの」

自分ひとりでは状況を乗り切れないと感じた田坂は、このハピテク精神に従い上司である安藤に逐一状況を報告し、適宜指示を仰ぐことにする。
安藤の的確な指示により田坂の不安は徐々に取り除かれていく。しかしその一方で、自分が書き起こした設計書には今一つ確信を持てずにいた。それは元請システムエンジニアの方針の差によるものだった。これまで共に業務についていた大越のレビュー(プログラムの不具合を検出・修正するための検査)は細部にわたるまで指摘が上がるのに対し、今回の担当者・堀田は大筋の機能仕様に誤りがなければレビューで指摘を上げないタイプ。田坂はモヤモヤしていた部分の記載に対して、堀田から指摘が上がらなかったことが不安だったのである。しかしその後、モヤモヤは解消されることがないまま、田坂はパートナープログラマーとともに自身の起こした設計書の実装を進めていく。工程は総合テストフェーズ(システムが想定通りに作動するかの検証)を経て、いよいよ顧客側のユーザー受入フェーズを迎えた。

だがここで問題が発生する。
「商品分類マスタの移行結果が想定外である」と顧客側から指摘されたのだ。商品分類マスタとは、小売業において基本的かつ常識的なマスタである。通常、店頭に並ぶ商品は、大分類、中分類、小分類、細分類(例えば、食品>菓子>チョコレート菓子>個別商品という具合)で管理され情報を保持する。だが今回、一部の階層で情報が正常に移行されていないというのだ。移行ルールの一部を例外的に変換する仕様が誤っていたことが原因と特定されたが、これはまさに田坂が懸念していた部分でもあった。田坂はすぐさま受けた指摘に対し修正を行い、どうにか顧客受入フェーズを切り抜けたのだが、費やした工数は膨大なものとなってしまっていた。

以上が、田坂のシステムエンジニアとしてのデビューの記録である。
順風満帆とはいかなかったが、安藤と共に原因と対策、そして設計書の持つ意味について考察することで、彼は今回の経験から重要な教訓を得た。
「設計書の誤りはプロジェクト全体に影響を及ぼす。不具合の発覚は後工程になればなるほど影響が大きく、修正には膨大な時間と手間がかかる」
「たとえレビューで指摘がなかったとしても、不安材料のある設計書は納得いくまで検討・修正すべきである」
困難な局面にも全力で立ち向かい、教訓から学び続ける限り、田坂がこれからも成長し続けることは間違いないだろう。

田坂はこのプロジェクトで得た経験を糧にシステムエンジニアとして邁進する日々を送っている。