- COBOLとは?
- COBOLの需要と将来性
- COBOL求人・案件で需要のある主な業務
- COBOLエンジニアが身に付けておきたいスキル
- COBOLエンジニアとして転職したときの年収例
- COBOLに関するQ&A
COBOLとは?
COBOLの正式名称は「Common Business Oriented Language」であり、各単語の頭文字をとってCOBOLと呼ばれています。1959年に、米国のデータ組織言語協議会(Conference on Data System Languages-CODASYL)で開発されました。COBOLの特徴は「拡張性の高さ」「可読性の高さ」にあります。構文がシンプルで読みやすく、英語をある程度理解できれば高度な専門知識を持たない人間でも理解しやすいことが強みです。
関連記事:COBOLとは?COBOLエンジニアの仕事内容や転職のポイントも解説
COBOLが使われているシステム
COBOLはアメリカ国防総省の提案により誕生したプログラミング言語です。COBOLが開発される以前は、事務処理を行うための処理が、様々なプログラミング言語で書かれていました。
プログラミング言語が統一されていないと、そのコードを読むことができる人材が限られるため、保守性が下がってしまうといった課題があります。
この問題提起により、事務処理用のプログラミング言語を統一するために、COBOLを開発することが決まりました。そういった歴史的背景もあり、Cobolは現在でも主に事務処理を行うようなシステムに採用されている場合が多いです。
具体的な業界では、政府機関のシステムで個人情報を管理したり、役所への届出などを処理するシステム、銀行の勘定系の基幹システムや、証券会社などの証券取引の処理に採用されている場合が多くあります。
COBOLの特徴
もちろんCOBOLの他にもプログラミング言語は数多くあります。しかしその多くはCOBOL誕生以降に作られたものです。そういった新しい言語が誕生していく中で、COBOLが現在でもシステム開発の現場で採用されている理由を、その特徴とともに解説していきます。
高い信頼性
まず1つ目に挙げられるCOBOLの特徴は高い信頼性です。
プログラミング言語における信頼性というのは、その言語で書かれたコードが、正常に動作する可能性が高いものを指します。正しい構文で書いていれば正しく動作するに決まっている、と思うかもしれませんが、実際にはそうではありません。
プログラミング言語自体が、コードで書かれているいわば1つのソフトウェアのようなものです。そのため、プログラミング言語自体にバグが潜在している場合があります。
COBOLは誕生から約60年以上が経過しており、これまでに使われた数多くのシステム開発により、それらのCOBOL言語自体に潜在するバグは改修されている、または既に対処方法が明らかになっているものがほとんどです。ゆえに、Cobolはプログラミング業界では「枯れた言語」とも呼ばれます。枯れたと言うのは、ある種聞こえが悪く感じますが、バグが全て出尽くされた状態ということで、良い意味で使われる場合が多いです。このようにCOBOLは、他のプログラミング言語に比べて高い信頼性を保有していることが1つ目の特徴として挙げられるでしょう。
高いデータ処理能力
2つ目に上げられるCobolの特徴は、高いデータ処理能力です。
Cobolがもともと事務処理のプログラミング言語を統一するために開発されたという背景にも通ずるところがありますが、COBOLは、大量のデータに対して、決められた処理を1つずつ高速に処理していく能力に長けています。例えば証券会社や銀行では、1日に何十万、何百万という大量のトランザクションデータを処理しなければなりません。処理性能が低いプログラミング言語でシステム構築された場合、処理が夜間のうちに終わらず、次の日のオンラインサービスを立ち上げることができないといった事象が想定されます。
このような高いデータ処理が可能であるという特徴から、COBOLが採用されているケースも多くあります。
高い可読性
COBOLの3つ目の特徴は高い可読性です。可読性というのはコードの読みやすさを指します。
COBOLの構文は英語に近いため、コーディング経験のない人、経験の浅い人であったとしても、どのような処理をしているかが一目でわかる場合が多いです。
コードの可読性の高さは、システムの保守のしやすさに直結します。可読性の低い言語の場合、処理の順番や内容が一目でわからず、修正漏れや修正誤りによりバグが発生する可能性があります。
これまでに挙げてきたような金融系システムは金融インフラを支えているため、トラブルが発生すると、日本中あるいは世界中に影響を及ぼす可能性があるため、システムの刷新を頻繁に行うようなことはなく、システムの保守性が重要視されます。結果的にCOBOLを採用していると言う企業も少なくないでしょう。
様々なOSへの対応
4つ目のCOBOLの特徴は、様々なOSに対応が可能であるという点です。
システムはLinuxやWindowsなど様々なOS上で稼働しています。システム刷新のタイミングで、こうしたOSを変更する場合もあります。COBOLは特定のOSに依存せず、様々なOS上で稼働することができるため、別のOSへの移植が簡単に行うことができます。
またシステムは複数のサーバーで構成されて成り立っている場合もあります。そういったシステム構成だとWindowsサーバーとLinuxサーバーの間で、データのやり取り等をしなければならないような場合が想定されます。COBOLであれば、WindowsサーバーにもLinuxサーバーにも導入することができ、同じ言語で開発ができるのも1つのメリットといえます。
このような特徴から複数のOSが採用されているシステムや、今後別のOSに移植する可能性のあるシステムでは、COBOLが採用されるパターンもあります。
COBOLの需要と将来性
COBOLエンジニアの需要と将来性について解説します。
国内開発プロジェクトの16%で使用されるCOBOL
COBOLは現在でも日本国内で根強く支持されています。IPA(情報処理推進機構)が公表している「ソフトウェア開発分析データ集2022(※1)」によれば、国内の開発プロジェクト1,476件のうち、COBOLは16.3%のプロジェクトで使用されています。この比率は1位のJava(42.4%)に次ぐ数字です。日本のレガシーシステムの多くは、現在もCOBOLで支えられていることがわかります。
かつて日本企業を支えていた汎用機・メインフレーム・ホストコンピュータの一部は、現在でも稼働し続けています。汎用機の多くは2000年代までにオープン系のC/S(クライアント・サーバー)システムに置き換わっているものの、金融機関・官公庁・交通系機関などの一部では、未だにCOBOLを中心としたシステムが存在します。
こうしたシステムはレガシーシステムと呼ばれ、長年にわたって稼働し続けるシステムの中には、COBOLによって作成されたプログラムが蓄積されています。
大手金融機関であるみずほフィナンシャルグループでは、新システムにおいて汎用機を継続採用する決定(※2)を下しました。その背景には、COBOLベースで作成された無数の情報資産を有効活用する意図が感じられます。またCOBOLベースの情報資産は、業務プロセスの変更や法改正に対応するため、改修・機能追加などが必要です。そのため、新規開発の案件こそ減ったものの、保守・改修案件を中心にCOBOL人材の需要は根強く続いています。
※1参考:IPA「ソフトウェア開発分析データ集2022」
※2参考:日経クロステック「謎解き「みずほシステム統合」、19台あったメインフレームは何台に減った?『みずほ銀行システム統合、苦闘の19年史』プロジェクト」
コスト面を考慮したCOBOL回帰
汎用機のような一極集中型の巨大コンピュータで構成されるシステムは、移行コストが高いことでも知られています。そのため、大規模なマイグレーションには二の足を踏む企業も少なくありません。このことから、機能を細かく区切って部分的な移行を進めつつCOBOL資産を再活用する企業も増えているようです。実際に基幹システムをオープン系C/Sシステムからメインフレームへと回帰させた例もあります。
さらにクラウド環境で既存のCOBOL資産を流用できるソリューションも登場しています。つまり、プラットフォームが変わったとしても、当面の間はCOBOLを扱える人材の手が必要になるというわけです。
基本情報技術者試験でCOBOLが除外
2019年の秋期試験以降、基本情報技術者試験からCOBOLが除外されました。以前は午後問題でCOBOLの処理問題が出題されていました。現在はCOBOLにかわってPythonが出題されています。以前はCOBOLは処理がわかりやすいのでチャンス問題でしたが、現状は基本情報技術者試験の難易度自体が下がっています。そのため、Pythonでもある程度勉強すれば得点できるでしょう。
COBOLの新規開発は減少傾向になる
COBOLは古くからあるシステムでは使用され続けていますが、新規案件でCOBOLを使用するケースは稀でしょう。改修のしやすさやCOBOLエンジニアが減少していることが理由です。既存の案件もCOBOLから別の言語にコードを書き替えていることが多いので、COBOLは全体的に減少傾向です。
COBOLエンジニアの将来性
COBOLエンジニアは定年退職やマネジメント層への昇格により、すでに一線を退いているケースが少なくありません。また、若手エンジニアの多くはJava・Pythonといった先端分野で活用される言語にスキルの軸足を置くため、COBOL人材は不足気味であるのが実情です。
COBOLシステムは減少していますが、それ以上にCOBOLエンジニアが減少していて人手不足です。つまりしばらくは特に若手のCOBOLエンジニアにはむしろ需要が集中します。COBOLのスキルだけだとハイリスクですが、一定期間はCOBOLエンジニアとして働く選択肢もあるでしょう。貴重な存在なので重宝されます。
COBOL求人・案件で需要のある主な業務
COBOLの案件で需要のある主な業務について解説していきます。
ソフトウェア開発
まず1つ目の業務は、ソフトウェア開発です。COBOLはプログラミング言語であるため、COBOLを習得していればソフトウェアの開発業務を行うことができます。
また、COBOLには大きく、汎用機(メインフレーム)と呼ばれる汎用COBOLと、メインフレームだけでなくLinuxやWindows環境などでも稼働するオープンCOBOLが存在します。
メインフレームは今後なくなってオープン環境に移行していくことになりますので、オープンCOBOLのスキルを身につけておくことが大切です。
他システムとの連携
次に挙げられる業務は、他システムとの連携です。
業務アプリケーションは、複数のシステムから成り立っている場合が多いです。そのため、自分が参画しているプロジェクトで構築中のシステムの周辺システムとの連携も必要です。
COBOLにはファイルを読み込むための構文(READ)や、データベースアクセスを行う構文(FETCH)などもあります。これらを使いながら、他システムとの連携をCOBOLで実装することが必要です。
また、システムごとに担当者が分かれていることが大半であるため、他システム担当者とのシステム間インターフェースの仕様についてのやりとりも発生しますので、コミュニケーション能力も求められます。
障害対応
次に挙げられる業務は、障害対応です。システムを構築した際、設計不備やコーディングミスによりバグが作り込まれる可能性があります。
業務開始後にバグが見つかった場合には、障害として緊急で対応が必要となります。その際にCOBOL言語で実装されている部分を直す場合には、COBOLの知識が求められるため、障害対応時にもCOBOLエンジニアは重宝します。
運用・保守
運用、保守フェーズでCOBOLエンジニアに求められる業務もあります。システムがリリースされ、ユーザ業務が開始した後には、システムの仕様に関しての問い合わせが発生することがあります。その際、設計書だけでなくコードを見ながら実装箇所を確認する場合があるため、COBOLエンジニアに調査依頼が来て対応することになります。
その際、運用保守を行うチームが別にいる場合には運用保守チームに対してフォロー方法を説明し、トラブルを解消してもらう必要があります。障害が発生していなかった場合にも現行の仕様では満足していないユーザーから、改善要望が挙がり追加改修を行うことがあります。
COBOLエンジニアは、影響調査としてコードをgrep調査して、改修箇所を特定した上で、実際にコーディングを行うことが求められます。
各種テスト
システム開発ではコーディングの後に、各種のテストを実施して品質を確認していく工程があります。テスト工程では、テストケースを切って観点を1つずつ確認していくことになりますが、その際システムの仕様がわかっていなければテストケースを切ることはできません。
そのため、コードを実装したCOBOLエンジニアにテストケース作成・実施・検証が求められることがあります。特に単体テストでは、ロジック分岐を網羅するようなホワイトボックステストが求められるため、COBOLエンジニアの参画は不可欠です。
ユーザー支援
ユーザー支援にCOBOLエンジニアが求められる場合もあります。例えば、ユーザー側のシステムを移植することになった場合などです。移植前にはCOBOLを使っていなかったが、移植後にはCOBOLを使うことになったり、同じCOBOLでもバージョンが異なっていて仕様が変わっている場合もあるため、COBOLの仕様に関して支援を行う場合があります。
COBOLエンジニアが身に付けておきたいスキル
COBOLエンジニアが身に着けておきたいスキルについて解説します。
プログミングスキル
これからのCOBOLエンジニアに求められるのは、「オープン系システム上で動作するCOBOLプログラミング」のスキルです。汎用機上にあるCOBOL資産をオープン系システムに「移植」するスキルとも言い換えられます。基本的な文法に差はありませんが、文字コード・DB構造・画面仕様(CUIもしくはGUI)などに対応できるようなコーディングが必要になるでしょう。
例えば、オープン系システムでは汎用機のようにオペレーターが現場に存在しないことが多いため、専用コンソールからの入力を想定したプログラミングは不要です。また、CUIベースではなく、GUIを前提としたコーディングが求められます。
要件定義、基本設計スキル・経験
マイグレーションや機能改修案件がメインとなるCOBOLエンジニアは、既存の機能を理解したうえで作業を行います。したがって、要件定義フェーズから参画するケースも少なくありません。要件定義、基本設計の経験・スキルは、重要な評価ポイントです。詳細設計スキルは重要な評価ポイントです。
特定分野の業務知識
COBOLの需要は、金融・保険業界や官公庁に集中しているため、こうした業界の業務知識も重要な評価ポイントです。COBOLは「業務が分かればプログラムが読める」と評されることもあるほど、業務ノウハウを忠実に反映させる言語だからです。金融・保険業界の専門的な業務知識をシステムに落とし込むスキルがあれば、付加価値の高い人材とみなされるでしょう。
マネジメントスキル・PM経験
COBOLエンジニアは、エンジニア経験が長いこともあり、マネジメント能力を期待されることが少なくありません。自身のタスク(設計・開発・実装)を進めつつ、進捗管理やチームマネジメントまでカバーできるスキルがあれば、評価の対象となるでしょう。特に、PMやTLとして「プレイヤー兼マネージャー」のような役割ができれば、年収が上がりやすくなります。
他の言語スキル
COBOLエンジニアは現状は需要があるものの、今後は縮小していく可能性が高いということでした。そのため、他の言語スキルも身に付けた方が自分の市場価値という意味で安心です。またCOBOLからJavaなどにコードを書き替える案件もあります。COBOLと別の言語スキルがあれば、COBOLからの言語置き換え案件にも対応できるということです。
COBOLエンジニアとして転職したときの年収例
実際の求人からCOBOLエンジニア求人の年収を紹介します。
生産管理、製造業系のシステム開発子会社(PM)
【想定年収】550~700万円
【業務内容】要件定義、基本設計、マネジメント
【求められるスキル・経験】・SEとして数名規模のメンバーマネジメント経験、
要件定義・基本設計などの上流工程における経験
医療・公共機関向けシステム開発企業(システムエンジニア)
【想定年収】350~650万円
【業務内容】医療、公共サービスにおける基幹業務システムの開発・保守
【求められるスキル・経験】何らかのシステム開発経験
COBOLに関するQ&A
COBOLに関するQ&Aを解説していきます。
Q1. COBOLに将来性はありますか?
COBOLは誕生から60年以上経った現在でも多くのシステムで稼働しています。そのため、システムの保守や、移行などの観点でまだまだCOBOLエンジニアとしての需要は継続するものと思われます。一方で、メインフレームでのみ稼働する汎用COBOLについては、メインフレームがオープン系サーバーに置き換わっていくことは確実であるため、オープン系でも稼働するオープンCOBOLのスキルを習得しておくことが重要です。
Q2. COBOLはどこで使われていますか?
COBOLは政府系のシステムや、金融業界のシステムで多く使われています。COBOLは事務処理用の統一言語として開発されてきたことや、誕生から60年以上が経過してCOBOL言語自体に潜在するバグが出尽くされた枯れた言語であることから、信頼性が求められる上記のようなシステムではCOBOLが採用されています。
Q3. COBOLとJavaの違いは?
COBOLもJavaもどちらも大規模システムに採用されることの多いプログラミング言語です。COBOLは、事務処理を得意とする手続き型言語であり、Javaはオブジェクト指向言語です。手続き型というのは、ある手順にしたがって、上から下に1つずつ処理を行っていくような書き方を指します。一方で、Javaの場合、オブジェクトと呼ばれるモジュールに分割し、そのオブジェクトごとに役割を与えて処理を行うため、オブジェクト間でデータを授受しながら処理をしていきます。
どちらも一長一短であるため、どのような処理を実装したいのかによって決めることが重要です。
Q4. COBOLエンジニアの年収相場は?
2023年9月17日時点で募集中の求人・転職情報より30件を抽出し、年収の最大値と最小値の中間値から平均年収を算出すると約509万円となります。
関連記事:COBOLエンジニアの転職に必要な経験・スキルとは?
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。
「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。
「個別相談会」に申し込む
転職支援サービスに申し込む
※転職活動を強制することはございません。
レバテックキャリアのサービスについて