オフショア開発でアンドロイドアプリができるまでの工程

はじめに
オフショア開発を導入する心構え
アンドロイドアプリができるまでの工程
 企画と要件定義、外部設計
 内部設計とプログラミング
 プログラミングテストから運用まで
おわりに

はじめに

オフショア開発とは、アプリ開発やシステム開発などを海外の開発企業や拠点に委託することで、日本でも注目を集めているシステム開発方式です。目的は、主にコスト削減と優秀な人材の確保で、IT業界では国内の企業の45.6%がオフショア開発を導入しているというデータもあります。
オフショア開発でアンドロイドアプリを作るには、どういった工程をたどるのでしょうか。オフショア開発を導入するまでの心構えから、具体的な工程まで詳しく解説していきます。

オフショア開発を導入する心構え

文化や価値観の違いを理解する

オフショア開発は、海外の企業とのやりとりになるので、相手国とは言語はもとより文化や価値観も違います。イスラム教徒の多い国では、宗教による習慣もあり、例えば祈りの時間に電話をしたり、会議を設定したりすると、宗教に対する侮辱ととらえられることもあります。
日本国内で仕事をする場合とは、違った文化や価値観があるので、それをよく理解して、自国の文化や価値観を押し付けるようなことはしないように配慮することが大切です。

残業や休日出勤込みのスケジュールを立てない

日本人にとっては、納期に間に合わせるために、残業をしたり休日出勤をしたりするのは、通常の業務ととらえる人も多いでしょう。
でも、海外の企業ではそれは通用しません。
残業や休日出勤を念頭に入れたスケジュールを立てないようにしましょう。また、日本の祝日と海外の祝日は違います。日本が平日でも、海外では休日ということもあります。海外のカレンダーを理解してスケジュールを立てるようにしてください。

コミュニケーション環境を充実させる

言葉も文化も価値観も違う相手との仕事となるので、コミュニケーション環境がとても重要となってきます。主にメールやSkypeなどでのやりとりが多くなってきますが、時には電話で直接コミュニケーションをとることも大切です。
電話でないと理解し合えない細かな意思疎通や、情報の共有などもあり、それを怠ると誤解が生じたり、開発業務が丸投げ状態になってしまいます。
オフショア開発が失敗する原因のほとんどがコミュニケーション不足によるものです。こちらから積極的にコミュニケーションをとるように心がけましょう!

品質水準の違い

オフショア開発だと、やはり国によって品質の概念について感覚が違う面もあります。要件に記載されていないエラー処理などの動作が甘かったり、動けばよいという感覚があったり、不具合を原因や修正内容など、具体的に記載しないこともあります。こまかな品質チェックは怠らないようにし注意しましょう。

オフショア開発では、国内での開発のようにいかないことも多々ありますが、やはり賃金格差の大きい国をオフショア開発先に選ぶと、大幅なコストダウンも期待でき、国内では不足しがちな優秀な人材も確保できるので、そのメリットは大きいといえるでしょう。

アンドロイドアプリができるまでの工程

ではここから、アンドロイドアプリができるまでの工程を見ていきます。
企画~外部設計、内部設計~プログラミング、テストの3つに開発フェーズを分けて説明していきますので、どの工程をオフショア開発で業務委託するのか、イメージしながらみてみてください!

企画と要件定義、外部設計

基本的には、企画や要件定義、外部設計の段階までは、自社ですることが多いようです。
案件によっては、要件定義の段階からオフシュア開発を導入することもあります。

企画

まずは、開発するアプリのイメージや、その目的など、開発する意図を明らかにしておきます。
アプリの内容(目的やゴール)やターゲット(誰が、いつ、どこでなど)、収益を得る手段などは、企画段階で明確にしておかなければなりません。

要件定義

アンドロイドアプリ開発成功のカギを握っているといってもいいのが、要件定義です。
企画されたアプリについて、より詳しく突き詰めて、その内容やターゲットなどをさらに明確にしていきます。
例えば収益を得る手段だと、決済方法やポイントなどはどうするかも具体的に決めておき、企画概要をふくらませていきます。アプリ開発の目的を明確にし、ユーザーニーズにどのように応えていくかなど、具体的に内容を考えていきます。
さらに、どのような機能を搭載するかなどの設計に関することも具体的に考えていき、次の外部設計につなげていきます。

外部設計

基本設計と呼ばれることもあり、要件定義で決定した機能や性能などをもとにして、アプリの基本となる設計をおこなっていきます。
操作画面や操作方法など、ユーザーから見えるインターフェース部分を決めたり、アプリ開発のスケジュールや費用などを決めたりしていきます。
アンドロイドアプリの場合は、Googleで提唱されているマテリアルデザインガイドラインを意識した画面作りをおこなっていきましょう。

内部設計とプログラミング

内部設計

内部設計では、外部設計で決めたことが実際にプログラミングできるように、アプリを開発するときに必要なシステムの内部(裏側)で、データがどのように処理されていくのか、ユーザーからは見えない部分の設計をしていきます。
この辺りからオフショア開発を導入することが多いようです。主にプログラミングをおこなう工程で必要となってくるもので、プログラミングに必要な情報を設計して、外部設計の段階で決定していることを、実現させることができるようにしていきます。

プログラミング

プログラミングの段階では、多くのプログラマーやシステムエンジニアが必要となってきます。
しかし、日本国内ではシステムエンジニアが慢性的に不足していて、この段階で特にオフショア開発のメリットが活きてきます。
オフショア開発によって、優秀な人材を大量に確保できることで、納期に余裕を持つことかでき、一人ひとりのエンジニアの負荷が少なくなるため、そのことが品質向上にもつながるでしょう。

プログラムテストから運用テストまで

プログラムテスト

プログラミングが終わったら、プログラムテストをおこないます。プログラムが設計どおりに処理され、正しく動いているかどうかを、一つひとつ確認していきます。
実施するにあたっては、テストしなければならない項目の記載されたプログラムテスト仕様書を作成し、それに従ってテストをおこなっていきます。項目は、基本的には内部設計での全処理パターンがこれにあたります。そもそも人間はミスを犯してしまうものなので、完璧ではありません。どうしても不具合(バグ)は発生してしまいます。テストを実施することで、不具合をつぶしていくのです。

結合テスト

プログラムテストのあとにおこなわれるテストで、一つひとつのプログラムが組み合わさって、一つの機能となり、それが正しく動いているかどうかのテストをします。

システムテスト

結合テストのあとにおこなわれ、プログラムされたすべての機能が、ひとつのシステムとして、正確に動いているかどうかをテストします。
要件定義に沿って動いているか、それぞれの機能の連携がとれているか、処理の速さに問題はないかなど確認していきます。

運用テスト

システムテストのさらにあとには、運用テストがおこなわれます。この段階は、主に国内でおこないます。実際にユーザーにアプリを使用してもらい、当初に企画どおりのアプリとして仕上がっているかどうか、使い勝手はどうかなど、ユーザーに判断してもらいます。

おわりに

オフショア開発は、コスト削減や国内で不足する優秀な人材の確保など、メリットが大きく、近年アンドロイドアプリの開発でも導入されることが多く、日本でも注目を集めています。その工程は、企画から始まり、要件定義、内部設計あたりまでは、自社でおこない(案件によっては要件定義からオフショア開発の導入もあり)、その後、外部設計からシステムテストまで、オフショア開発を導入することが多いようです。オフショア開発では、海外の文化や価値観、言語の違いなどによって、いくつかのデメリットも生まれますが、それらを理解して、日本との違いを尊重した上で進めていけば成功するでしょう。

関連性の高い記事はこちら

Top