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

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

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

開発と運用を分けないDevOpsのためにCI/CDは不可欠

 上述した筆者の体験時では、「DevOps(デブオプス。開発と運用の融合)」の推進を目指していた。DevOpsは、「Development=開発」と「Operations=運用」の2つをかけ合わせてできた言葉である。

 従来、ソフトウェア開発の世界では、開発するシステムが部署ごとに分断されてデータも連携されていな「サイロ化」状態にあり、担当部門だけでなく、開発チームと運用チームも別々だった。本来は、いずれのチームも「ソフトウェアの価値をエンドユーザーに届ける」という共通の目的を担っているにもかかわらずだ。

 そのため、開発チームは新機能の拡充や利便性の向上に最適化され、一方の運用チームはエンドユーザーが安定して使えるよう稼働時間を優先したサポート体制を採っていた。こうした手段の違いが、しばしば対立を生む。そうした対立をなくし、チームが互いにコラボレーションできる姿を目指すのがDevOpsである。

 前述したように、1日単位の短いサイクルでの開発を実現するためには、ユーザーストーリーをスプリントの単位で管理したうえで、開発チームと運用チームの対立を減らし、プロダクトに対して両チームが1つの目的に向かって推進しなければならない。

 スピード感を持ちつつ、プロダクトを継続的に確認するためには、機能要件からテスト完了までのプロセスを自動化する「CI(Continuous Integration:継続的インテグレーション)/CD(Continuous Delivery:継続的デリバリー)」への取り組みが不可欠である。

 CIは、その名の通り“継続的”に“インテグレーション(統合)”することであり、インテグレーション後に単体テストを自動的に実行することで、その不具合を早期に検証できる。ビルドを常に最新にでき、システム開発でよく陥りがちな結合後に不具合が多発する症状を早い段階で摘み取れ、非常に合理性がある。

 CDは、いかなるときでも、システムを実稼働環境にリリースできるようにするための方法だ。CI/CD環境を整備することで継続的にリリースをするというタスクが最適化され、本来のプロダクト開発に注力できる。

 これに対し、例えばExcelでバックログやリリース履歴を管理しているとデグレーション(品質低下)や反映漏れが発生する。テストやリリースを手動で実施していると、その作業自体がボトルネックになる。そうした環境ではアジャイル開発は諦めたほうが良い。

 ミニ演習2で、CI/CDへの理解を深めていただきたい。

ミニ演習2

状況 :CI/CDを実現しようとしていますが、あまり効率が上がらないように感じています。現状のCI/CDプロセスを改善する際に、最初に検討するべきことは何でしょうか。

選択肢
アクションa :CI/CDに含まれる作業の自動化を検討する
アクションb :CI/CDに含まれる作業を定量的に可視化する
アクションc :CI/CDにおける課題を抽出し解決方法を検討する

 最初に検討するべきは、アクションbと考える。CI/CDはプロセスの自動化と言えるが、現状の課題や適切な解決策がなくては自動化は望めない。現状の課題を特定するためには定量的に把握する必要がある。

 定量的な把握に有効な手法が「バリュー・ストリーム」だ。バリュー・ストリームは、リリースまでの作業をプロセスという形で定義し、次の3つの項目を定量的に可視化することで、ボトルネックになっている箇所を特定する。

リードタイム :実現要求が出されてからリリースされるまでの時間
プロセスタイム :個々のプロセスを実行する時間
完全正解率 :プロセス完了後に不備などにより前プロセスにロールバックされる確率

 今回は、ユーザー体験価値を実現させる「Develop」の進め方と、その際に必要な考え方としてDevOpsを紹介した。繰り返すが、最も大事なのは、必ずユーザーからフィードバックをもらいながらMVP仮説を価値に変えることである。

 次回は、IBM Garageのコンポーネントの「Operate」について紹介する。「Envision」におけるユーザー体験価値の仮説から、「Develop」で実現したプロダクトやサービスの安定運用や改善のための方法である。

木村 幸太(きむら・こうた)

日本IBMグローバル・ビジネス・サービス事業本部 IBM Garage事業部 部長。IBMビジネスコンサルティングサービス(現日本IBM)に入社後、さまざまな業種の企業への営業やCRM、マーケティング戦略の策定・実行支援、BPR、システム化構想から導入など経験する。2018年1月にスタートアップを支援するIBM BlueHub、同年10月よりIBM GarageのLeadに着任。近年は、イノベーションやデジタル変革をテーマに、デジタル戦略やアジャイル案件を数多く手がけている。

蛭田 雄一(ひるた・ゆういち)

日本IBM グローバルビジネスサービス事業本部 IBM Garage事業部 デベロッパー・リード(マネージング・コンサルタント)。2015年入社。大学時代にベンチャー企業を共同で起業。前職はゲーム会社にて、スマートフォン向けゲーム開発のディレクション・エンジニアとして、ヘルスケア事業にてスマートフォンアプリ開発のディレクションを担当した。

石井 真一(いしい・しんいち)

日本IBM グローバルビジネスサービス事業本部 クラウドネイティブ開発 アドバイザリー・アーキテクト。現・宇宙航空開発機構(JAXA)にて研究に従事した後、2002年に日本IBM入社。IBM製品のDeveloper/Product Managerを経て、クラウドのシステム設計/開発に従事。近年は、クラウドと合わせて、Cognitive、Blockchainを交えたStartup支援の新規サービスの立ち上げを支援している。共著に『システム設計の基礎から実践まで 1からはじめるITアーキテクチャー構築入門』(日経BP社)がある。