IS107095513_TP_V-3

仕事でアプリ開発を行おうとしたときに、自分一人で開発できるという人や自社内にアプリ開発者がいるというケースはほとんどないと思います。そこで、たいていは社外のアプリ開発者に業務委託でアプリ開発を依頼することになります。

そしてせっかく業務委託するのであれば、委託先の開発者には少しでも高品質なアプリを作ってもらいたいと考えるはずです。

ここでは、高品質なアプリを業務委託で開発する場合に留意すべき点についてお話ししていきます。ここで述べる内容を理解することで、業務委託によるアプリ開発を高品質かつ納期通りに失敗なく行えるようになるための考え方を身に付けることができます。

高品質なアプリとはどういうものか

一般的に考えられている高品質なアプリとは、どのようなものでしょうか。まず、「仕様通りの機能が実現されていること」「バグが少ないこと」(※)といった機能面の要求事項(機能要求)が満足されていなければなりません。

(※)バグ:ソフトウェアの不具合のこと

さらにこれらの他、「実現されている機能が直感的で使いやすいこと」「パフォーマンスが良いこと」といった要求も満足されるべきでしょう。このように、単に「機能が実現されているか」ではなく「機能が実用的かどうか」「性能面で満足しているかどうか」といった要求のことを「非機能要求」といいます。

高品質なアプリとは、機能要求と非機能要求の両方が満足されたものであると言えます。以下に、機能要求と非機能要求の両方を満足するアプリの開発を業務委託するときに注意すべき点について述べたいと思います。

ユーザー業務に強い開発者を確保する

1点目は、ユーザー業務に強い開発者を確保することです。アプリ開発を行うには、開発する機能について説明した機能仕様書を作成します。理想的には、完全な機能仕様書があればどのような開発者が担当しても同じアプリが完成するはずです。

しかし、現実はそのように行きません。機能仕様書が不完全な場合もありますし、どんなに機能仕様書を完全なものにしようとしてもさらに書ききれない部分が残るものです。そして、機能仕様書に書ききれない部分の仕様の解釈は、アプリ開発者に委ねられます。

すなわちアプリ開発者が、機能仕様書の「行間」を読み取れることがどうしても必要になりますそのようなアプリ開発者は、ユーザー業務を良く理解しています。逆に、ユーザー業務を知らない開発者は仕様の解釈が独善的になりがちで使い勝手の良いアプリがなかなか作れません。

最近は、オフショア開発や一括見積システムなどを利用することで単価の安いアプリ開発者を採用することも可能になりました。しかしそのように単価の安い開発者は、商習慣や文化の違いがあったりユーザー業務に弱かったりするため機能仕様書の行間を読み取るスキルが低いことを覚悟しなければなりません。

そのような場合、アプリ開発はかなりのリスクになります。なぜなら、アプリ開発者の解釈による仕様は、完成したアプリを見るまでわからないからです。実際に完成したアプリを使ってみたら、機能仕様書の通りに動作しているけれども使い勝手が悪くてがっかりするというようなこともよくあります。

そして、開発者に対して「使い勝手が悪いから直してほしい」と言ってもその開発者が「アプリは機能仕様書の通りに動作している。使い勝手を良くするためには追加の開発作業が必要になるため、追加費用をいただきたい」と回答してくる場合もあります。

そうなると、当初は安い費用でアプリを作れたと思っていたのに、使えるものに改良していくうちにお金がかさんで結局高いものに付いてしまったということにもなりかねません。したがって、アプリ開発には「ユーザー業務に強い開発者を確保すること」が重要であると認識しておいてください。

適正な開発期間を確保する

2点目は、適正な開発期間を確保することです。アプリ開発は、設計書・開発計画書の作成から始まりプログラム開発やテストなど一連の工程からなります。そのため、極端な短納期では必要な工数が確保できません。

それでは、開発期間をできる限り長く取れば品質が良くなるのかというとそうではありません。開発者に開発期間を長く与えても、その期間の間に品質を上げるための施策を行わなければ、品質は上がらないのです。

品質を上げるための施策には、パフォーマンステスト・結合テストといったソフトウェア・テストの技術や実際のユーザーにアプリを使ってもらいリハーサル・レビューを実施するなどのものがあります。

これらは、アプリ開発者が主体で行うというよりも、他の動作検証の担当者やエンドユーザー部門の人を巻き込んで行うものです。そのため、さまざまな立場の人のスケジュールを調整しながらアプリ開発者にも協力してもらうというマネジメントのスキルが必要となります

ここでは、高品質なアプリ開発を業務委託で行うための注意点やスキルについて述べました。そしてアプリ開発者だけでなくさまざまな立場の人を巻き込み品質をマネジメントしていくことで、完成したアプリの品質を飛躍的に向上させることができます。ぜひ覚えておいてください。