初めてアプリ開発を依頼する前に見てほしい!プロジェクトマネージャーからのアドバイス

PM

今や企業にとって主要なデバイスとしてスマートフォンのアプリというのはもはや欠かせない存在と言えるでしょう。

BtoCでは顧客との結びつきを深めるために利用されるケースや、BtoBではより効率よくビジネスをやり取りするためのツールとして多く用いられていますよね。

私もいくつかアプリを作りたいという話を個人、企業問わず受ける機会がありましたが、多くの場合でスマートフォンのアプリを作るということについてあまり知識がないがゆえの失敗というものを見たことがあります。
今回はそういったスマートフォンアプリを作りたいけど、あまりノウハウが無くてどうしてよいか分からないという方に向けたいくつかのアドバイスを書いていきたいと思います。

ここは大丈夫という方は目次からスキップして必要なところだけを読んでもらえればと思います。

IT分野にも詳しくはない人向け

初めに、ITというものにあまり関りが無い方向けにそもそもIT開発でよくある勘違いポイントを紹介したいと思います。

ITの経験が無いとプログラマーならアプリ開発できるでしょ?とか、似てるようなアプリを作ったことがあるなら大丈夫でしょ?などと思われるかもしれませんが、ここには大きな落とし穴があります。

また何でも実現できてしまうプログラムに一種の魔法のようなものを求めてしまい、結果として何かが違う

このあたりの知識がないままにアプリの開発会社に依頼していまうと、上手くマッチした場合はよいですが、上手くいかなかった場合、良くても何とか動く程度のアプリとなってしまったり、アップデートのたびに非常に高いコストを支払う必要が出てきたりします。

プログラマーなら誰でもアプリを作れるのか?

これに関する答えはある意味ではYESである意味ではNOです。

プログラムには様々な言語が存在します。
これを日常の感覚で例えると、日本語や英語、中国語といったイメージです。

つまりプログラマーに対して、プログラミングが出来るという認識は読み書きができる人に何らかの言語が使えると認識するぐらい大雑把な感覚のものだと思ってください。
そのため、プログラマーだからと言って専門分野でもない仕事をさせるのは日本語が出来るという人に英語の仕事をしてくれと言うくらい難しい注文という場合があるのです。

また、日本語には大阪弁や京都弁などの方言があるように言語にも~言語の亜種というものが存在します。
例えばC言語と呼ばれる言語がありますが、これに対してC++という派生形言語があります。
これもぱっと見では「C」という言葉が入っているので同じように思えるかもしれませんが、例えば標準語話者が大阪弁を使えば大阪弁の話者にバレてしまうようにC言語が得意というプログラマーにC++で書かせると違和感があるというコードが出来てしまうという場合があります。

※あくまで例えのため、CとC++の関係を簡単に説明していますが、実際にはもっと複雑です。

これがある意味ではNOという理由です。

一方である意味ではYESというのにも理由があります。
アルファベットを習えば誰でも英語っぽい単語を作れますよね?
加えて、ある程度翻訳ページを見たり、英語のページを読んだりすれば誰でもすぐに簡単な英語が使えるかと思います。

例えば、「英語で挨拶をしたら英語で返事を返してくれる」というプログラムを日本語しかできない人に英語で書かせたとしましょう。
そうすると、webの知識や何となく知っていた知識を中心に作るので

・「How are you」と聞かれたら「Im fine thank you . and you?」と返す

というアプリケーションを作ってしまうかもしれません。
ぱっと見では要件通りのような気がしますが、実際の英会話でこんな会話はほとんどしないですよね?
しかし、プログラムがわからない(言語がわからない)人からすると上手く動いているように見えてしまうのです。

つまり、出来ると実用に足るというはこれぐらいの差があるのですが、分からない人から見ると完成しているように見えてしまう。これがYESの理由です。

アプリの開発は順調にいかないと思っておくべき

これはアプリに限らずソフトウェアの開発全体に言えることですが、基本的に開発が最後まで順調に行くケースというのは稀です。

