DX Column

2022年10月26日

サービス開発の定義と勘所

カテゴリー:,

タグ:,

サービス開発とは、顧客ニーズに対応するサービスを新たに開発することを指します。近年はWebの普及に伴い、Webサービスを効率よく開発するためのノウハウに注目が集まるようになりました。IT業界で「サービス開発」といえば、「Webサービス開発」のことを指すこともよくあります。

そこで今回は、Webサービスを効率よく開発するための手法やノウハウを紹介します。

サービス開発とは?システム開発、事業開発との違い

サービス開発とは「具体的なニーズに対応する役務そのものや、提供方法を開発すること」を指します。新しいサービスを生み出した後に、これらが持つ価値をどういった形でどのように届けるかを検討し、ひとつのプロセスとしてまとめることがサービス開発の要諦です。近年は、インターネットやスマートフォンの普及にともなって、ブラウザを通して何らかの機能を提供する「webサービス」が広く使われるようになったことから、ITを用いたWebサービスの開発が盛んに行われています。

サービス開発とシステム開発の違い

サービス開発の核は、価値を届けるために「「具体的なニーズに対応する役務そのものや、提供方法」を作りあげることです。これに対してシステム開発は、サービスが動作するための基盤や顧客とのやり取りに係る情報システムを開発することです。

サービス開発と事業開発の違い

サービス開発と混同されがちな言葉に「事業開発」があります。両者は同じような意味で使われることもありますが、本来の意味は異なります。事業開発とは、顧客課題の発見とそれに応じた商品やサービスの開発、市場開拓、収益構造の構築などビジネス全体の構造を作り上げることです。サービス開発やシステム開発よりも広い意味を持ち、サービス開発は事業開発の一部であるとも言えます。

Webサービスとモバイルアプリの違い

もうひとつよくある勘違いにWebサービスとモバイルアプリの混同があります。Webサービスは、ブラウザを使って利用するサービスのことです。スマホの機種やパソコンなどのデバイスの種類を問わず同じように利用できます。モバイルアプリは、スマートフォンで動作するアプリで、ホーム画面上のアイコンをタップして起動します。iPhone用とAndroid用のアプリを作り分ける必要があります。パソコンで動作させるのは簡単ではありません。

なぜWebサービス開発が注目されるのか

近年、Webを中心にサービス開発が盛んに行われています。特にスマートフォンが普及し、年々性能が向上している昨今は、Webサービスを利用する層が拡大しています。また、企業側の立場から見てもWebサービス開発に注力する理由として以下のような事柄が挙げられます。

規模を問わず具体的なニーズに対応しやすい

Webサービス開発の内容は「ブラウザに通知を出す」といった小さなものから大規模なコミュニティサイト開発まで、幅が広いことが特徴です。こうした特徴の裏には、「規模を問わず具体的なニーズに対応しやすい」というWebサービスの強みがあります。Webサービスはブラウザにアクセスさえできれば価値を届けられるため、コミュニケーション・情報提供・契約までさまざまなニーズを吸収でき汎用性が高いのです。

スモールスタートが可能

Webサービス開発では、初期費用をあまりかけずに実験的なスタートが可能です。また、撤退も比較的容易であり、リスクが小さいという特徴があります。さらに顧客の使用するデバイスへのインストールが不要であることから、修正や改善がやりやすく、PDCAをサイクルさせやすいことも特徴です。こうした特徴が「小さく・速く・低コストに」を基本とするスモールスタートとの親和性を高めていると考えられます。

自由度が高い

Webサービスは、使用する環境(デバイスやOSなど)の制約を受けにくく、場所の制限もほとんどありません。そのため、利用者側・開発側ともに自由度が高く、価値を届けやすいのです。

さらに、クラウドを活用することでサービス提供基盤の拡張も比較的容易に行えます。

サービス開発の一般的な手順

では、Webサービス開発の一般的な手順を見ていきましょう。近年は、ウォーターフォール型開発とアジャイル型開発のうち、いずれかが用いられます。

ウォーターフォール型開発の場合

ウォーターフォール型開発は「水が上流から下流に流れる様子」をイメージした開発フローが採られます。つまり、企画や要件定義などサービスの大枠を決定する上流工程から、基本設計や実装・テストなど個別具体化する下流工程へ向かってプロジェクトが進行していくのです。

ウォーターフォール型開発の一般的な工程

・企画…サービスの目的やターゲットなどを決定する

・要件定義…Webサービスの機能要件、非機能要件などを決定する

・基本設計…Webサービスの基本的な動作や技術的構成要素を決定する

・実装…プログラミングなどによりWebサービスを具体化する

・テスト…具体化したWebサービスの動作が企画や要件定義に合致したものであるかを確認する

・リリース…本番環境や外部からアクセス可能な場所に公開する

ウォーターフォール型開発のメリットは、「工程ごとに作業範囲や責任範囲が明確になること」です。工程が明確に区切られており、担当する人材が異なるため、大規模な仕組みを分業制で構築する場合に適しています。一方で、仕様変更や瑕疵が発生すると前の工程からやり直すことになり、追加コストや工期の延長が発生するというデメリットもあります。

アジャイル型開発の場合

アジャイル型開発は「少人数のチームで短期間に開発とリリースを繰り返す」開発手法の総称です。ウォーターフォール型開発のように工程ごとに担当の人材が変わるのではなく、チーム全体で要件定義・設計・開発・テストを進めます。また、イテレーションと呼ばれる数週間の期間をひとつの区切りとして、リリースと修正を繰り返す点も特徴です。ウォーターフォール型開発よりも仕様変更に対する適合性が高く、コストや工期を肥大化させずにWebサービスを作り上げることができます。

アジャイル型開発でサービス開発の質と速度を上げる

以上2つの開発手法を比べると、アジャイル型のほうがWebサービス開発に適している言えます。その理由は次のとおりです。

答えが変化する状況に対応しやすい

ウォーターフォール型では、開発が進行している最中に答え(ニーズ、要件)が変わった場合、差異を吸収する工数が大きくなります。ウォーターフォール型を採用するプロジェクトは、階層構造的な組織体制であることがほとんどです。組織体制としては優れているのですが、頻繁な変更が想定される状況への耐性はそれほど高くありません。一方、アジャイル型はイテレーションをサイクルさせる中で自然と差異を吸収できるという強みがあります。

チャレンジしやすく失敗も許容される

Webサービス開発は、スモールスタートで進められることが少なくありません。また機能改善や新機能の実装などにおいては、実験的な試みを行うこともあるでしょう。これらは、失敗の発生を前提とすることが多いため、「失敗を許容する仕組み」が必要です。アジャイル型には「最初から100%を目指さない(100%よりもリリースを優先する)」という考え方があるため、失敗を許容しやすいのです。

対話を重視した開発が可能

ウォーターフォール型は、企画や要件定義で合意した内容に基づき、直線的に開発がすすめられます。したがって上流工程を除けば、顧客と対話する機会は徐々に減っていきます。これに対してアジャイル型では、ビジネス担当者・開発者・顧客・コミュニティの対話を重視し、対話から得られた内容を随時サービスに取り込むことが可能です。ビジネス担当者や顧客、利用者との距離が近いWebサービスの場合、対話を重視するアジャイル型が適していると考えられます。

まとめ

今回はサービス開発の概要やWebサービス開発について解説しました。Webサービス開発はアジャイル型開発との親和性が高い分野です。アジャイル型開発を採用することで、イテレーションを繰り返しながら、サービスを止めずに”あるべき姿”を目指すことができます。ぜひ、今後のサービス開発の参考にしてみてください。