エンジニアリングFeb 29, 20245 分 READ

社内外のコラボレーションを加速するためのCI/CD

舟木 将彦

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

CI/CDで変わる社内外のコラボ

継続するビジネスを支えるソフトウェア

筆者のブログエントリ「デジタルトランスフォーメーションの基盤となる CI/CD」では、CI(継続的インテグレーション)や CD(継続的デプロイメント)といった仕組みが提供できる価値として、継続するビジネスを支えるソフトウェア開発を標準化できることを指摘しました。CI, CD ってなんだったけ、という方は是非、当該エントリを見てください。

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

簡単にまとめると、ソフトウェアの開発や運用における8つのステップのうち、

  • プラン、コードの2ステップは、

    • 新たな機能を提供したり、既存の問題を修正するという「変える」ことが提供価値であり、人にしかできない
  • 運用、監視の2ステップは、

    • いつでも使いたい時に使えるように「常に、変わらず」サービスを利用可能な状態で提供しつづけることが提供価値であり、(正常時はともかく、非正常時を考えると)人にしかできない
  • ビルド、テスト、リリース、デプロイの4ステップは、次の2つの自動化を導入することで、同じことをやる面倒臭さや、同じことをお願いする遠慮から遠く離れる

    • 手順を定義し、その定義通りに自動実行する仕組み
    • 問題が発生した時にはそこで停止する(勝手に先に進めない)仕組み

というお話をさせていただきました。その中で、すでにノウハウや知見が多く公開、共有されている CircleCI のような標準的なツールを活用することで、「いつでも開発メンバーとして参加、活躍を始めることができる」ことを指摘しました。

ビジネスの成長に合わせていつでも参加可能

繰り返されるスプリント(開発プロセス)の中で、「いつでも参加、活躍を始めることができる」のは事実ですが、これをビジネスの成長という少し大きな括りの中で捉えてみましょう。

デジタル化によって変わるビジネス

例えば、「スマホを充電したい」という課題に対して、「コンセントが使える場所を地図の上に重ね合わせて、スマホ上で表示する」のは、扱うデータはコンセントの使える場所の住所や名称などであり、実装がクイックにできると同時に、マネもクイックにできてしまう(競争優位性に欠ける)という問題があります。

これが、コンセントを貸すのではなく、「コンセントを使って充電したバッテリーを貸す」のであれば、扱うデータは利用者情報や、バッテリーの場所や現在の利用者、バッテリーの貸出回数(本来的には充電回数)などに広がり、また、ソフトウェアだけではなく、バッテリーや充電設備を用意しておくという点でも、参入障壁はより高まる一方、ある程度の資金であったり、店舗を回って設置のお願いをする必要があるなど、マネはしづらくなります。

さらに、単にバッテリーを店舗のコンセントで充電しておくだけでなく、「太陽光発電や風力発電など再生可能エネルギーで充電する」のであれば、扱うデータは発電効率やコスト(天気)、需給にまで及び、さらにマネはしづらくなります。その一方、これまでの消費者向け(B2C)バッテリーレンタルに止まらず、企業向けに(B2B)社員のスマホ電力の充電を一括で請け負うことで、CO2 排出枠取引につながることも期待できます。

「いつでも開発メンバーとして参加、活躍を始めることができる」というのは、一つには、

  • アイデア出しやプロトタイプの実装の時点から、資料やソースコード、テストコードは共有しておき、ビルドやテストなどを自動化することで、「開発メンバーの入れ替わり」に対する継続性、ロバスト性を担保する

という側面はありますが、開発メンバーの話だけに止まらず、

  • アイデアがビジネスとして成長し、成長に合わせて、そこに関わる社内外のステークホルダーが入れ替わっていっても、たすきを繋げ続けながら継続して進化できる

ということに他なりません。

ちなみに、アイデアソンやハッカソンでアイデア倒れに終わってしまう、ビジネス化しない理由も同様で、ベンチャーであればできるだけ左をクイックに進められることが価値であり、大企業であればできるだけ右を時間がかかっても確実に法令や安全性、ダイバーシティーを踏まえて進められることが価値になります。

逆の取り組みをしてしまうと、「時間ばかりかかって、何も形にならない」結果や「拙速に進めた結果、何も実現できない」結果になってしまうのです。

社内外のコラボレーションを加速する

さて、Dev(開発)と Ops(運用)が、同じゴール(顧客価値の実現)をそれぞれの立場で、かつ役割と責任がオーバーラップする文化や形を DevOps と呼ぶのであれば、さらに Sec(セキュリティ)も加わって DevSecOps など、さまざまな DevOps という言葉を目にします。

あるビジネスやゴールのために、そこに関わるすべての人(ステークホルダー)が DevOps の には入りえますが、それら全ての人が議論する上で共通の基盤となるのが、常にデプロイ可能な形でリリースされたソフトウェアや、ソフトウェアを含む「もの」や「サービス」です。

法務の専門家やインクルーシブデザインの専門家、開発パートナー、UI の翻訳担当者、地域ごとの仕向け担当者などなどが開発フェーズの最後の最後になって確認した際に、多大な後戻りを必要とするような問題点を指摘してしまうことのないような「仕組み」が必要です。

常に「もの」や「サービス」を使いながら、自らが DevOps の一員として建設的にレビューを重ね、コラボレーションするような働き方が根付き、その結果、お客様への価値のお届けを加速できるよう、CircleCI を活用した継続的インテグレーション、継続的デプロイメントの導入をご検討ください。

クリップボードにコピー