これは大手から中小まで何社か見てきた経験と講演などで見聞きした情報を基にした経験談ではありますが、自社に開発部門を持っているような会社、受託開発経験が豊富な会社であってもプロジェクトが当初定めた期日通り、予算で終わるというケースはあまり多くはありません。

これはソフトウェアというのは見た目以上に複雑に動いているということを直感的に理解しにくいのと、ハードと違いあとからでも直しがしやすいために様々な変更が行われるということが原因です。
これ自体はソフトウェアの特徴とも言えるため、変更などは必要に応じておくなって行く方がよいのですが、それによって予定通り終わらないということが良くある事だと理解しておく必要があります。

アプリは完成がスタートライン

どんなアプリであれ1度作ったら以後は全くメンテナンスが不要というものは存在しません。

それは使用しているスマートフォン本体や本体を動かすプログラム(OS)が変わることにより正常に動作しなくなるというケースがあるためです。

またBtoCのアプリであれば、顧客の意見やアプリそのもののトレンドへの対応が必要です。
(特にUIは昔はイケてないといわれていたUIが今のトレンドというケースがあります。)

つまり、アプリは一度完成させた後に何度も更新を行っていく必要があるため、完成させた後の保守性なども気にしておく必要があります。

アプリ開発会社の選び方

アプリ開発はどこに依頼するべきか

アプリ開発を依頼する候補としてはざっくりと

  • 大手のSIerないし開発会社
  • 中小の開発会社
  • 個人

の3パターンがあげられますが、それぞれによって得手不得手はありますが、それ以外にもいろいろなメリットとデメリットがありますので、その辺りを吟味して選ぶ必要があります。

開発先を選び始める前に大事なこと

上記で候補として3つ挙げていますが、場合によっては選択肢自体が存在しないケースが存在します。
このケースに当てはまる場合は探し方を変えないとそもそも見つからないという場合や、口達者な営業に騙されて結果的に上手くいかないというケースがありえます。

予算と期間による制約

アプリの予算と期間の考え方は家を建てるということをイメージしてもらえると非常に分かりやすいかと思います。
やりたいこと(例えば10階建てのビルを建てる)に対して予算が決まれば必然的にその素材(品質)が決まってきますし、期間が短ければ短いだけ1度に多くの人で作る必要があります。
一方でビルの1階と10階を同時に作れないように1度で出来ること(投入できる人の数)にも限界があり、そうすると必然的に最短で出来る期間というのが決まってきます。
また、短い期間で作るためにはすり合わせコスト(例えば壁を作る職人と塗装をする職人のすり合わせ)を減らす必要があり必然的に多能工的な人が必要となりますが、一方で1人で全てやる必要があるため作業量は限定されます。

では実際にどの程度の予算であれば、どれくらいの期間が妥当なのかというと作業内容と人数によるのですが、概ね予算を100~200万円程度で割ると携わる人数が出てくるので、その人数と期間を見てみれば現実的なラインかが分かると思います。
※個人の場合はやや特殊なため、当てはまらないケースもあります。

技術的な制約

始めの方でも説明させていただきましたが、プログラマーによって得手不得手としている言語(技術)が存在します。
そのため、個人や会社の開発実績というのを見るようにしましょう。
実績としてみる部分は実際に作ろうと思っているものと同じアプリを作っているかや開発の規模感(実績のアプリを触って確認)があっているかを確認するのが良いです。

この際に注意するべきポイントとしては例えばショップアプリを作っているからショップアプリは大丈夫と考えるのではなく、ショップアプリ内で使っているのと同じ機能があるかを見るようにしましょう。

例えばヨドバシのような自社の商品を掲載するという方法とamazonのように商品自体も他社ないし個人が掲載するのに必要な方法は異なります。

上記のようにどちらもジャンルとしてはショップアプリと認識されていると思いますが必要な技術、開発の規模感は全く異なるので大きくイメージと乖離してしまい失敗というケースが潜んでいます。

