ソフトウェア開発は、どのようなプロセスを経て進むのでしょうか。ソフトウェア開発のプロセスや開発手法の特徴などを把握しておくことで、理想的なプロダクトの開発をスムーズに進めることができます。
ここでは、ソフトウェア開発のプロセスや開発手法について、ソフトウェア開発の概要と併せて説明します。
ソフトウェアとは、コンピューター上で作動するプログラムのことを指します。
【ソフトウェアの例】
・文章作成ソフト
・表計算ソフト
・ゲーム
・メール など
ソフトウェアには、業務の効率化を図るものや、サービスの向上が期待できるもの、コミュニケーションツールなど、さまざまな目的のものがあります。
一方、ソフトウェアの対義語としてあるのがハードウェアです。ハードウェアはソフトウェアと異なり、実際に目に見える形で存在し、物理的に触れられるものといえます。
【ハードウェアの例】
・スマートフォン
・タブレット
・パソコン など
ソフトウェアがインストールされることで、ハードウェアはさまざまな機能を有します。
したがって、ソフトウェア開発とは、「ハードウェアとソフトウェアを組み合わせて、機能的なプロダクトになるよう開発する作業」といえるでしょう。
ソフトウェア開発は、いくつものプロセスを経て行なわれます。
例えば、実際に開発に入る前には市場のニーズを見極め、本当に必要とされるプロダクトとは何かを推敲することが重要です。また、どのような方向性で、どの程度の開発期間を想定し、どのような開発手法で進めていくのかなど、チーム全体で共有すべきことが数多くあります。
そのため、ソフトウェア開発を進めるうえでは、「チーム全体がビジョンを共有し、進捗状況などを管理しながら同じ方向に進んでいくこと」が非常に大切です。このように、ソフトウェア開発全体の理念や進捗を管理するために用いられるのが、ロードマップ(行動計画書)です。
ロードマップを作成するには、さまざまな要素を検討する必要があります。具体的には、市場のニーズ・プロジェクトの目的・ユーザーストーリー・MVP・作業条件・タイムライン(スケジュール)などです。
これらの要素を網羅的に把握できるようなロードマップを作成することで、プロジェクト全体のマネジメントがスムーズに行なえます。
ロードマップは基本的に、以下のような手順で作成します。
まず行なうのが、プロジェクトの目的を明確に設定することです。
「なぜそのプロダクトを開発するのか」「解決すべきユーザーの課題とは何か」「何をもって目標達成とするのか」など、プロジェクトの根本的な部分を考えます。
プロジェクトの目的を設定できたら、MVPを定義します(MVPについては後述します)。
MVP開発では、重要度の高いものから少しずつ開発し、その都度進捗を確認するため、プロダクトの機能において何が重要なのかを検討する必要があります。例えば、ユーザー体験を最も大切にしたい場合、ユーザー視点に立ってどの機能を重要視すべきなのかを考えます。
プロジェクトの目的達成には直接結びつかないような機能の開発は、スケジュール上あと回しにしても大きな問題はないでしょう。
ロードマップは、チーム全員と共有するものです。そのため、誰が見ても理解しやすく、見やすいものでなければなりません。
そのため、ロードマップをできるだけ簡潔に、わかりやすくするための最適化という作業が必要です。
ユーザーストーリーのマッピングとは、「ユーザーにどのような課題があり、その課題を解決するためにユーザーはどのような行動を取るのか」について、時系列を追って考えることです。
ユーザーの行動を具体的に想定することで、タスクを明確化でき、ユーザーにとって本当に必要な機能を精査することができます。
この場合の特徴とは、開発しようとしているプロダクトの持つ「機能」だけではありません。以下のように、コストや価値も含めてプロダクトの特徴といえます。
・プロダクトの開発/サポートにはいくらコストがかかるのか
・完成したプロダクトにはどれほどの経済的価値があるのか
・開発をすることでどのような学びがあるのか
・開発によって低減できるリスクとは何か
ロードマップを作成する際は、上記についてよく検討したうえで、優先順位を決めることが重要です。
ここまで決まれば、ユーザーストーリーをタスクごとに細分化します。ユーザーの行動を細かく切り取り、各段階で解決すべきタスクを設定するのです。
タスクの内容としては、1人の開発メンバーが1日で完了できる程度を目安にするとよいでしょう。
このように、プロジェクトの目的設定・MVPの定義・ユーザーストーリーのマッピング・タスクの細分化などができれば、ひとまずはロードマップの作成は完了です。
しかし、一度作成して終わりにするのではなく、実際に開発を進めていくなかで新たな課題が見つかれば解決し、以下の点を確認してロードマップを修正する必要があります。
・新たな課題は予測可能なものだったか?
・解決策(短期的・長期的の両方)
・課題解決のリソース
ソフトウェア開発のプロセスは、もちろんロードマップの作成だけではありません。どのように開発を進めるのか、行動するのかをチームで共有できれば、プロジェクトに適した手法で実際に開発を進めていきます。
ここからは、ソフトウェア開発のおもな手法「ウォーターフォール開発」「アジャイル開発」について見ていきましょう。それと併せて、ソフトウェア開発の話でよく耳にする「MVP開発」「リーン開発」「ラボ型開発」についても説明します。
関連記事:代表的なソフトウェアの開発方法4つ!トレンドの開発方法についても解説
ウォーターフォール開発は、ソフトウェア開発における以下の工程を、最初から最後まで細かく決め、綿密なスケジュールに沿って開発を進める手法です。
【ソフトウェア開発の工程】
1.要件定義
2.設計
3.開発
4.テスト
5.リリース
ウォーターフォール開発では、あらかじめ定めたスケジュール・手順どおりに開発を進め、一つひとつの工程について入念に確認します。各工程でクライアントを含め、チーム全体の了承を得られなければ、次の工程には進めません。
ウォーターフォール開発の最大のメリットは、進捗状況・リソースの確認や、スケジュール管理をしやすいことです。開発工程を細かく決めるため、予定どおりに進めることがウォーターフォール開発の核となる部分といえます。
ただし、「予定どおりに進めなければならない」という点は、一長一短です。例えば、クライアントの要望が途中で変わる可能性がある場合には、柔軟に対応できません。開発工程が事細かに決まっているがゆえに、開発途中での仕様変更に対応しにくいのです。
ウォーターフォール開発は、厳密なスケジュール管理が求められる場合や、仕様変更が生じにくいようなプロジェクトに適した開発手法といえるでしょう。
アジャイル開発は近年主流となっている開発方法で、プロダクトの機能単位で開発サイクルを素早く繰り返す手法です。
具体的には、要件定義~設計~テスト~リリースまでの工程を機能単位に細かく分け、PDCAサイクルを高速で回します。短期間で、クオリティの高いプロダクトを開発できることが特徴です。
スケジュールを細かく決めず、また機能ごとに開発を進める点は、ウォーターフォール開発と真逆だといえます。途中での仕様変更にも、柔軟に対応できます。
アジャイル開発は、まだプロダクトの理想形が定まっていない場合や、開発を進めながら理想のプロダクトに近づけていきたいという場合には最適でしょう。
しかし、柔軟に対応できる強みがあるということは、裏を返せば開発状況が流動的になりやすいということでもあります。つまり、綿密なスケジュール管理が求められるような、大規模プロジェクトなどには適していない手法です。
関連記事:アジャイル開発の2つのデメリット!解決方法も合わせて解説
なお、アジャイル開発のメリットを最大限享受するには、経験豊富なマネージャーやエンジニアがそろったチームで開発を進めることが非常に重要です。
ソフトウェア開発において基本であり、かつ重要なのは「本当に必要とされるプロダクトを、適切なスキルを持った人材とともに作ること」です。
DeFactoryには、事業目線でプロダクト開発を進められるマネージャーや、経験豊富なエンジニアが集まっています。
プロダクト開発における計画(要件定義)までであれば最短5営業日で、計画〜実装〜テストのサイクルであれば最短14営業日で行なうことが可能です。
高品質なプロダクトをスピーディーに開発したいとお考えの場合は、ぜひDeFactoryにお任せください。
ここからは、ソフトウェア開発の話によく出てくる「MVP開発」「リーン開発」「ラボ開発」について、少し見ていきましょう。
MVP(Minimum Viable Product)とは、必要最低限の機能だけを備えたプロダクトのことです。よってMVP開発とは、まずミニマムなプロダクトを開発し、ユーザーからのフィードバックを参考にしながら、徐々に完成度を高める開発を指します。
MVP開発の最大のメリットとしては、低コスト・短期間で開発ができる点が挙げられます。新規事業や新規プロダクトをローンチする際には、MVP開発を活用することで、市場価値やユーザーのニーズを見極めながらスピーディーに開発を進められます。
先述のロードマップの作成においても、MVP開発は重要な要素です。ユーザーの課題を解決できる、新たなプロダクトを開発する際には必要なプロセスといえます。
ソフトウェア開発におけるリーン開発とは「無駄を省きながら、プロダクトの価値を最大限高める開発手法」を指します。
リーン開発では、以下を基本的な流れとして開発を進めます。
1.仮説
2.構築
3.計測
4.学習
仮説が正しくないことがわかれば、構築・計測・学習を再度行ないます。
リーン開発で構築するプロダクトは、リソース・コストの無駄を省くために、最小限の機能を持ったものにとどめます。ここで行なうことが、MVP開発です。MVP開発は、リーン開発においてなくてはならない存在だといえるでしょう。
なお、リーン開発はアジャイル開発と相性が良いとされ、組み合わせて開発を進めることも多くあります。
ラボ型開発は、「オフショア開発」の一つです。
(オフショア開発:海外に開発リソースを確保する手法のこと)
ラボ型開発では、ベトナムやミャンマーなど東南アジアを中心