キャリアの始まり―ソフトウェアエンジニアリングとの出会い
榊原氏は1986年、IBMにて自身のキャリアをスタートし、都市銀行向けの勘定系システム開発プロジェクトに関わった。当時、銀行システムは「第3次オンラインシステム」と呼ばれ、大規模なオンライン化が進行中だった。システムインテグレーション(SI)という概念がまだ存在せず、IBMや数十社もの協力会社が銀行と直接契約を結ぶのが一般的だったという。
長時間の残業が続き「6キロほど痩せた」という榊原氏は、苦笑しながら当時を振り返る。日々膨大なコードを書く中で、「何のためにこのプログラムを書いているのか」と疑問を抱きながらも、仕様通りに開発を進める日々を送っていたという。

榊原氏が特に苦労したのが「全銀接続」、つまり全銀協システムとの接続部分だ。他行との取引を支えるこのシステムのパフォーマンス改善は急務で、アセンブラによるチューニングが求められた。当時のメインフレームシステムでは効率化のため、複数のモジュールを統合し、プロセス管理コードを省く必要があった。
この構造改変によって処理速度とステップ数は改善したが、10以上のモジュールが1つに統合され、「ルーチンのお化け」ともいえるモノリシック構造が生まれた。当然メンテナンス性は低下し、榊原氏は「これで正しいのか」「手段が目的になっていないか」と悩みながら作業を続けたことを明かす。またこの経験を通じ、「ソフトウェア開発の正しいアプローチ」への関心が強まったとも語った。
その後、希望していた異動が実現し、榊原氏は地方銀行向けオンラインシステム開発プロジェクトに要件定義から関わることとなる。地方営業所のSEだけで構成されたプロジェクトメンバーの中で、東京の部署からの配属は入社2年目の榊原氏一人だったが、後にもう一人加わるも、重責を一人で担わざるを得なかった。
かつての都市銀行プロジェクトでの経験から、「新しい手法を持っているだろう」と期待された榊原氏は、複数のサブシステム開発を任された。オンラインシステムはフレームワークが整備されていたため比較的スムーズに構築できたが、バッチシステムは難航。「夜間の限られたバッチウィンドウ内で大量のデータ処理を完了させる必要があり、翌朝にずれ込むと銀行の業務に影響が出る。バッチ処理の効率化が課題だった」と振り返る。ソフトウェア開発における「正しいアプローチ」への確信を持てずにいた榊原氏にとって、バッチシステムの構造設計が大きな重圧となっていたのだ。
悶々とした日々を過ごす中で、榊原氏の転機は偶然訪れた。東京でジャズの野外ライブを訪れた際、友人との待ち合わせ時間に新宿の書店で偶然手に取ったRoger S. Pressmanの『Software Engineering - A Practitioner’s Approach』。ソフトウェア工学を体系的に解説した分厚い本の中には、要件定義や設計アプローチ、モジュール分割の考え方が網羅されており、榊原氏が抱えていた悩みに対する答えが詰まっていた。「こんな体系的にまとめられているのか」と感銘を受け、即購入し、以降愛読書となったという。

ちょうどその頃、IBMは「AD/Cycle」というソフトウェアエンジニアリングの体系を発表し推進していた。CASE(Computer-Aided Software Engineering)ツールにより、要件定義からテストまでを一貫して支援し、仕様のモデル化によってコード生成やテストの自動化を可能にする体系だ。この概念に触れることで、榊原氏はソフトウェアエンジニアリングの奥深さにさらにのめり込んでいくことになる。