大手、中小、個人の違い

アプリ開発には大手の企業から中小企業、今では個人で開発しているというケースがありますがそれぞれによってメリットとデメリットが存在します。

分かりやすいところでは大手の方が開発費が高く、個人では安いとなりますが、なぜ安いのか、なぜ高いのかや規模感などによる特性を理解して発注しないと結果として高くつくというケースがありますので注意が必要です。

大手開発会社の特徴

大手開発会社の場合、開発の技術が比較的標準化されており、非常に安定した成果、品質を期待することができます。

また、バックアップする管理体制などもしっかりしているため、開発中の諸々の問題発生率は比較的低いです。

一方で標準化されているが故に開発コストが高いという点と、対応の範囲を外れたケースに対しては対応が出来ない、もしくは対応にコストを要するという場合があります。
良くあるケースとしてはAという機能を作るという依頼に対して、少し変更したA´を作るみたいなことをする際に社内手続きに時間がかかてしまう場合や追加の予算が必要になるという場合があります。

このため、出来上がりが確実に分かっていて仕様変更は行わなわず、品質が高いものを求めているという場合には非常に良いかと思います。

また、仮にアプリを使い続けていく場合に大手はすぐにつぶれることが無いと考えられますので、いざ更新をしたいという場合にも対応をしてもらえる可能性が非常に高いです。

中小開発会社の特徴

中小の開発会社の場合、プログラムの技術はかなり属人化されているため、同じ会社の中でも担当しているメンバーによって技術力が変わるという可能性が高いです。

また、バックアップ体制も貧弱な場合が多いため開発時の問題発生確率は高くなります。

一方でその分開発費用が安くなる点と、担当者に裁量が大きく委ねられている場合や決裁者と距離が近い場合が多く、多少の変更に対して柔軟に対応できる可能性が高い場合が多いです。

また、大手では手を付けられるほどの市場シェアが無いニッチな技術を有している場合や、大手がまだ取り入れていない最新の技術を積極的に採用しているという場合があります。

このため、ある程度の品質を許容しても安く作りたい場合や、特定の技術がマッチしている場合、柔軟な開発を行いたい場合にはマッチするするかと思います。

一方で技術が属人化しているが故に後からアプリの更新を行う場合に出来る人がいなくなっている、会社自体が無くなっているという場合があります。

個人(フリーランス)の特徴

個人の場合、技術は完全に属人化します。
そのため、優秀な人を見つけられれば問題ないですが、それ以外の場合においては多くの問題が発生します。

また、アプリには設計の段階と実際にプログラム書く実装の段階が存在するのですが、設計が上手な人がプログラムを書くのも上手とは限りません。
このため、自社内で品質の良し悪しを判断できればあまり問題はないのですが、判断できない場合は問題になる場合があります。

開発のコストは他と比較して安く済む場合が多く、担当者によっては変更等にも柔軟に応じてもらえる場合がおおいため、ディレクションをしっかり行えれば費用面、柔軟性も高いと思います。

一方で個人ということもあり、開発上で発生した問題がダイレクトに影響する可能性が高く、最悪の場合はなにも出来上がらなかったのに費用だけは発生したという場合もあります。

また、個人の場合はその後連絡がつかないという可能性もあるため、保守面では極めてリスクが高いです。

まとめ

アプリの開発というといまいちピンとこないという方向けに今回はより身近な例をふんだんに取り入れた形で解説させていただきました。

アプリ開発は開発会社の規模や特徴によって出来ること、出来ないこと、得意分野や運用におけるリスクなどが変わってきますのでどういったアプリを作りたいかによって決めていきましょう。

今回はざっくりとアプリ開発の依頼をする前に意識してほしいことを書かせていただきましたが、このほかにも実際に依頼をする際に注意した方が良い点や、事前にやっておくべきこのなどがあります。

また、他にも気にすべきところが多々あるのですが、少し長くなりそうでしたので、今回はこれぐらいにして細かくは次回以降に書いていきたいと思います。

コメント