システム開発とは業務改善における主な目的5選|求められるスキルとは?

そもそもシステム開発とは

「システム開発」という言葉を耳にすることは多いものの、どのようなことが行われているのか、どのような人が携わっているのかについてはよくわからないという方も多いでしょう。

世の中の仕組みのことをシステムと呼ぶこともありますが、一般的に「システム開発」といったときは、コンピュータシステムを開発することを指します。システム開発には複数の工程があり、それぞれ関わる人に必要な知識やスキルが異なります。

システム開発を担う職種3つ

システム開発には少なくとも顧客側のチームとITベンダー側のチームが関わることになります。

開発を請け負うITベンダーとしては、システム開発プロジェクトをまとめるプロジェクトマネージャーと、設計・構築に関わるシステムエンジニア、プログラミングを行うプログラマーでチームを作ります。

ここでは、システム開発のメイン業務を担う3つの職種の業務内容を紹介します。

システム開発を担う職種1:システムエンジニア

システムエンジニアとはSEとも呼ばれ、顧客の業務内容をヒアリングし、システム化すべき点を判断したり、システム化部分の設計を行ったりする職種です。

システム化に向けてのシステムの知識だけでなく、顧客からシステム化要件を聞き出すヒアリング能力や、プログラマーに設計書を通してシステム化の方向性や指針などを伝える能力も必要になります。システム開発を行う上で、スケジュール管理や品質管理など管理能力も必要です。

システム開発を担う職種2:プロジェクトマネージャー

プロジェクトマネージャーとは、プロジェクトを成功に導くために必要とされる、費用や納期、品質などのプロジェクト管理を行う立場の人を指します。

会社の中での役職ではなく、プロジェクトの中での役職と考えることもでき、プロジェクトの統括者と理解しておけばよいでしょう。プロジェクトマネージャーは、小さなプロジェクトではシステムエンジニアが兼務することもあります。

システム開発を担う職種3:プログラマー

プログラマーとは、実際にプログラミングをしてシステムが動作するプログラムを作る職種です。

企業の業務システムでは、プログラマーは設計を行わず、システムエンジニアの設計に基づいてプログラミングします。小規模なシステム開発では、プログラマーが設計を兼務したり、システムエンジニアがプログラミングまで行ったりすることもあります。

システム開発の業務改善における主な目的5選

新たなシステム開発では、現行業務を改善することを目的としていることも多く、どのようなシステムにすれば業務改善につながるかを設計に活かす必要があります。

ここでは、多くの企業がシステム開発により業務改善を図りたいと考えているポイントを5つ紹介します。業務改善を図りたいポイントごとに、システム開発で対応すべき部分を考えてみましょう。

システム開発の主な目的1:業務構造の見える化

企業内の業務は、必ずしもマニュアル化されているものではなく、担当者しか詳細を知らないという業務も存在します。業務フローや詳細なマニュアルを作りたいという気持ちがあっても、日々の業務に追われて実現できていない企業が大半です。

業務をシステム化するにあたって、担当者をヒアリングして業務内容を洗い出し、作業の順序や依存関係をフロー図として明確にしていくことで、業務構造自体が見える化されていきます。

システム開発の主な目的2:改善業務の課題や問題点分析

業務構造の見える化を行えたら、業務の中の課題を洗い出し、改善方法について検討します。業務の改善ポイントは、見える化された業務の分析と業務担当者のヒアリング結果から洗い出します。

洗い出した問題点を分析し、システム化により解消する部分と、人間が行う作業を見直すことで改善する部分に分けて検討します。

システム開発の主な目的3:改善プロセスの明確化

業務改善すべきポイントを分析できたら、業務改善案に応じて、実行のプロセスや時期を検討していくことになります。

業務改善は、システム化により実現する部分と、従来のやり方を変えることで実現する部分に分けて考えますが、双方の影響や関連性を考慮して、改善プロセスを考えなければなりません。

改善プロセスを明確にする際は、業務改善の初期は不慣れにより業務量が逆に増える可能性も考慮する必要があります。

システム開発の主な目的4:業務改善計画の仕組みを検討

業務改善を目的としたシステム化では、システムに不具合があったり検討不足な部分があったりすると、システム切り替えとともに業務がストップしてしまうリスクを含んでいます。

業務改善を見込んだシステム開発の場合は、現行のシステムと並行運用する期間を設けたり、システム切り替え前に予備的な運用期間を設けたりする移行計画を綿密に練る必要があります。

システム開発の主な目的5:業務改善計画の評価

