• Column
  • 〔誌上体験〕IBM Garage流イノベーションの始め方

Develop:実装するのはプログラムではなく価値【第10回】

木村 幸太、蛭田 雄一(日本IBM IBM Garage事業部)、石井 真一(日本IBM クラウドネイティブ開発)
2021年6月30日

前回は、本当に必要とされるプロダクト(製品/サービス)を提供するための学びのコンポーネント「Learn」を説明した。今回は、第8回の「Envision」で定義した企業変革の鍵となるユーザー体験の価値を実現するためのコンポーネント「Develop」について説明する。Developは「Co-Execute(共同実行)フェーズ」に位置し、「MVP(Minimum Viable Product:実用最小限の製品)」を開発する。

 IBM Garageのコンポーネントの1つである「Develop」において「MVP(Minimum Viable Product:実用最小限の製品)」を開発する目的は、エンタープライズに適応したデザイン思考によって創出したアイデアをビジネス展開する際に、利用者にとって本当に価値あるものになっているかどうかを検証することにある。

 開発したプロダクトを実際に使用して検証し、期待していた価値を生み出せるかどうかを判定する。期待にそぐわなければ、そのMVPは廃棄する。

 Developの実践においてIBM Garageでは、グループごとの取り組みが定義されている。(1)Test iteratively(反復テスト)、(2)Code in one day bits(日単位の機能実装)、(3)Architecture considerations(アーキテクチャー洞察)、(4)Accelerate delivery(開発の加速)、(5)Data, AI and analytics(データとAIと分析)だ。以下では、その中でも特に重要なポイントを説明する。

不確実性に対応するためにイテレーション(反復)型を採る

 Garageでは第8回に紹介した「Envision」の活動を通じて「MVP(Minimum Viable Product:実用最小限の製品)」の仮説を記述し、それを基にMVPを構築していく。そこでは、リーンスタートアップなどを中心とした手法を使って、開発・実証実験・学習というステップを繰り返す。

 不確実性が高い状態においては、イテレーション(反復)型の開発手法である「アジャイル手法」は開発との相性が良い。アジャイル手法を導入し、価値を検証する最小単位のみを開発し、MVPのための仮説の有効性を確認しながら進んでいく。

 実験の結果いかんによっては当然、ピボット(仮説を入れ替える)が生じる。ユーザー体験を表すコンセプトを表現した「目標の丘」そのものから考え直す場合も多い。それだけに、アプリケーションをコンポーネントに分け、作り直しが容易な形にしておくことで、コア部分は使い回すなどを工夫する。

 なおアジャイル開発でも、法令やガイドラインは当然遵守しなければならない。例えば個人情報保護法が典型的な例だ。GDPR(General Data Protection Regulation:EU一般データ保護規則)に至っては莫大な制裁金が課される。法令やガイドラインを遵守できない場合は、MVPの再考が必要になる。

 筆者の経験として、仮説検証を実施する際に、法令は遵守すべきだが省庁が出しているガイドラインを遵守すべきかが議論の対象になったことがある。識者や法務担当と相談した結果、法令とガイドラインを共に遵守することにした。これらは、前提・制約になり得ることが多いため、早めに確認する必要がある。

 状況に応じた考え方を以下のミニ演習で確認していただきたい。

ミニ演習1

状況 :現在のように不確実性が高い状態で、アプリケーション開発のためのアーキテクチャー・ディシジョン(アーキテクチャーの決定)が求められています。どのような行動が適切でしょうか。

選択肢
アクションa :しっかりとした基盤作りが必要なため、高価なオンプレミスのサーバーを用意する
アクションb :クラウド環境上にアプリケーションを構築し、柔軟に組み替えられるようにする
アクションc :コンテナ技術を利用し、サービスのマイクロ化に努める
アクションd :データベースのテーブル設計にかなりの時間をかける
アクションe :すべての機能を作りきる

 IBM Garageでは、アクションbとアクションcを重視する。アクションbのクラウド環境ならば、組み替えはもとより、その時々の要求に応じて調整が容易であり、適しているといえる。

 アクションcも同様に、コンテナ技術を使うことはサービスの柔軟性を高めるので適しているといえる。再構築が容易なコンテナなどの技術を利用し、システム間の依存性を極力なくした状態で開発する。

 これらに対しアクションaの、しっかりとした基盤作りのためのオンプレミス環境の採用は無駄になる可能性が高い。ビジネスの有効性が確認されていない状況では、すべての取り得る可能性を用意しておく必要がある。オンプレミスの場合、一般的には中止が難しい。いざというときに切り離しやすい環境を選択することも重要である。

 アクションdのテーブル設計に多くの時間をかけることは、色々な考えがあるものの筆者は、この段階では望ましくないと考える。アクションeのすべての機能を作り込むことも、このタイミングでは不要だ。ここではMVP仮説を検証できればよいので、一部暫定機能を元に実装すれば問題ないケースは存在する。例えば、ECサイトの体験を享受するサイトでクレジットカード機能が利用できないなどである。