第3回は、IoT化におけるソフトウエア開発手法として、アジャイル開発を取り上げます。そのメリットやポイントなどを実際の案件を元にご紹介します。

 ここでの案件は、一般家庭向けにセンサーを組み込んだ製品を開発・販売しているデバイスメーカーC社の案件です。C社は今後販売する自社製品をすべてIoT化し、センサーで収集したデータを元に新たなビジネスが展開できないか模索していました。

 今回、新たに開発する製品で、まずはIoT化を試みて、IoTで可能なこととその課題を明らかにしたいということで、C社の担当者、阿部さん(仮名)から相談を受けたところから始まります。

アジャイル開発手法の選択

阿部 :製品のリリースは半年後を予定しています。開発にかけられる費用も抑えたいのです。

市角 :現時点で定まっているデバイスの仕様、アプリケーションの要件はありますか?

阿部 :デバイスについては並行して開発を行っているため現時点での仕様は不明確です。アプリケーションについては要件から一緒に検討してくれませんか。

 C社からの要望を受け、私たちは全体像が固まってから開発に着手する従来の手法ではなく、全体像を作りつつ決まったところから短いサイクルで開発、リリースを行っていくアジャイル開発の手法が適していると判断しました。

 ソフトウエアの開発手法として広く取り入られているウォーターフォール型では、途中でデバイスの仕様変更などが入り追加開発などの費用がかさむことや、アプリケーションの要件確定を待っていてはリリースに間に合わないと考えたためです。

 アジャイルでこれらの問題がすべて解決されるわけではありませんが、短いサイクルでの要件確定と見積もりを何度も行うことで、仕様変更への対応や手戻りの防止が図れます。

ウォーターフォール開発の課題とアジャイル開発手法のメリット

 現在もインターネットサービスを始めソフトウエアの一般的な開発手法となっているウォーターフォール開発に比べ、今回選択したアジャイル開発のメリットは何でしょうか。

 ウォーターフォール型の開発とは、ソフトウエアの開発手法として現在も広く利用されている手法です。製品完成時の要件を固め、見積もりを行い開発に着手します。要件定義、設計、開発、テストといった各工程を進めていきます。前の工程が完了しないと次の工程には進めません。

 原則として、前の工程に手戻りすることは考慮されておらず、そのため、開発途中で要件や仕様を変更しづらいことがデメリットとして挙げられます。

 一方、IoT製品にアジャイル開発を適用すると、以下のようなメリットが考えられます。

メリット1:仕様変更・手戻りに強い

 製品開発では、納品されてから細部の要件や仕様が明確になるケースも少なくありません。ウォーターフォール型では、開発途中での大幅な仕様変更はほぼ不可能で、設計工程からやり直しになり、その分コストや期間が増加します。

 今回のケースでは、要件や全体像、デバイスの仕様も不明確な点を考えると、製品完成時にC社が納得したものができるのか未知数です。ですから、ウォーターフォール型では非常に難しいでしょう。

 アジャイル開発では、作っては壊すというスクラップ&ビルドを短いサイクルで繰り返し製品を作り上げていきますので、サイクルを回すごとにメーカーが納得する製品に近づいていきます。このため、仕様変更に強く、後になって手戻りが発生することはほとんどありません。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。