システム開発が完了し運用が軌道に乗ってきたら、システム化によって業務改善の目標が達成できたのかを評価します。業務改善の達成目標は、あらかじめ数値評価できる目標として設定しておき、システム導入後の業務が平常化した時期に目標ごとに評価します。

評価結果が良くなかった目標に関しては、システムに起因する問題か運用や人間の作業に起因する問題化を切り分け、再度問題を分析します。

システム開発の業務内容11選

システム開発には、プロジェクトマネージャー、システムエンジニア、プログラマーが携わりますが、全職種がすべての工程に関わるわけではありません。

プロジェクトマネージャーは、システム開発の全工程の管理面に特化して携わります。システム開発の実作業は、システムエンジニアとプログラマーが分担して行うことになります。ここでは、システム開発で実施される工程について紹介します。

システム開発の内容1:要件分析・要件定義

要件分析・要件定義とは、クライアントの業務内容や現行の問題点をヒアリングし、システム化すべき業務やシステム化の内容を検討する工程です。

要求分析ともいわれ、クライアントのニーズを適切に分析することが重要です。クライアントのシステム担当者だけでなく、現場の担当者からもヒアリングする必要があります。

ソフトウェア面だけでなく、ハードウェア面も検討しておく必要があり、システムエンジニアが担当します。

システム開発の内容2:外部設計(基本設計)

要件定義が確定したら、次の工程は外部設計になります。外部設計とは、基本設計や概要設計とも呼ばれ、システムのユーザーから見える部分の設計になります。

ユーザーが使う画面のデザインや動作、帳票のレイアウト、データベースに溜め込むデータの項目(データ内容)やデータ量を決めます。設計としてはユーザーに理解しやすい部分なので、クライアントのシステム担当者とシステムエンジニアで検討します。

システム開発の内容3:内部設計(詳細設計)

内部設計とは詳細設計とも呼ばれ、外部設計をプログラミングに向けてブレークダウンする工程になります。外部設計の段階では、ユーザーに見える部分は決まっているものの、プログラムとしての処理順序や、想定外のデータが入ってきたときの処理などが考慮されていません。

内部設計では、プログラマーがプグラミング言語を使って書き写せばプログラムになるレベルの設計を行います。内部設計はシステムエンジニアが行います。

システム開発の内容4:プログラミング

プログラミングとはプログラムコーディングのことで、プログラム言語を使ってプログラムを書いていく作業です。

内部設計のレベルが細かければ、日本語の文章で書かれている設計書を、プログラミング言語を使って書き写せば大まかなプログラムができあがります。

1つのプログラム言語でも、同じ動作を実現するために使えるコマンドが複数あることも多く、どのようにコーディングするかはプログラマーの手腕が問われます。

システム開発の内容5:単体テスト

単体テストとは、機能個別のテストを行う場合と、画面動作や帳票動作などユーザーが利用する単位ごとのテストを行う場合があります。

単体テストとは、内部設計書単位に行われることが多く、内部設計書に記載されている処理順序や処理内容をすべて実現できているかを確認するテストです。

単体テストはプログラミング担当者が実施しますが、内部設計書を記述したシステムエンジニアが実施することもあります。

システム開発の内容6:結合テスト

結合テストでは、機能間のテストを行います。関数のような細かな機能間の確認を行う場合と、画面遷移とデータの整合性、帳票出力などユーザー業務の単位で確認する場合があります。

結合テストとは、外部設計書をもとに行われ、外部設計書に記載されている内容を実現できていることを確認します。結合テストは、外部設計を担当したシステムエンジニアがテスト仕様書を作成します。

システム開発の内容7:システムテスト

システムテストとは、開発担当者がシステムの動作確認をする最後のテストであり、総合テストとも呼ばれます。システムテストでは、機能間の結合だけでなく、年次処理や月次処理も組み込み、クライアントの業務をすべて流してテストします。

システムテストとは、要件定義の内容が実現できていることを確認するテストなので、要件定義書や基本設計書をもとにテスト項目を作成します。

システム開発の内容8:運用テスト

運用テストとは、システム納品前の最終テストとして位置づけられており、受入テストとも呼ばれます。システムの動作確認をする最後のテストであり、受け入れテストともユーザーテストとも呼ばれます。

運用テストでは、クライアントが業務で使っているデータを使い、実業務通りにシステムを使います。運用テストは、クライアントが実施し、システムエンジニアが支援するのが一般的です。

システム開発の内容9:システム移行

システム開発では、運用開始前に移行作業が必要になります。新規開発の場合は、現行業務の情報をシステム用にデータ化してシステムに投入します。既存システムがある場合は、既存システムのデータを新システムの形式に変換します。

