これまでのエンジニアを取り巻く状況
10年ほど前、エンジニアには「ホスト系」「オープン系」という区別がありました。誤解を恐れずに言うならば「ホスト系エンジニア」は「ホスト」と呼ばれる中央集権的な高級マシンを主にCOBOLで操るエンジニア、「オープン系エンジニア」はPerlやPHP、Ruby、Javaといったオープンな枠組みで、Webに強い言語を使ったシステムをインターネット関連技術を用いて構築するエンジニアです。CodeZineをご覧の多くは後者である「オープン系」のエンジニアに当たるのではないでしょうか。
決まった処理をコンピュータに任せることで業務の効率化を図るという目的はホスト系もオープン系も同じです。要件定義、仕様策定し、実装・テストをして運用にあたるという大まかな流れも同じです。
決定的に違うのはアーキテクチャの選択幅ではないでしょうか。ホスト系はマシンを提供しているベンダーのドキュメントに記載されていることが全てであり、用意されているレールに載れば着実にシステムを構築できます。一方オープン系システムは多岐にわたる製品・技術・言語といった選択肢の中から都度メンバーの技術スキル、予算、そして時には政治的要因などからアーキテクチャを決定する必要があります。
選択肢が多くあり、特定のベンダに縛られず、技術革新が早く進み、競争が激しくTCOに優れているのがオープン系システムですが、最適解を求めるのは容易ではありません。一度採用したフレームワーク・言語・ライブラリはその時点では最適かもしれませんがオープン系システムはすさまじい速度で陳腐化していきます。一度開発フェーズを終えてメンテナンスモードに入ったシステムの陳腐化はあまり問題にならないことも多いですが、それに張り付いてしまい近視眼的になってしまうとエンジニアとして陳腐化してしまうことになります。つまり常にフレッシュな情報を仕入れて技術トレンドを追いかけ続けることはオープン系のエンジニアとして差別化を図る重要な要因に他なりません。
さて、インターネットは世界をリアルタイムに繋げ、いくらでも情報を仕入れることができるようになりました。IT関連は情報過多の状態で、日々氾濫している情報を全て追いかけることはまず不可能です。読者の皆様はどのような方法で情報を仕入れていますか?