IT業界の社会的役割
IT業界の社会的な役割は、IT(情報技術)を用いて便利で快適な社会にしていくことです。 ITは日々の生活や企業活動に不可欠なものとなっており、社会を根底から支え、私たちの生活を豊かにしています。 今後は、各分野のIT化を推し進めるだけでなく、既に導入されたシステムを維持していくことも大切な役割となっていきます。
IT業界これからの展望
- デジタルトランスフォーメーション(DX)
- 今後の日本や世界では、ビジネス・社会環境・消費者マインドの変化や多様化、既存ITシステムの老朽化により新たな技術革新が求められています。 劇的に変化していく時代に対応できるビジネスモデルとともにITシステムも移り変わっていかなくてはなりません。
- IoTの拡大
- 「モノのインターネット化」と呼ばれ、あらゆるものがネットにつながり、遠隔地から情報の通信を可能にする技術です。 効率化を図るだけでなく、蓄積されたデータを分析することで、新たなサービスや価値を生み出すことができるようになります。
- ビッグデータ、AIの活用
- ITの進歩によって増え続ける膨大なデータを人工知能(AI)等によって分析し、マーケティングなどに生かすことができます。 データを活用することで経験則や勘だけでなく、科学的なアプローチで問題解決を図れるようになります。
- クラウド化の普及
- アプリやIT環境をインターネット経由で提供するサービスで市場規模が拡大しています。 自前のサーバでデータやシステムをメンテナンスするよりも、必要な機能だけをクラウドで利用する企業が増えています。
- エンジニア不足
- さまざまな業界や分野でITサービスの需要は増え続けているため、エンジニア不足が深刻化しています。 経済産業省の調査によると、IT業界の人材は2016年時点で約17万人が不足していたと言われていましたが、2030年には約79万人が不足するとみられています。
IT業界の分類
IT業界は大きく分けると下記の5つに分類されます。
-
通信
電話・インターネット・無線などの通信インフラを提供する業界です。公共サービスも多く社会への影響力も貢献も大きい、最先端の技術に関わる業界です。第5世代移動通信システム「5G」はIoT・VR・ARといった先端技術の実用化において欠かせない技術で、今後のITの成長を支える重要な業界です。
-
インターネット・Web
インターネット上でサービスを提供する企業です。PCだけでなくスマホやタブレット端末の普及により市場は拡大しています。クラウドサービス・SNS・ソーシャルゲーム等の分野はさまざまなサービスが創出され、さらなる成長が期待されています。
-
ハードウェア
PC・スマホ・周辺機器といったハードウェアの開発・製造・販売を行う業界です。近年ではスマホやタブレット、ゲーム機、家電等にも高度プログラムが搭載されているため、このような製品を扱うメーカーが「IT企業」と分類されることもあります。
-
ソフトウェア
ソフトウェアは、システム全体を管理する「オペレーティングシステム(OS)」とそのOS上で特定の作業を実行する「アプリケーションソフト」、その間を仲介する役割を持つ「ミドルウェア」があります。ソフトウェア系の企業は、セキュリティソフトや財務会計ソフト、顧客管理ソフト、各種アプリケーションなど、時代のニーズや多様化するハードに合った多種多様なソフトウェアを開発しています。
当社はここ -
情報処理サービス
情報処理サービス業界とは、ITを活用した業務効率化を提案するコンサルティング業務、情報システムの構築・運用等が含まれます。このようなサービスを提供する企業は、「システムインテグレータ(SIer)」とも呼ばれ、顧客企業が抱える課題を解決するためのシステムを企画・提案し、ハードウェアの調達、ソフトウェアの開発、構築・運用まで行うケースもあります。
当社はここ
ソフトウェアの種類
ソフトウェアは大きく分けると、下記の5つに分類されます。
-
業務系・オープン系
PCで使用する業務向けシステム(会計、勤怠、労務、販売、顧客等の管理システム)。既存業務を円滑化・効率化・経費削減する目的で開発され、顧客に合わせた独自システムや市販されているパッケージシステムがあります。どの企業にも必要なシステムであることから、安定したニーズがあります。開発言語はC言語、C++、C#、Java、Perl、VB、Pythonなど
当社はここ -
制御系
機械設備や電気機器などの動きを制御コントロールするシステム。生産性や利便性の向上、安全性の確保、経費削減、セキュリティ確保など多様な目的で開発されます。制御系/組込系はコントロールするハードウェアの知識もある程度必要になります。開発言語はC言語、Java、VB、アセンブラなど
当社はここ -
Web系
インターネットを利用したWeb上のシステム(通販サイト、ログインシステム、SNS、スマホアプリなど)。使用環境が変化しやすいため常に最新な状態を維持する必要があります。そのため開発・保守・改修の所要期間が短く、スピードを求められる傾向にあります。一般的に目にする機会が多いシステムです。開発言語はJava、JavaScript、PHP、Ruby、Pythonなど
当社はここ -
組込系
家電製品や産業用機器などに埋め込まれるマイコン制御システム。IoTの発展により通信機能を含む多様なプログラムを持つようになり、ニーズは年々増加傾向にあります。製品搭載後の改修は難しく、安全性や障害に強い設計が必要です。開発言語はC言語、C++、Javaなど
-
汎用系
汎用機という大型コンピュータを利用したシステム(銀行、証券、保険等の金融系や政府機関向けの基幹システムなど)。大規模なシステムで膨大なデータを高速処理するために開発されることが多いです。システムに不具合が発生した場合には損害が大きくなりやすく、定期的な保守を必要とします。開発言語はCOBOL、PL/Iなど
ソフトウェア企業の分類
-
メーカー系
コンピュータメーカーやハードウェアメーカーの情報システム部門が独立した企業。使用する機器やツールが親会社の製品、サービスに特化する傾向があります。
-
ユーザー系
IT系以外の企業の情報システム部門が独立した企業。親会社の業務プロセスや知識に精通する必要があります。
-
独立系
親会社を持たない企業。特定の業界や業務、工程に強みを持つことで企業の特長が生まれます。
当社はここ
仕事の進め方(工程)
システム開発工程 | 当社はここが多い |
---|---|
要求分析・要件定義 | △ |
設計(基本設計・詳細設計) | ◯ |
開発(プログラミング・テスト) | ◎ |
構築 | △ |
保守 | △ |
- 要件定義
- 要件定義は、開発するシステムの方針を決めていく工程です。システムを円滑に導入するには、業務プロセスや環境を正確に理解しなければならないため、顧客の要望や抱えている問題を聞き出し、それらを解決するシステムの要件を明確にしていきます。顧客がIT知識を持ち合わせているとは限らないため、要望が漠然としていたり、問題の本質が分かりにくい場合もありますので、細かいヒアリングで意識合わせすることが重要になります。提案時にはリソース(人、モノ、金、時間)も鑑みて実現可能なシステムの開発範囲、期間、納期、費用などの内容を具体的に取り決めて要件定義書にまとめます。要件定義書の内容に齟齬があると、後の工程や運用に致命的なトラブルや損害を引き起こす可能性があるため、開発工程の中でも最も重要な工程です。主にITコンサルタント・プロジェクトマネージャー・システムエンジニアが担当します。業務プロセスやシステム全体を総合的に見渡す力、コミュニケーション能力が特に問われます。
- 設計
- 要件定義の内容を踏えて、どのようなシステムにするか具体的な実現方法を設計する工程です。設計は、大きく「基本設計」と「詳細設計」の2つに分けられます。 「基本設計」は、要件定義をもとにシステムの全体的な仕組みを設計し、各機能や画面、帳票などの仕様を決定します。「詳細設計」は、基本設計で決めた機能をどのような技術や仕組みで開発するかを設計します。プログラマーが作業するために必要な細かな設計を行います。また、顧客とシステムの完成イメージの認識合わせをしておくことが重要なので、打ち合せやレビューを繰り返したり、簡易的なシステムの試用版を作成したりして設計内容を詰めていきます。基本設計はプロジェクトマネージャーやシステムエンジニアが行うことが多く、詳細設計はシステムエンジニアやプログラマーが行うことが多いです。設計工程においても業務知識やコミュニケーション力が求められます。
- 開発
- 開発は、設計書や仕様書に基づいてシステムのプログラムや画面、帳票等を作成する工程です。システムを開発する中で作業量が多い工程です。プログラミングやコーディングとも呼ばれます。品質の高い開発を行うためには、担当する部分だけではなくシステム全体を理解・把握しておく必要があります。納品後の保守のことも考慮して理解しやすいプログラムにしておくと改修作業が効率的になります。不具合が出ないように素早く、丁寧に作り上げる力が求められます。主にプログラマーが担当します。
- テスト
- システムがきちんと設計通りの動作をするか確認するためのテストを行う工程です。テストが不十分だと予期せぬ障害や不具合などが後から発覚し、大きなトラブルや損害につながるケースもあるため、品質を検証するための重要な業務です。テストにもいろいろな種類があります。個別のプログラムが正しく動作するか検証する「単体テスト」、単体テストが終了したプログラムを組み合わせて機能が実現できるか検証する「結合テスト」、要件定義や設計書通りに実装されているか確認する「総合テスト」などがあります。総合テストでは、ストレステスト・性能テスト・回復テスト・操作テストといった多面的な角度からテストを行い、品質の最終確認を行います。それぞれのテストは事前に必要なテストケースを洗い出し(テスト設計とも言います)、結果はエビデンスとして記録を残していきます。主にプログラマーやテスターが担当します。
- 構築
- 構築は、実際にシステムを顧客が利用できる環境に仕上げていく工程です。サーバやネットワーク機器の設定、ソフトウェアのインストールやセットアップ、動作確認テストなどを行います。顧客先で直接作業したり、顧客の業務に影響することがあるため、構築手順書や動作確認手順書などのドキュメントを作成し、事前に手順書の内容を顧客とレビューします。問題がなければ日程の調整を行い、手順書の内容に従って作業を進めていきます。主にシステムエンジニアやプログラマーが担当します。万が一顧客先でトラブルがあった場合にも対応できるよう、柔軟で臨機応援な対応力が必要です。
- 保守
- 運用保守は、システムの運用開始後、システムが安定して稼働できるように定期的にメンナンスしたり、顧客の要望や環境の変化に応じてシステムの改修を行います。データ更新、アップデートファイルの適用、機器の維持管理、障害監視、問い合わせ対応、トラブル対応など、マニュアルに沿って行うことが多い業務ですが、予期しないトラブルもあるため柔軟で臨機応援な対応力が必要です。
職種
職種によってそれぞれ役割があります。
-
ITコンサルタント
顧客から経営や業務上の問題点をヒアリングし、その解決策を提案していきます。顧客が「何に困っているのか、何を求めているのか」情報を吸い上げるためのコミュニケーション能力、本質を見極めるための理解力・分析力、適切な提案を行うための豊富な経験や幅広い知識、提案内容を顧客に納得してもらえるプレゼンテーション能力が重要です。市場動向なども踏まえ、常に知識を最新に保つため情報収集や勉強を続けるモチベーションの高さも必要です。システム開発では主に要件定義を担当します。
-
プロジェクトマネージャー(PM)
顧客交渉や予算、人員調整や進捗などの管理を行い、プロジェクト全体の意思決定や提供するシステムの納期・品質・コストなどの全責任を担います。プロジェクトを成功に導くまで、目標達成に対する強い意志が重要です。時には問題を未然に防ぐために先読みしたリスク管理と状況判断を行い、問題が起きた時には速やかに対応し損害を最小限に抑えます。顧客との交渉力や問題解決能力、意見をまとめあげプロジェクトを引率するリーダーシップなど様々なスキルが求められます。責任が大きい分、目標達成時のやりがいを実感しやすい職種でもあります。
-
プロジェクトリーダー(PL)
納期までに要求通りのシステムを完成させるために、プロジェクト現場のリーダーとして、各メンバーへの作業指示や進捗管理などのマネジメント業務を行います。チームの作業を円滑にし、納期までに目標を達成する責任を担います。技術力を土台にした高いリーダーシップが必要で、現場の士気や雰囲気作りにも尽力します。顧客やプロジェクトメンバーとの連携や信頼関係が重要で、設計やプログラミングなど現場の幅広い知識に深い理解が必要なことから、システムエンジニアやプログラマーとしての経験を積んだ後に任されていきます。
-
システムエンジニア(SE)
主な担当工程は設計です。システムの全体像を把握し、不具合がないことはもちろん、完成後の運用や保守まで想定した設計技術が求められます。企業や案件によって異なりますが、設計の他に要件定義・プロジェクト管理・開発・テスト・構築まで業務が多岐に渡る場合もあります。プログラムに関する知識が必要となるため、プログラマーとしての経験を積んだ後にシステムエンジニアとして活躍するケースが多い傾向にあります。顧客とプログラマーの間に立ち、円滑に意思疎通を行えるコミュニケーション能力も必要です。案件の規模によってプロジェクトリーダーを兼任したり、小さいプロジェクトの場合は一人で全て行うこともあります。
-
テスター
必要なテストケースを緻密に洗い出し、システムの不具合を漏れなく、事前に発見することでシステムの品質を向上させる役割を担います。システム全体を理解しているとテスト精度が高まるため、テストを行う際にはシステムからの目線、プログラムからの目線、顧客からの目線など多角的な視野が必要です。システムの品質保証に直結する作業であるため、作業の慎重さと正確さが求められます。細かい作業を地道にコツコツとこなせる高い集中力とそれを維持できる根気強さが必要です。
適性
向いている | 向いていない |
---|---|
コミュニケーション能力が高い | すぐに諦める人 |
論理的思考力、問題解決能力が高い | 大雑把な人 |
向上心・好奇心を持って自発的に取り組める | ルーチンワークが苦手 |
システム開発の仕事は、チームプレイが基本なので、チームメンバーと円滑な意思疎通や連携が行えるコミュニケーション能力が求められます。また、顧客の要望に耳を傾け、ニーズを的確に汲み取ったり、実現が難しそうな時は可能な方法を提案して納得してもらえるように交渉するコミュニケーション能力も必要です。コミュニケーション不足により認識が異なるまま開発を進めると大きな損失につながることがあります。
顧客が抱える問題は、ほとんどが簡単に解決できない問題なので、どのような手順で解決していくか論理的な問題解決能力が求めれらます。設計や開発を行う際にも「なぜそのような設計なのか」など根拠が常に問われるため、論理的に物事を考える力が必要です。不具合が発生した時も手当たり次第原因を探ると無駄に時間を浪費することになるため、筋道を立てて検証することが求められます。
IT業界は変化のスピードが速く常に成長を続けている業界です。技術や知識は日々進化しているので定期的に新しいものにアップデートしなければなりません。そのため、成長意欲があり、新しいことを学び続ける向上心がある人が向いています。特定の手法や技術に固執せず、好奇心を持って常に変化を受け入れる柔軟な姿勢も必要です。
開発は思い通りに進みません。立ちはだかる壁に粘り強く立ち向かう姿勢が大切です。困難なことがあるとすぐに諦める人や、考えることを止めてしまう人は続かないかもしれません。
コンピュータはプログラムに書いた通りにしか動きませんので、設計やプログラミングには正確さが求められます。もし設計書やプログラムが大雑把なら後々重大な欠陥が発覚する可能性が高くなり、たったひとつのミスでも顧客に多大な迷惑がかかってしまうことがあります。「動けばいい」というような慎重さに欠ける人には向いていないかもしれません。
仕事をしていく上で、同じようなことを何回も繰り返したり、似たようなテスト項目を延々と評価していくことがあります。細かい作業をコツコツと地道に行うことが苦手な人にはつらいかもしれません。このような作業をいかに効率化することを考えることもIT技術者としては大事なことです。