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