オフショア開発どのように始めるか
01 April, 2022
はじめに
システムの導入をするためには、戦略や企画がしっかりと立てられていることが望ましいでしょう。
システム開発会社では通常は開発部分のみを請負するもので、発注側ではしっかりと前段階の検討をしておくことが大切です。
ここでは計画を立てる上での念頭に置くことや、開発の進め方を紹介いたします。
システム開発の検討
システム開発には目的があります。
業務システムであれば、特定の業務を効率化することが主な目的となります。
まずは何をシステム化するかの検討から始めましょう。
開発の承認までのプロセスとして、開発によって達成したいことを決める、業務フローを書き出す、システム化による効果を検証、開発スコープを決定、経営の承認などがあります。
達成したいことを決める
業務システムであれば、人による作業をシステムに置き換えたい、といったことなどがあります。
また、マーケティングのためであったり、複数の目的を達成するためのシステムということもあります。
業務フローの整理
システム化するために、業務フローを図にして整理をしましょう。
全体の業務も含めて見るために、外部の関連情報も含めるとよいでしょう。
業務フローをどのようなシステムで置き換えられるかを検討しましょう。
システム化の効果を検証
業務フローのどの部分をシステム化するかの検討ができたら開発の目的が達成されるかをヒアリングしたり、減らせる作業量を数値化するなどして、どの程度の効果が達成できるかを整理しましょう。
見積もりの依頼
システム化にかかる費用をシステム開発業者に見積もりを出します。
要件が確定していない場合は概算見積りと依頼をしましょう。
開発のスコープ
システム化をする機能が費用対効果に見合ったものか精査し開発の範囲を決めます。
経営の承認
これらの情報を整理し、経営の承認を得ましょう。
開発言語や環境
どのような環境で動くシステムを開発するか
どの環境で動くシステム・アプリにするかを検討しましょう。詳細はシステム開発会社と相談をすることができます。
システムの動作する環境としては大きく以下のものがあります。
- デスクトップアプリ
- WEBアプリ
- スマホアプリ
フロント(UI)とサーバーを別々の言語で開発する事が多く、APIと呼ばれる通信でフロントとサーバーを接続します。
デスクトップアプリ
デスクトップアプリでシステムを動かすのであれば、以下の言語が候補としてあがります。デスクトップアプリはWindowsやMacOSの両方、もしくは片方で動くことを検討します。
C言語 C++ Java C# VB(Visual Basic) VB.net
https://resanaplaza.com/2020/08/30/%E3%80%90%E7%A7%81%E3%81%AB3%E5%88%86%E4%B8%8B%E3%81%95%E3%81%84%E3%80%91%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E9%96%8B%E7%99%BA%E8%A8%80%E8%AA%9E/
WEBアプリ
WEBアプリでシステムを動かすのであれば、以下の言語が候補としてあがります。
JavaScript PHP
https://ledge.ai/en-japan-web-development-ranking/
スマホアプリ
スマホアプリの場合はOSによって開発の言語が異なります。
- Androidの場合
- Kotlin Java
- iOSの場合
- Swift Objective-C
またクロスプラットフォームでの開発が可能で、FlutterやReact-Nativeといったフレームワークを利用できます。
アプリ開発言語 https://ops-in.com/knowledge/application/app-development-language/
ローコード開発
ローコードの開発はツール依存になるので、開発業者を変更する際は引き継ぎが難しいことが多く、注意が必要です。
ローコード開発ツール https://tech-camp.in/note/technology/94835/
計画の作成
ITマネジメント・アセスメント
これまでシステムを導入していない会社であれば、システムの周辺でも計画しておく必要があります。以下のような観点で体制を整えておきましょう。
- 運用体制
- コンプライアンス
- セキュリティ対策
- リスク管理
- コンティンジェンシープラン
アセスメント https://www.arksystems.co.jp/cases/it-assessment-medical-system/
QCD
開発のゴール達成を図る基準としてQCDというものがあります。
- Quality(品質)
- Cost(コスト)
- Delivery(納期)
数値で明確化して達成を目指せるようにすることが目的で、開発の前に決めておけば開発の方向性が決めやすくなります。
QCDを解説 https://it-trend.jp/project_management/article/33-0059
RFP
開発を委託する際に提案依頼書を開発会社に渡しておくとスムーズに行きます。
開発をして欲しいシステムの概要や目的、希望納期などを伝えるための情報をまとめます。
開発会社はその情報を元に見積りと共に提案を行います。
RFPの書き方 https://it-koala.com/rfp_lecture-709
開発の進め方
計画や経営の承認が得られたら、プロジェクト開始となります。基本的な流れを説明いたします。
事前に
開発に入る前に、ルールやコミュニケーション方法を決めましょう。
チャットツールで連絡が取れるようしましょう。
また、進捗がわかるようにBacklogやRedmineのツールを共有しておきましょう。
仕様の作成
開発側では、最初に仕様の作成から入ることになります。要件を元に実装するためのドキュメントを作成する作業で、仕様が間違っていると実装も誤ったものになります。
オフショア開発では、仕様作成者がオフショアの国の人間で、ドキュメントを外国語で作成されて翻訳される場合があります。
仕様の内容に考慮漏れがないか、発注元としてチェックをしっかり行いましょう。
開発実装
開発に入ると、仕様を変更する必要が出る場合があります。QA表などで確認を記録したり、仕様書の変更を管理して混乱が起こらないように気をつけましょう。
アジャイル開発であればプロダクトを随時確認することができ、コミュニケーションを補完することができます。
スケジュールの管理はPM(プロジェクトマネージャー)が行います。
テスト・修正
プロダクトが完成すると動作テストに入ります。UT(単体テスト)、IT(結合テスト)、ST(システムテスト)とありますが、スケジュールに沿って進行します。
動作テストは外部の会社に依頼することもできます。
リリース・振り返り
プロダクトが完成したらサービスのリリースとなります。
リリース作業についても、手順に従って行われます。
また、プロジェクト終了のタイミングでQCDで計画されたように開発が進んでいたかを振り返りましょう。
まとめ
オフショア開発に限らず、システムを導入しようとする際には抑えておくことが多くあります。
大きな会社ではシステム開発部門がありますが、中小企業でもITコンサルタントと相談をすることで安全に進めることができます。
システム開発会社でもサポートをすることがあるので、信頼のできる会社と相談をしながら進めるとよいでしょう。
株式会社GCode
所在地: 東京都新宿区大久保1丁目2−1 天翔オフィス東新宿
Tel: 050-1743-1714 (平日10時~19時)
Email: info@gcode.jp
Facebook: GCode Inc
Twitter: GCode Inc