オフショア開発ガイド » オフショア開発でよく使う用語集

オフショア開発でよく使う用語集

オフショア開発を成功させるには、システム開発やIT分野の専門用語や関連用語について把握しておくことが必要です。ここでは、オフショア開発でよく使われる用語の意味を、五十音順にまとめて解説しています。

用語解説

API

APIは「アプリケーション・プログラミング・インターフェース:Application Programming Interface」の略称であり、あるプログラムの機能や管理データを、他のプログラムと連携させて利用するための手順やデータ形式を定めたインターフェースの総称です。例えば、様々なOSでソフトを使用するための手続きを定めたものがAPIです。APIを利用することで互換性のあるソフトウェアやシステムを開発できます。

アジャイル開発

システム開発のスタイルの1つです。最初に明確な仕様を決定して開発を進めるウォーターフォール型の開発でなく、最初の時点ではプロジェクトの方向性のみを定めた上で、システムの設計・開発・実装・点検を短期的なサイクルで繰り返しながら開発を進めていくスタイルです。オフショア開発ではラボ型開発との相性が良く、ユーザーからのフィードバックに合わせて機能変更や追加が必要になるアプリ開発などに適しています。

ウォーターフォール開発

システム開発のスタイルであり、最初に仕様やスケジュールをしっかりと定めた上で、1工程ずつ段階的に製品の完成を目指す方法です。ウォーターフォール開発は、比較的長い期間でシステム開発を行いたい大規模プロジェクトや、実装後にエラーが発生するリスクを最小限に修めたいシステム開発などに適しています。オフショア開発では受託型開発との相性が良く、後戻りが難しいため最初に仕様や設計を詳細に構築することが重要です。

受け入れテスト

開発チームから納品された成果物(システム、ソフトウェア)に対して、それを受け入れるかどうかクライアントが判定するためのテストです。機能や性能といったものが仕様書通りに構築されているか、実際に業務システムとして稼働する上で問題がないかどうか、トータルチェックを行い、問題がなければ納品完了となります。もしも受け入れテストで問題が発覚した場合、修正作業を行うかなどの再検討が必要になります。

運用テスト

運用テストは別名「導入テスト」とも呼ばれ、システム開発の最終段階で行われるテストの1つです。開発者による開発作業が完了したシステムやソフトウェアについて、改めてシステム運用者(エンドユーザー)が、実際の業務や本稼働を想定して、成果物が目的通りに正しく稼働するか確かめるために行われます。企業やプロジェクトの内容・規模によっては、「受け入れテスト」を兼ねる目的で行われる場合もあります。

オープン系

オープン系とはシステムの分類法の1つであり、技術的仕様が公開済みのOSやサーバー、ソフトウェアなどと組み合わせて構築されるシステムです。UNIXやWINDOWSといったベースで構築されている開発環境において、多種多様なメーカーの製品(ハードウェア、ソフトウェア)を活用して業務を行うシステムやアプリケーションの開発を行います。対して、独自仕様の製品を対象にしたシステムは「汎用系」と呼ばれています。

オフショア開発

オフショア開発とは、日本国内(ニアショア)でなく、日本よりも人件費が安かったり開発環境が整っていたりする外国(オフショア)で、様々なシステム開発や製品開発を行うビジネススタイルです。オフショア開発で得られる最大の利点の1つが、人件費の安さによるコストメリットですが、実際のプロジェクトでは国ごとの特性やリスクをきちんと把握しておかなければ、逆にコストが増大する危険性もあります。

外部設計

基本設計とも呼ばれるものです。要件定義書をベースとして、プロジェクトのクライアントからも見える部分について設計します。例えば、機能の設計や画面の設計、データベースの設計などが外部設計に当たります。また、外部設計を行うことで、改めて機能設計書や画面定義書、データベース仕様書といったものが完成し、開発段階を次に進めることが可能になります。

カットオーバー

カットオーバー(cutover)とは、開発された新システムが実際に稼働することを指す用語です。プロジェクトのクライアントや開発チームにとっては「開発完了」を意味しており、ユーザーにとっては新システムやサービスの運用開始、Webサイトのオープンなどを意味しています。そのため、関連用語として「サービスイン(和製英語)」や「本稼働」、「本番移行」といった用語が同じ意味で使われることもあります。

カントリーリスク

カントリーリスクとは、文字通り「カントリー(国・地域)」におけるリスクのことです。具体的には、投資対象国やオフショア開発国において、政治や経済など国内情勢の変化によって、開発環境にも様々な影響が現れ、当初の開発計画やスケジュール、コスト予想などに問題が生じることを指します。それぞれの国ごとにカントリーリスクが存在し、カントリーリスクの見落としはオフショア開発の失敗へ直結する重要なポイントです。

結合テスト

