あっ!自信満々で海を渡ったエンジニアが、システムの前で迷子になった。
入社8年目。
私はお客様が導入した金融システムの研修のため、ロンドンへ向かっていた。
サーバ担当、ネットワーク担当、オペレーション担当も一緒だ。
そしてアプリ担当は私一人。
しかも担当するのは単なる業務アプリではない。
金融システム全体。
数多くの機能が連携し、複数のシステムが複雑に接続される巨大なシステムだ。
私はかなり意気込んでいた。
これまで数々のシステムを構築してきた。
Javaによる3層構造。
Webシステム。
データベース設計。
インターフェース設計。
お客様向けシステムの開発。
アプリケーション開発には自信があった。
「このシステム全体を理解し、将来的には開発や運用もサポートする。」
そんな使命感を持ってロンドンへ向かった。
■ 最初の違和感
研修初日。
講師が説明を始める。
しかし、何かがおかしい。
言っていることが頭に入ってこない。
英語の問題ではなかった。
むしろシステム用語ばかりだ。
知っている単語のはずなのに意味がつながらない。
サーバ担当は理解している。
ネットワーク担当も理解している。
オペレーション担当も質問している。
なのに私だけが取り残されていた。
なぜだろう。
■ システムを理解していたつもりだった
その答えに気づくまで時間がかかった。
私はずっと「アプリケーションの中」を見ていた。
画面があり、
業務ロジックがあり、
データベースがある。
いわゆるJava中心の3層構造だ。
しかしロンドンで説明されていたのは、そのさらに外側だった。
システムとシステムはどうつながるのか。
相手システムをどう認識するのか。
通信経路はどう設計されるのか。
障害が起きたらどこで切り分けるのか。
認証はどう行うのか。
通信先の設定はどこで持つのか。
ロードバランサーはどう動くのか。
ネットワークを越えた先にあるシステムとどう連携するのか。
私はシステム間のデータ連携設計は経験していた。
CSV連携もAPI連携も設計してきた。
だが今振り返ると、それは「つながっている前提」で設計していただけだった。
そもそもどうやってつながるのか。
なぜつながるのか。
どの設定がその接続を支えているのか。
そこへの理解が圧倒的に不足していた。
■ 焦り続けたロンドンの日々
研修は進む。
しかし理解が追いつかない。
朝ホテルを出る。
研修を受ける。
分からない。
夜ホテルに戻る。
資料を読む。
それでも分からない。
また翌日が来る。
気づけば研修の前半どころか後半近くまで、私は全体像を掴めずにいた。
日に日に焦りだけが増していく。
アプリ担当は自分一人。
誰も代わりはいない。
本来なら一番理解しなければならない立場だ。
しかし現実は逆だった。
この経験は、私のエンジニア人生の中でもかなり大きな挫折だったと思う。
■ 日本のエンジニア教育への問題提起
ここで少し議論を呼ぶ話をしたい。
日本ではアプリケーション開発者とインフラ担当者が分業されることが多い。
もちろん専門性は重要だ。
しかし、その結果として「システム全体が見えないエンジニア」を大量に生み出してはいないだろうか。
私はまさにその一人だった。
コードは書ける。
設計もできる。
レビューもできる。
だがシステム全体を説明できなかった。
それは本当にシステムエンジニアと言えるのだろうか。
近年、クラウドやDevOps、SREが注目されている理由もここにある気がする。
アプリだけでも駄目。
インフラだけでも駄目。
運用だけでも駄目。
全体を理解して初めて、本当の意味でシステムを理解したと言えるのかもしれない。
■ ロンドンで学んだ本当のこと
ロンドン研修で学んだのは金融システムだけではなかった。
自分の限界だった。
そして、自分が見ていなかった世界だった。
あの時の焦りは苦しかった。
だが今振り返ると、あの経験がなければ私はシステムを部分最適でしか見られないエンジニアのままだったと思う。
「システムを作った経験」と「システム全体を理解していること」は違う。
この事実を突きつけられたロンドンの日々は、今でも私のキャリアの原点になっている。
コメント
コメントを投稿