支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

アイキャッチ

システム開発における区分として、Web系、業務系、組み込み系があります。今回はそのうち、企業の業務に関与する業務系のシステム開発について、仕事内容や主な使用言語、必要なスキルなどを紹介していきます。

業務系システムとは?

一般的に業務系システムとは、生産管理、販売管理、在庫管理、給与システムや勤怠管理システムといった企業内業務を効率化・自動化するシステムを指します。「基幹系システム」「基幹業務システム」のように呼ばれることもあり、金融業界では「勘定系システム」とも呼ばれています。

業務の根本的な部分に関わるため、業務系システムが停止や誤作動を起こしてしまうと企業の業務が回らなくなり、多大な損害につながる恐れがあります。そのため、細心の注意を払い運用しなくてはなりません。

業務系システムを開発する場合、大規模な開発となることもあるため、要件定義や基本設計などの上流工程をSEが担当する、詳細設計から開発などの下流工程をプログラマーが担当するというように担当する工程が分かれていたり、外部に一部委託したりする場合もあります。

仕事内容

要件定義

システムの開発にあたり、まずはクライアントの課題や要望をヒアリングすることから始まります。クライアントの要望や課題に応えるためにどんなシステムにしたら良いか、必要な機能は何かを取り決め要件定義書を作成します。クライアントの同意を得たら設計の工程に移ります。

設計

要件定義書に基づきシステムの構成や実装する機能、処理方法を検討し計画していきます。画面や機能、データに関する基本的な設計からUIやセキュリティまで詳細に設計し、クライアントの要望や課題解決の手法を設計書や仕様書に落とし込みます。

開発・テスト

要件定義書、設計書に基づいて実際にコーディングし必要な機能を実装していきます。一通り完成した後には意図した通りに動作するかどうかのテストを行い、不具合があった場合は再度開発の工程に戻ります。

運用・保守

業務系システムに限ったことではないですが、一度作ったら終わり、というものではありません。クライアントからの問い合わせやトラブルに対応したり、必要に応じシステムに改良を加えていく必要があります。

使用される主な言語

Java

CやC++のような他言語の良い点を受け継ぎ、誕生から20年以上経った今でも高い人気を誇るオブジェクト指向言語です。大規模開発にも向いていて、プラットフォームを問わず使用できるので汎用性が高く、扱いやすいことで知られています。

Javaで開発された代表的なアプリとして、SNSの中でも特に有名な「Twitter」や優れた業務効率化ツールである「Evernote」があります。業務系やWeb系だけでなく組み込み系でもよく使用される言語です。

C言語

現在主流のオブジェクト指向の概念が登場する以前から使用されている手続き型(注)の言語で、仕様は単純ですが難解です。ハードウェアの制御知識が要求される部分もあり、習得しにくいと言われています。

汎用性は非常に高く WEBアプリやスマホアプリ、組み込みアプリなど大抵のアプリ開発ができますが、実際に採用されているのは応答速度が求められる基幹システムや、機械の制御を司る部分、WEBアプリの一部です。

(注)手続き型:一連の計算処理をひとまとめにしていくプログラミング

C++

C言語を改良しオブジェクト指向を追加したもので、開発効率を上げるため様々な拡張機能も追加されています。C言語と互換性があり混在させることができるので、よく同時に使い開発されています。

Googleの「Chrome」やゲーム開発に使用される「Unreal-Engine」が開発されたことでも知られています。

C#

JavaとC++をもとに作られたプログラミング言語で、両者の分かり易い部分と利便性の高い部分を取り入れ改良が加えられたものです。

Windows向けのアプリから業務システム開発など活躍の場の多い言語です。ゲーム開発エンジン「Unity」を使用してのゲーム開発にも使われています。

C#で作られたものとして、「Microsoft公式サイト」「Skype公式サイト」検索エンジン「Bing」が有名です。

COBOL

1959年に事務処理用に開発されたプログラミング言語で、人間の文法に近く理解しやすいこと、データを10進数で表現でき金額やデータの確認が容易であるなどの特徴があります。

堅牢性に優れており、銀行や証券会社、政府機関の基幹情報システムで採用されているメインフレームの多くはCOBOLで開発され、今も現役で稼働しています。

Python

Java以前より開発者に使われているスクリプト言語で、近頃AIや機械学習で広く注目を集めている言語です。

シンプルで読み易い構文、記述性が高く短いコードで複数の処理を記述可能、標準ライブラリや外部ライブラリが豊富で様々な用途に使えるといった特徴があります。

Pythonで開発されたものとして、「Youtube」「Instagram」が有名です。

アイキャッチ

必要となるスキルや知識

総合的なプログラミングスキル

プログラミング言語に精通していること、併せて業務系システムではデータベース操作が発生することが多いので、SQLを理解し使いこなせることも重要です。

新規での開発だけでなく、バージョンアップに伴う既存システムの改良を行うこともあります。その場合、「システムを俯瞰的に見る力」「既存コードや環境のどこが使え、どこが使えないのか、またはどこを修正したら流用できるかを見定める力」も必要となります。

また、運用開始後の更新や改良が余程のことがないと行われない、という場合もあるようです。そのため、最初に開発するプログラムの出来が肝心だといえるでしょう。業務系システムに携わる場合には、プログラミング言語に精通しているだけでなく可用性、安定性の高いシステムを作るスキルも重要です。

幅広い業界知識

業務システムの開発において、クライアントの業界や業務内容について深く理解している必要があります。そうでなくては、クライアントの課題を見つけ出し、それを開発するシステムを考案することは難しいでしょう。併せて業務システムについての情報収集も行っておくと、より最適な提案ができます。

折衝力

クライアントの要望や課題をヒアリングし、細かい調整を行うために重要なスキルです。システム開発においてクライアントとの緊密な連携は不可欠です。

コミュニケーション能力

クライアント側の担当者が必ずしもIT知識があるとは限りません。そういった相手に難しい専門用語を使わずに分かりやすく説明するコミュニケーション能力が求められます。

まとめ

以上、業務系システム開発職について紹介してきました。 自分が作ったシステムが企業で日常的に使われ、業務の効率化・自動化に貢献することは大きなやりがいです。 プログラミングスキルだけでなく、幅広い業界知識や業務システムの情報やコミュニケシーション能力も必要となり、ややハードルの高い印象はありますが、おすすめの職業であるのは間違いありません。興味のある方はぜひチャレンジしてみてください!