VNEXTの会社紹介資料
2021/01/18
初めてシステム開発に携わることになったとき、「システム開発」って何?どのように進めていくの?と焦ってしまう人は少なくありません。ひとくちにシステム開発といっても、どのような分野なのか、どのような製品なのかなど、実に幅広いからです。
とはいえ、開発の進め方自体は、ターゲットがどの分野であってもどの製品であっても、大きく違うことはありません。議論されるとすれば「ウォーターフォール型」で進めるのか、「アジャイル型」で造り上げるのか。あるいは、簡単に「パッケージ開発」で対応するのか、それとも「スクラッチ開発」で一から始めないといけないのかといったことです。
そこで、システム開発初心者が押さえておくべき、このようなシステム開発の基礎中の基礎を伝授します。
システムとは
システム開発とは一般的にはIT技術を活用して業務の効率化を図る仕組みの構築を指します。
例えば、大手企業では財務会計、販売管理、在庫管理などの業務を一括管理するために、ツールを作成するのはシステム開発の例に当たります。
システムを開発する時、プロジェクト責任者をはじめに、システムエンジニア(SE)、プログラマー(ソースコードを書く人)、テスターやデザイナーなどの存在が欠かせません。お客様の要求に応じて、開発チーム体制・進め方も異なります。
システム開発の進め方
・システム開発の進め方は「ウォーターフォール型」と「アジャイル型」に分かれる
システム開発をどのように進めていくかは、そのシステムの規模や納期、用意できる人員などによって総合的に判断します。進め方には大きく分けて「ウォーターフォール型」と「アジャイル型」の2つがあります。
順番に工程を進めていく「ウォーターフォール型」
ウォーターフォール型は「順次型」とも呼ばれ、滝が流れるように、各工程を順番に実施していく開発手法です。
システム開発は基本的に次の6工程に分けられます。ウォーターフォール型の開発では、ひとつの工程が完了してから次の工程に進みます。
1.基本計画
要求仕様を確認し、明確に定義する
成果物:要求仕様書
2.外部設計
要求仕様書にもとづき、ユーザインタフェース部分(ユーザから見える部分)を中心に概要を設計する
成果物:外部設計書(外部仕様書)
3.内部設計
外部設計書にもとづき、システムを構築する上で必要となる機能や動きを実現するプログラムを設計する
一般的には、タスクごとにプログラムを作成していくため、タスク間でのデータのやり取りや処理の流れについても詳細に設計する
成果物:内部設計書(内部仕様書)
4.プログラム設計
内部設計書にもとづき、各タスクを最小のモジュール単位に分割し、モジュール間のインタフェースを決定する
成果物:プログラム設計書(プログラム仕様書)
5.プログラミング
プログラム設計書にもとづいてコーディングを行い、タスク単位でのテストを実施する
6.テスト
複数のタスクを組み合わせてテストを行う
その後、システム全体のテストを行う
・・・ウォーターフォール型の開発におけるメリットとデメリットは次のとおりです。
↑メリット
各工程に必要なリソースの見積りがしやすいため、スケジュールが立てやすい
「今どの工程まで進んでいるか」が明確になるため、全体の進捗が把握しやすい
↓デメリット
全体のシステム設計をしっかりと行ってから次の工程に進むため、納期までの時間が長い
工程ごとに担当者が異なる場合が多く、手戻りが発生した場合に時間調整が必要になるなど、時間的ロスが大きい
徐々に仕上げていく「アジャイル型」
アジャイルとは「俊敏な」という意味です。アジャイル型開発は、ウォーターフォール型開発のように最初からきっちりと仕様を決めて進めることはしません。「開発には仕様の変更がつきものである」という前提に立ち、おおまかな仕様にもとづいて開発を始めます。小さな単位で「設計→実装→テスト」を繰り返し、徐々に完成形に近づけていくのがアジャイル型開発です。そのため、「反復型」や「プロトタイプ型」とも呼ばれます。
途中で仕様変更が発生した場合でもすぐに対応できるうえ、不具合が発生した際もその都度立ち戻って回収することができます。また、開発を進めていくうちに実装が不要だと思われる機能が見つかれば、無駄な開発を省くことも可能です。
・・・アジャイル型の開発におけるメリットとデメリットは次のとおりです。
↑メリット
仕様変更に柔軟に対応できる
動作を早い時期に確認できる
↓デメリット
開発に必要な時間やリソースの見積りが難しい
スケジュール管理や担当の割り振りなどがしづらい
システムの構築方法
・システムの構築方法は「パッケージ開発」と「スクラッチ開発」に分かれる
「パッケージ開発」と「スクラッチ開発」の2つの言葉も、システム開発に着手する際によく聞かれます。
既存のシステムを流用できる場合は「パッケージ開発」
パッケージ開発とは、既存のシステム(パッケージソフト)を導入する開発手法です。標準的な処理を組み込む場合や、システム全体を標準化したい場合などに取り入れられます。既存パッケージのパラメータを一部変更すれば組み込めるものも多いため、手間をかけずに開発することができます。
・・・パッケージ開発におけるメリットとデメリットは次のとおりです。
↑メリット
開発期間とコストを削減できる
プログラミングにそれほどくわしくない人でも対応できる
↓デメリット
柔軟な仕様変更に対応できない
パッケージソフトメーカーのサポートが終了するとシステムを作り直す手間が生じる
独自システムを作りたい場合は「スクラッチ開発」
スクラッチ開発とは、既存のパッケージソフトを使わず、すべて一からシステムを開発することをいいます。既存のパッケージソフトにはない処理が必要な場合や、他社との差別化を図りたい場合などは、スクラッチ開発をすることになります。
・・・スクラッチ開発におけるメリットとデメリットは次のとおりです。
↑メリット
自社のニーズにマッチしたシステム構築が可能
他社との差別化が図れる
ノウハウも権利も自社にあるため、長く使い続けられる
↓デメリット
開発期間とコストが嵩む
【まとめ】開発手法をきちんと理解して適切に用いること
最初はなかなかピンとこないかもしれませんが、自分が用いている開発手法のメリットとデメリットを意識しながら開発を進めていけば、それぞれの開発手法についての理解が深まっていくでしょう。自ら判断して適切な開発手法を取り入れることができれば、立派なシステムエンジニアです。