DXを推進するシステム開発の “ABCD” とは?
2022.6.9
|
|---|
<執筆者> 佐野 弘明 Sano Hiroaki
システム基盤技術本部 技術3部 部長
2003年新卒で入社以来、運用分野を中心に担当。
2年間の東京勤務を経て、以降は西日本のお客様に対する提案/構築支援に従事。
近年はセミナーやユーザー会等、各種イベントの企画/運営も担当。
週末は5歳児と1歳児の育成に従事。
DXを推進するシステム開発に求められること
こんにちは。システム基盤技術本部の佐野です。
DX(デジタルトランスフォーメーション)、すなわち、「デジタル技術を活用したビジネス変革」を実現するために、システム開発ではどのようなことが求められるでしょうか?
経済産業省のDXレポートでは、以下のように述べられています。
DXレポート ~ITシステム「2025年の崖」克服とDXの本格的な展開~
“あらゆる産業において、新たなデジタル技術を利用してこれまでにないビジネス・モデルを展開する新規参入者が登場し、
ゲームチェンジが起きつつある。こうした中で、各企業は、競争力維持・強化のために、デジタルトランスフォーメーション
(DX:Digital Transformation)を
スピーディーに
進めていくことが求められている。”
“DX を実行していくに当たっては、データを収集・蓄積・処理する IT システムが、環境変化、経営・事業の変化に対し、
柔軟に、かつスピーディーに
対応できることが必要である。”
出典:DXレポート ~ITシステム「2025年の崖」の克服とDXの本格的な展開~
https://www.meti.go.jp/shingikai/mono_info_service/digital_transformation/pdf/20180907_03.pdf
(2022年6月9日時点の情報)
ここに抜粋した以上に、何度も同じ単語が出てくるのですが、DXにおいては変化に応じて「柔軟に」「スピーディーに」システム開発をすることが重要となります。しかし、柔軟にスピーディーにシステム開発ができたとしても、「品質」が悪ければ意味がありません。
そこで、本日は、
「柔軟さ」「スピード」「高品質」
を兼ね備えたシステム開発を実現するためのポイントを考えていきたいと思います。
DXを推進するシステム開発に必要なABCDとは
「柔軟さ」「スピード」「高品質」を実現するには、4つのポイントがあります。
それらを『DXを推進するシステム開発に必要なABCD』と命名してまとめてみましたので、順に確認していきましょう。
A.アジャイル開発
柔軟に、スピーディーに開発する手法といえば、アジャイル開発 ですよね。
優先順位が高い機能から開発を進め、短期間で本番リリース、フィードバックを得て軌道修正や改善を進めていく、という手法です。
では、なぜDX推進にアジャイル開発が必要なのでしょうか?
言わずもがなですが、全ての開発プロジェクトにおいて、アジャイル開発が適している訳ではありません。
アジャイル開発が適しているのは
「機敏さ」
が求められるケースです。
「いやいや、それはいつでも必要でしょ」と思うかもしれませんが、「機敏さ」よりも「計画通り確実に完成させていく」ことの方が重要な場合もあります。例えば、基幹システムのように「このシステムが止まると企業活動も止まってしまう」ようなシステムは、「安定性」が求められるので、従来型の「ウォーターフォール開発」が適しているでしょう。
一方、新規ビジネスへのチャレンジのように「やってみないとわからない」「反応次第でどんどん改善していく必要がある」システムでは、「安定性」よりも「機敏さ」が求められます。そもそも計画を立てること自体が難しいこともあり、「アジャイル開発」が適しているといえます。
アジャイル開発を取り入れることで、DXが求める「柔軟さ」「スピード」を得ることができるでしょう。
B.BX(ビジネストランスフォーメーション)
DXはそれ自体が目的ではありません。本来の目的は「BX = ビジネス変革による新たな体験価値の提供」です。
単に、効率化や業務改善をすれば終わりではなく、ビジネスモデルの変革や、ビジネスを行うための基盤(制度、ルール、インフラなど)を整えることが必要です。
その目的を達成するためには、
・しっかりと「ビジョン」を描き
・ビジョンを実現するための「設計図」を描き
・推進リーダーが組織を率いて実行する「シナリオ」を描く
ことが重要です。
本来の目的であるBXを意識することで、よりスムーズにDXを推進することができるでしょう。
C.CI/CD(継続的インテグレーション/継続的デリバリー)
CI/CDとは、ソフトウェア開発を高速化するため、ビルドやインテグレート、テストなどを自動化し、すぐに本番環境にリリース可能な状態にする手法です。
これには、「CI」と「CD」という2つの要素があります。
「
CI(継続的インテグレーション)
」は、コードに変更があると、ビルドからテストまで自動化する手法です。
大量にコードを変更後、テストをしてバグが発見されても、原因追及は困難を極めます。
そこで、コードを変更するたびに、ビルドからテストまでを自動で実行します。
そうすることで、すぐに問題を発見し、手戻りを最小限に抑え、開発工数を削減することができます。
「
CD(継続的デリバリー)
」は、テストをパスしたソフトウェアを、自動で実稼働環境にリリースできる状態にする手法です。
本番環境の構築や最終動作確認など、リリースするプロセスを自動化することで、成果物をいち早く提供し続けることができます。
特に、アジャイル開発の場合、短期間で何度もリリースを行います。
その度にテストを行うと工数が増加してしまうため、普段以上にテストの自動化が重要となります。
ウォーターフォール開発とアジャイル開発の比較
|
|
CI/CDを活用すれば、DXが求める「柔軟さ」「スピード」に加え、テストの自動化による「高品質」も担保できるでしょう。
D.DevOps
DevOpsとは、開発者と運用担当者が協力してサービス提供を行うための考え方や仕組みのことです。
ここで注目してもらいたいのは、単なる「開発者と運用担当者の協力」ではなく、「ビジネスの発展/ビジネス価値提供のスピードを加速させるための組織活動」である点です。
開発者と運用担当者が「共通の目標」を持ち、互いの立場の違いを理解した上で「コミュニケーション」と「コラボレーション」で解決し、学習する組織が求められます。
DevOpsを取り入れれば、DXが求める「スピード」に加え、更なる「ビジネス変革」が実現できるのではないでしょうか。
「アジャイル」「CI/CD」「DevOps」の違い
ご紹介した「アジャイル」「CI/CD」「DevOps」は、DX推進について調べていると頻出するワードです。
記事によっては同じような意味に捉えられ、違いが分かりにくい場合もあるでしょう。
そこで、この機会に、それぞれのワードについて整理しておきます。
◆アジャイル
不確実性が高く、スピード感が求められるビジネス環境において、
「使われない機能をじっくり作る」よりも「必要な機能を素早く作って成長させていく」という考え方、または開発手法。
◆CI/CD(継続的インテグレーション/継続的デリバリー)
ビルド、テスト、リリースのプロセスを自動化し、ソフトウェア開発を高速化することで、
顧客にアプリケーションを提供する頻度を高める手法。
◆DevOps
開発者と運用担当者が協力してスピーディーにソフトウェア開発を行う考え方、または開発手法。
広義で捉えると組織のあり方。
広義では「開発手法」としてまとめられますが、細かくみていくと、それぞれ違いがあり、それぞれ大切な手法/考え方であることが分かります。
さいごに
私が提唱する「DXを推進するシステム開発に必要なABCD」はいかがでしたか?
皆さまには、
・「ビジネス変革による新たな体験価値の提供(=
BX
)」という目的のために、
・「価値を提供するスピードを加速させるための組織(=
DevOps
)」を構成し、
・「必要な機能を素早く作る柔軟な開発(=
アジャイル
)」方法と、
・「ビルド、テスト、リリースのプロセスを自動化(=
CI/CD
)」する仕組みで、
DXを推進していただければと思います。
ただ、これらを実現するのは簡単ではありません。
そこで、アシストでは『アジャイル開発スタートアップソリューション』を提供しています。
①開発プロセスを変えずに、適切なツールを利用することで開発を自動化・効率化する
②サービスを高速リリースできる技術を土台として、段階的かつ確実にアジャイルを実現する
ためのソリューションです。
もし、「何から始めたら良いか分からない」「取り組んではいるけどうまく進められていない」などお困りであれば、お気軽にご相談ください。
参考
本ページの内容やアシスト西日本について何かございましたら、お気軽にお問い合わせください。










