エンジニアリングの生産性Feb 25, 20245 分 READ

デジタルトランスフォーメーションの基盤となるCI/CD

舟木 将彦

デベロッパー アドボケイト

DXとCICD

デジタルトランスフォーメーションに対する3つの態度

筆者は、2013年から18年の5年間、SAPでCustomer Innovation Principalとして、数多くのお客様とデザイン思考をベースとしてワークショップ~ソリューション実装の間を、ワークショップの企画、運営、ファシリテーションから、ソリューションのプロトタイピングに至るまで携わってきました。

その後、2018年から20年はMicrosoftにてChief Digital Advisorとして、クラウド+AI+VR/MRでの協業を支援してきました。両社において私がお付き合いしてきたお客様を見て、変わらない/変われないとおっしゃるお客様には、大きく3つのタイプがあるように思います。

  1. 何も始められない
  2. 「唯一解」を求めて調査・計画に時間をかける
  3. 世の中や社内の重複を気にせず、何かを作り始める

ここでは、計画先行にせよ、開発先行にせよ、何かを始めてはみるものの、歩みが止まってしまう理由と止まらないようにするための方法をご紹介します。

DXアプローチのストッパー ~ ゴール設定の欠如

イノベーションやDXの号令がかかると、各社で起こってしまう残念なことが2つあります。

  1. 先進的な事例を集める、適用可能性をPoC(概念実証)するが、その先に進まない
  2. 多様な人たちを集め、多様な観点からワークショップを実施しても、一周目のプロトタイピング開発で終わってしまう(Design Thinking Workshop, アイデアソン, ハッカソン等)

歩みが止まってしまう第一の原因は、ゴールが未設定であることにあります。つまり、

  • 何を達成したら事業化に向けて継続する(人や予算をつける)というKPIが定義されていない

ために、続けるのか、辞めるのかを決められない、イコール現状維持(続けない)で終わってしまう点が挙げられます。

DXアプローチのストッパー ~ 継続性を支える仕組みの欠如

続けるかどうかの基準設定がないこと自体は問題ではあるものの、検討している新規事業に社員を引き付ける力があれば、続けるか/辞めるかという議論を飛び越えて、どうやって続けていくのかという議論に移る場合も少なくありません。

この場合、どんなに優れたPoCの結果やプロトタイピング、あるいはMVP(Minimu Viable Product: 顧客に価値を提供できる最小限の製品)が得られたとしても、さらに2周目、3周目で質を高めていく(市場のニーズに近づけていく)必要があります。

さて、皆様の組織や会社には、やりたいと思った人、目標達成に必要なスキルがある人が「手を挙げる仕組み」「引き継ぐ仕組み」があるでしょうか? ここでいう仕組みとは、一つは人事的な仕組み、もう一つはプロセス的な仕組みを指しています。

継続するビジネスを支えるソフトウェア開発の標準化

ハードウェアであれ、サービスであれ、ソフトウェアであれ、おもてなしといった人間的なアプローチさえ、「powered by 常にバージョンアップにより成長・変化を止めないソフトウェア」である、そういう状態がデジタルトランスフォーメーションである、とするならば、ソフトウェア開発のプロセスはどのようなものになるでしょう?

ここにDevOpsという開発プロセスでしばしば言及される8つのステップを挙げています。

ソフトウェア開発の標準化

ここではDevOpsそのものについては深く説明しませんが、見ていただきたいのは、

  • プラン(誰に何を提供する)やコード(プログラムをはじめとする提供の仕組みづくり)は人が携わる必要がある(自動化できない)のに対し、
  • ビルド(コンピュータで実行可能な形にする)、テスト(ビジネスゴールを達成するために意図通り動作するのかを確認)、リリース(必要なしくみのとりまとめ)、デプロイ(とりまとめた仕組みをお客様に提供できるように展開)に関しては、自動化が可能であり、

もっと言えば、

  • 新たなプラン~コードが出てくる度に、自動的に実行(検証)されることで、「いつでもお客様にお届けできる状態」にしておく

ことができるわけです。

プログラムを開発する立場から言えば、何らかの途中まで開発が進んだプロジェクトに対して、継続的インテグレーション(CI: Continuous Integration)、継続的デプロイメント(CD: Continuous Deployment)の仕組みが整備されていれば、開発環境や動作検証環境の整備に時間をかける必要がありません。つまり、いつでも開発メンバーとして参加、活躍を始めることができます。

また、品質面では、書いたコードが常に(自動的に)テストされた状態にあることが、仕組みとして保証されます。皆様の業界では、上流からの品質の作りこみ、フロントローディングと呼ばれるようなことを、ソフトウェア開発業界では、シフトレフトと呼びますが、こちらに関しては、また稿を改めることにしましょう。

「継続」という言葉でお伝えしたかったこと

継続的インテグレーション、継続的デプロイメントという言葉自体は、テクノロジー用語ではありますが、ここでいっている「継続的」の「C」は、、かつて、BCP(Business Continuity Plan: 事業継続計画)の重要性が叫ばれた際にも強調された「C」でもあるのです。

CICDイラスト

デジタルトランスフォーメーションを成功させるための鍵として「ソフトウェア開発の内製化」がしばしば言及されますが、そのソフトウェア開発の生産性を高めるものは何でしょうか?

PC環境や机、椅子といった作業環境への投資ももちろん重要ですが、継続性+自動化を支えるツールにも投資が必要であることを言及して、本稿を終えることにします。

自動化支援ツールの導入メリット

なお、継続的インテグレーション(CI)、継続的デプロイメント(CD)については、「三匹のこぶたとCircleCIで学ぶCI/CD」と題した11分のビデオでまとめました。こちらもぜひ、ご覧くださいませ。

クリップボードにコピー