世代論を語るのは難しい。ある世代と次の世代を比較し、優劣があると言うつもりはないが、違いがあれば指摘したくなる。年長者は善意からであっても若手に対し、どうしてもものを教える態度をとってしまう。正論だとしても年長者の自慢話に聞こえたら若手はそれを受け入れない。そもそも「××世代とは」と語られても××世代という明確な定義があり、それを誰もが理解しているわけではない。
とはいえ社会や産業界における情報システムの担い手であるエンジニアにおいては世代によって知識やスキルに断絶がある。前回の本欄で書いた通り、「端末に向かって設計やプログラミングをしている姿は同じであっても世代によって見えているものがかなり違う」。
関連記事 若手エンジニアには分からない?業務システムになぜRDBが必要かエンジニアも、エンジニアに依頼を出す人も、世代と世代の違いを知って行動する必要がある。
Web世代とは何か
私はオープンシステムの世代であり、PCのデスクトップアプリケーション開発でキャリアを始め、その後、業務システムの開発現場へ移っていった。そして現在はWeb系業界に身を置き、Web系企業でバックエンド領域のシステムを設計・開発している。
本連載を担当しているIT勉強宴会の主催者である佐野初夫氏はメインフレーム世代の方だが、オープンシステムへの移行があったとき、新しい要素技術のキャッチアップに戸惑い、企業情報システムの設計ノウハウを後輩にうまく継承できなかったと述べている。
同様の構図が今もあると私は感じている。私を含むオープンシステム世代は次の世代に自分たちの設計ノウハウを伝えきれていない。
世代を定義しないと話を進められないので簡単にまとめてみる。異論は色々あるだろうがおおむねこうだということにして読み進んでほしい。
オープンシステム世代の次を「Web世代」とする。私が今いるWeb系業界、Web系企業でWebサービスシステムを開発しているエンジニアの世代である。Web系企業は次々に誕生しており、システムを内製することが多く、若手のエンジニアはWeb系企業を目指す傾向がある。
Web系業界やWeb系企業は消費者向けであれ企業向けであれ「コンピューターによる何らかのサービスをインターネット経由で不特定多数に提供する」業界または企業である。EC(電子商取引)が典型だ。Webサービスシステムとはそうした事業を支えるシステムを意味する。
世代 | プラットフォームの例 | プログラミング言語の例 |
---|---|---|
メインフレーム | メインフレーム、オフコン | COBOL、PL/I |
オープンシステム | Linuxサーバー、Windows(サーバー、PC) | C++、Java、C# |
Web | Amazon Web Services、Webブラウザ、スマートフォン | JavaScript、Ruby、Swift |
Web世代が開発するWebサービスシステムの要素技術には、ブラウザはもちろん、クラウド、スマートフォンやタブレットのアプリまで含む。
世代によって設計、開発する対象となるシステムにも違いがある。メインフレーム世代が手掛けたのは基幹系システム、業務システム、エンタープライズシステムなどだが本連載名にある「企業情報システム」に統一する。
オープンシステムの世代は当初、基幹系システムのデータを加工分析する情報系システムを手掛けたが、徐々にメインフレームを代替する基幹系システムも設計、開発していった。こうして2つの世代とも企業情報システムを手掛けている。
これに対し、Web世代はECなどのWebサービスシステムを開発する。ただし徐々に企業情報システムに関わるようになりつつある。
「ECだって企業の情報システムでしょう」「うーん。自分がつくっているのは企業情報システムなのだろうか」と首をひねる読者もおられるだろう。そこで次の定義を提案しておく。
「関わるアクターが3以上の場合、企業情報システムと呼ぶ」
前回の記事で紹介した飲食店で使われる複写式伝票はアクターが3以上である。料理をつくるアクターと運ぶアクターがいて、店長など事業者が加わって3になる。一方、比較的単純なWebサービスシステムはユーザーと管理者という「アクターが2」のケースに該当する。