システム開発とは?企画から開発までの基本的な流れをわかりやすく解説 ~開発/検証/ステージング/プロダクション環境構築
この記事はこんな人向け
- システム開発とは何かを簡単に知りたい
- システム開発のはじめ方について知りたい
- システム開発の流れを知りたい
- システム開発に必要な事を知りたい
- システム開発についての注意点について知りたい
システム開発とは?企画から開発までの基本的な流れをわかりやすく解説、第4回目はシステム開発プロジェクトにおける「(システム)環境」です。
プロジェクトの工程にあわせてシステムの環境を用意した上で作業を進めていくことはシステム開発プロジェクトを進めていく上で必要不可欠になります。システム開発プロジェクトでは、第1回目の「システム開発とは?企画から開発までの基本的な流れをわかりやすく解説」からご紹介している通り、様々な工程を経た後にシステムが完成します。その工程で計画されている作業を進める為に、その工程の目的に合わせた”システムの環境”を用意していきます。
基本となる4つの「(システム)環境」
システム開発のプロジェクト規模や開発チームやエンドユーザーの方針や予算などによって多少異なることはあるのですが、システム開発プロジェクトで必要とされる「(システム)環境」はおおむね以下の4つです。
- 開発環境(デベロップメント環境)
- テスト環境(検証環境)
- ステージング環境
- 本番環境(実稼働環境/プロダクション環境)
これら4つの環境は総称して「展開環境」と呼ばれ、開発環境と本番環境の分離によるリスクヘッジから始まり、リリース管理・進捗管理をベースとしたプロセス化、開発からテスト、ロールバックなどの段階的な作業と実施環境の明確化などを目的として、4つの環境を基本としてシステム開発プロジェクトが進められるようにになりました。
それではさっそく4つの環境についての目的について解説していきます。
開発環境(デベロップメント環境)
開発環境(デベロップメント環境)は、その名の通り、開発者(デベロッパー)がソフトウエアの開発を行う環境のことで、もっとも一般的なのが開発者のワークステーションです。十数年前まではWindowsOS上で開発するDev(開発者)が大半を占めていましたが、近年ではMacOS上で開発するDev(開発者)が増えています。
Dev(開発者)はそれぞれ好みによって開発用のIDE(Integrated Development Environment/総合開発環境)やエディタをセットアップし、開発を行います。IDE/エディタの代表的なものはVisual Studio Code、Vim、Emaxとなります。システム開発の規模などによってその構成も多少変わることがあり、同ワークステーション内にDevが単体テストを実行するためのサンドボックスを構築する場合もあります。
システム開発プロジェクトや作業工程の応じて、開発者のワークステーション内(ローカル環境)に開発する為につくる環境が「開発環境」になります。
サンドボックスとは
サンドボックス(Sandbox)とは、ソフトウエア開発やバージョンアップ(バージョン管理)作業で使用される本番環境とは完全に切り離されたテスト用の環境のこと。
テスト環境/検証環境
テスト環境(検証環境)は、DEV(開発者)またはテストエンジニアが手動または自動化された手段を用いて、開発されたソースコードを実行しテストを行うことを目的に構築される環境のことで、開発環境でDEV(開発者)が行う単体テストの範囲を超えて、テストが実施される。テストが失敗した場合には、失敗したソースコードがDEV(開発者)に報告される。
テスト環境(検証環境)では、パフォーマンステストもここで実施されます。設計の際に対象デバイスとされたデバイスを用意し、「適切に表示がされているか」「ロード時間を測定し遅延が発生していないか」「UIデザインの元に制作された画面のアクセスビリティが正常に動作しているか」「操作性が損なわれていないか」などについてのテストも行われます。
ステージング環境
ステージング環境は、別名「実稼働前環境」と呼ばれ、テスト用に構築された本番環境と同じ構成・内容の環境のことです。可能な限り、本番環境と同じ構成にすることで、本番サービスで起こりうる可能性がある問題を炙り出すことを目的としています。
ステージング環境では、本番環境と同じインスタンス、OS、バージョン、デプロイ手順、その他移行用のスクリプトやツールなどのテスト、外部サービスとの連携部分のテストなど実行し、すべての工程においてエラーがない状況まで進めることを目的としています。
また、発注者であるエンドユーザーにステージング環境を利用して、受け入れテストを実施してもらったり、内部のテスターに操作してもらい、社内レビューを行うなどにも使用されることもあります。
本番環境(プロダクション環境)
本番環境は、「プロダクション環境」や「本番系」「商用環境」などと呼ばれるサービス(システム)のユーザー(サービスの利用者)に向けた環境です。
過去に本番環境でテストを行っているベンダーがいて、ソースコードの改修を行う度に別の不具合が発生し、ソースコードがスパゲッティコードになって管理ができなくなってしまったと相談を受けたことがありましたが、本番環境に開発したソースコードを直接デプロイし、テストを行うことは絶対にあってはならないことです。
少し長くなりますが、本番環境では、「事前に計画し、テストが実施され、ソースコードや手順に問題がなく、レビューと承認が完了した」内容を移行・メンテナンス計画に基づいて実行されることが大前提となります。
「事前の準備とテストなく本番環境を操作してはならないが原則」なのが、本番環境となります。
この記事を書いた人
株式会社APPSWINGBY マーケティング
APPSWINGBY(アップスイングバイ)は、アプリケーション開発事業を通して、お客様のビジネスの加速に貢献することを目指すITソリューションを提供する会社です。
ご支援業種
情報・通信、医療、製造、金融(銀行・証券・保険・決済)、メディア、流通・EC・運輸 など多数
監修
株式会社APPSWINGBY
CTO 川嶋秀一
動画系スタートアップ、東証プライム R&D部門を経験した後に2019年5月に株式会社APPSWINGBY 取締役兼CTOに就任。
Webシステム開発からアプリ開発、AI、リアーキテクチャ、リファクタリングプロジェクトを担当。C,C++,C#,JavaScript,TypeScript,Go,Python,PHP,Vue.js,React,Angular,Flutter,Ember,Backboneを中心に開発。お気に入りはGo。