結合試験とも呼ばれ、複数のプログラムを組み合わせて行われるテストのことです。各プログラム単体では発見できなかった問題や互換性リスクを確認する上で欠かせないテストです。なお、結合テストでは事前に定められたインターフェースの仕様に合わせて、それらの入出力が適切に行われているかどうか確かめる、「ブラックボックス」という試験方法が使われることが一般的ですが、実際の方法は各現場によって異なります。

上流工程

上流工程とは、システム開発やソフトウェア開発において、構想や計画といった初期段階(上流)に当たる段階のことです。具体的には、クライアントのニーズを把握してまとめる「要件定義」や、具体的な機能を定める「機能定義」、必要なシステムを設計する「構成管理」、プロジェクトの全工程を計画する「計画立案」などが上流工程に分類されます。一方、実際のプログラム開発以降は一般的に「下流工程」と呼ばれます。

スクラム開発

アジャイル開発として取られるスタイルの1つです。スクラム開発では、開発サイクルが繰り返し行われるため、それぞれの段階で作業や成果物を確認・再検討し、常に最適な開発が進められるよう軌道修正が重ねられます。スクラム開発では、開発を行うエンジニアの他にも、チームや製品の総責任者として作業の品質や優先順位を管理するプロダクトオーナー、ファシリテーションを行うスクラムマスターといった人材が設置されます。

ストレステスト

負荷テストやラッシュテストとも呼ばれ、システムが実際の業務で問題なく稼働できる処理能力を有しているのか確認するためのテストです。例えば、開発したシステムに対して、あえて擬似的な大量アクセスを行って負荷(ストレス)をかけ、反応を検証するといったことが行われます。通常の運用では発見できない問題を確認するために欠かせないテストであり、問題が発覚すれば処理・通信性能などの効率化・向上が必要になります。

ニアショア

ニアショア(ニアショア開発)とは、自社に近い環境(ニア)でシステムや製品の開発を委託するビジネススタイルです。海外でのシステム開発などを指す「オフショア開発」の対義語として用いられ、一般的には日本国内にある拠点への開発委託などがニアショア開発と呼ばれます。例えば、首都圏の企業が、物価の安い地方のシステム開発会社にプロジェクトの業務を委託する場合、ニアショア開発となります。

人月・人日

人月(にんげつ)や人日(にんにち)とは、システム開発においてコストや作業期間の基準となる作業量の単位です。例えば「10人月のシステム開発」であれば「1人×10ヶ月」の作業量が必要となり、エンジニア1人であれば10ヶ月、10人のエンジニアがいれば1ヶ月で開発が完了するといった考え方になります。なお、人日では「1日単位」となります。人月・人日はコスト計算や必要なエンジニア数の試算に重要な単位です。

ブラックボックステスト

結合テストなどで用いられる、ソフトウェアの性能や機能の検証試験です。ソフトウェア内部の構造や処理を意識せず、テスト対象となるプログラムについて、入力と出力といった外部から見える内容のみの確認をします。具体的には、任意の入力に対して、目的通りの出力が得られてさえいれば、ブラックボックステストは合格となり、この時にシステム内部でどのような処理が実行されているかは一切問題とされません。

ブリッジSE

ブリッジSEは、オフショア開発において、日本国内と海外拠点の間で「橋渡し(ブリッジ)」の役目を担うシステムエンジニア(SE)を指します。オフショア開発では言語や風習、仕事に対する考え方など、様々な面で日本と異なる海外のチームを活用するため、両者の特性を理解して管理できるブリッジSEが欠かせません。そのため、ブリッジSEにはITスキルだけでなく、管理能力や言語力といった様々なスキルが求められます。

ラボ契約・ラボ型開発

ラボ型契約(ラボ型開発)とは、オフショア開発における契約スタイルの1つです。システムの開発と納品を一括委託する「請負型開発」と異なり、自社専属のチームや開発拠点(ラボ)を一定期間、オフショア開発国へ設置します。請負型開発では事前の仕様書や計画書に従って、開発チーム主体で作業が進められますが、ラボ型開発ではクライアントが主体となって計画を管理するため、柔軟な対応をさせやすいことが利点です。

リグレッションテスト

リグレッションテストは回帰検証とも呼ばれ、「デグレード」の有無を確認するためのテストです。デグレードとは、何らかの理由でプログラムの一部を修正したり変更したりした際に、既存のプログラムやソフトウェアとの間で想定外の不具合が発生し、結果的に以前よりも製品の品質が低下してしまう現象です。リグレッションテストが適切に行われなければ、バージョンアップ後にサービスが停止するなどのリスクが高まります。

レビュー

レビュー(review)とは、システム開発やソフトウェア開発によって作成された成果物を、作成者以外の人物がチェックして、仕様や要望通りに仕上がっているかどうか内容確認を行う作業です。レビューには対象によって複数の種類があり、ソースコードを確認するソースコードレビューだけでなく、要件定義書や仕様書といった書類・文章について確認するドキュメントレビューなどがあります。