移行作業では、移行のためだけに必要なプログラムを作成して、データ変換や新システムへのデータ登録を行うこともあります。移行作業はおもにシステムエンジニアが担当します。

システム開発の内容10:運用

システムの移行と納品が完了すれば、クライアントによる本格運用の段階に入ります。運用とは、システムが安定して機能するようにソフトウェアやハードウェアの利用状況や性能を監視していく作業になります。

運用は、クライアントのシステム部門や保守担当のシステムエンジニアなどが担当し、ソフトウェアに問題がみつかったときは開発担当のシステムエンジニアが担当するという業務分担が多く見られます。

システム開発の内容11:サポート

システム開発を完了して納品した後は、不具合対応以外はクライアントが対応することになります。クライアントのシステム部門にシステム運用のスキルがない場合は、運用を委託したり、サポート契約したりすることになります。

多くの企業では、システム稼働後の一定期間はサポート契約を結び、トラブルが発生時の問題の切り分けや対応について支援を受けます。不具合以外の問題対応や機能追加などはサポート費用内で処理します。

システム開発に求められるスキル6選

システム開発に携わるためには、プロジェクトマネージャーやシステムエンジニア、プログラマーといういずれかの職種であることが必要ですが、どの職種でも身につけているスキルによって携われるシステム開発の工程が異なります。

ここでは、システム開発で求められているスキルを紹介するので、どの職種を目指す場合でも意識しておきましょう。

システム開発に求められるスキル1:プログラミング言語知識

プログラマーにとってプログラミング言語の知識が必要なのは当然のことですが、システムエンジニアやプロジェクトマネージャーにとってもプログラミング言語の知識は重要なスキルとなります。

プログラマーほど広く深い知識でなくても、プログラミング言語の知識があれば、システム開発時のレビューやテスト、移行計画などにおおいに役立ちます。

システム開発に求められるスキル2:マネジメント能力

マネジメント能力はプロジェクトマネージャーには当然必要なスキルですが、システムエンジニアやプログラマーにとっても必要なスキルです。

マネジメント能力を身につけることで、費用や納期、品質を意識して作業を進めることができるので、システム開発を成功に導く力となります。

小さなプロジェクトでは、専任のプロジェクトマネージャーではなく、システムエンジニアが管理を行うことも多いので必須のスキルといえます。

システム開発に求められるスキル3:コミュニケーション能力

システム開発には多くの人が携わります。プロジェクトメンバ間のコミュニケーションに気を配るのは、プロジェクトマネージャーの役割ですが、システムエンジニアやプログラマーのコミュニケーションスキルが高ければ、プロジェクト内のコミュニケーションが円滑になります。

システムエンジニアはクライアントと仕様検討をしたり連絡をとったりすることが多いので、特に対外的なコミュニケーション能力を求められます。

システム開発に求められるスキル4:ITスキル

システム開発とは、業務のIT化を行うことであり、開発に携わる以上ITスキルは必須といえます。管理者であるプロジェクトマネージャーは、ITスキルがなくても管理能力さえあれば務まるのではないかと考える方もいるでしょう。

プログラミングスキルやデータベース知識など深い知識はなくても務まる職種もありますが、システム開発全体を把握するのに必要なITスキルは全職種で必要になります。

システム開発に求められるスキル5:論理的思考能力

プログラミングは論理的思考能力が必要だとされています。そのため、プログラマーには論理的思考能力が必要だということになります。

システムエンジニアは、基本的にプログラミングをしませんが、設計書を書くということは、プログラムで実現する内容を書くことなので、プログラミングができるだけの論理的思考能力を必要とします。

システム開発に求められるスキル6:プロジェクト管理能力

プロジェクト管理は通常プロジェクトマネージャーの職務ですが、小規模プロジェクトではシステムエンジニアが担当することもあります。プロジェクト管理に必要な知識は、システムエンジニアには必要な知識といえます。

プログラマーがプロジェクト管理を行うことはありませんが、システムエンジニアやプロジェクトマネージャーへのキャリアアップを目指す場合は、早めに身につけておいて損のない能力です。

システム開発とはなにかを理解しよう

これからIT業界を目指そうという方や、一般企業で自社システムの開発に携わりたいと考えている方にとっては、「システム開発」という言葉の示す業務内容はイメージしにくいものではないでしょうか。

システム開発に携わる人の職種や役割、システム開発が進められている工程を理解し、システム開発への携わり方を考えてみましょう。内容が理解できれば、取り組むべきことも把握しやすくなります。