テクノロジー・リーダーシップ

DX時代のシステム開発の潮流

記事をシェアする:

DXを進める「ユーザー企業」や、それを支えるシステムを提供する「ベンダー企業」は、システム開発をどのように進めていくのが良いのでしょうか?解説します。

熊林 義彦
著者:熊林 義彦
日本アイ・ビー・エム デジタルサービス株式会社(略称名称:IJDS)イノベーション開発センター事業部

日本IBMが提供しているアセット開発や金融機関をはじめとした、様々な業種のお客様向けシステムの開発に従事。主にアプリケーションをCloudへ移行するプロジェクトを推進。社内DX&Tech推進を担当し、システム開発のDXを推進リードしている。

 

加速していくDX

DX(デジタル・トランスフォーメーション)が広く知れ渡ったのは、2018年9月に経済産業省から発表された DXレポート ~ITシステム「2025年の崖」克服とDXの本格的な展開~ではないでしょうか。 そこでは以下のことが述べられています。

「あらゆる産業において、新たなデジタル技術を使ってこれまでにないビジネス・モデルを展開する新規参入者が登場し、ゲーム・チェンジが起きつつある。 こうした中で、各企業は、競争力維持・強化のために、デジタル・トランスフォーメーションをスピーディーに進めていくことが求められている。」

また、2010年代からは「デジタル技術の進展とIoTの発展により新たな経済発展や社会構造の変革」すなわち「デジタル」を道具にした産業革命(第四次産業革命)が起きているとも言われています。 詳細は 内閣府総務省 の資料を参照ください。

そして、こうした変革によってビジネス・モデルや産業構造を進化させていくことをDXと呼んでいます。

ではDXを進めているユーザー企業ではどのような対応が取られているのでしょうか。システム開発の観点では以下のような傾向が見られます。

  • 内製化を高める
  • ITベンダーとの長期的な契約を見直す
  • 事業構造の変化に合わせて無駄なシステムを削減する

また、 DXレポート2(中間取りまとめ)では、以下のことが述べられています。

  • DXを対等な立場で支援できるベンダー企業とのパートナーシップ構築(+ベンダー企業の変革)
  • 受託開発とは決別し、ユーザー企業のDXを支援・伴走してけん引する新たなベンダー企業への転換の加速(ユーザー企業とベンダー企業の共創の推進)

こういった状況において、DXを進める「ユーザー企業」やそれを支えるシステムを提供する「ベンダー企業」は、システム開発をどのように進めていくのが良いのでしょうか。

効率的なシステム開発に必要な考え方

DXとは一言で言うと「デジタル(IT)のテクノロジーを使用してビジネス・モデルを変えていくこと」です。 では従来のIT化とは何が違うのでしょうか。IT化は従来業務の効率化などを目的として情報化やデジタル化を進めることであり、 DXはそれを手段としてビジネス・モデルを変えていくことです。
ここではそれを実現するためのシステムとして、システム構造に求められるアーキテクチャーについて説明します。システムの構造は大きく分けると、顧客や社会との接点(Engagement)となるシステムつまり、SoE(Systems of Engagement)の領域と、基幹システムのようなSoR(Systems of Record)の領域があります。現在、顧客との接点は多様化しており、特にスピード感が求められているのはSoEの領域です。そこで、SoEとSoRの考え方や、これらをつなぐデジタル・サービスについて、下図の日本アイ・ビー・エム株式会社が発表した「デジタル時代の次世代アーキテクチャー」を用い、具体例を交えて説明します。

デジタル時代の次世代アーキテクチャーの図

デジタル時代の次世代アーキテクチャーの図 (※THINK Business『DX成功の鍵を握るフロントサービスの変革に向けて、IBMが提供する「共創の場」』より転載)

まずシステムのアーキテクチャーにおいてはSoEの領域とSoRの領域を明確に分ける必要があります。

上図ではSoEの領域をフロント・チャネル層、SoRの領域をビジネス・サービス層とデータ・サービス層としています。従来はこれが1つ(モノリシック)になっていたために変更に対して弱いシステムとなっていました。そこでこれらを分離し、疎結合させるためにデジタル・サービス層を用いて接続します。

これによってSoEの領域が多様化してもフロント・チャネル層およびデジタル・サービス層の部分で変更を対応でき、SoRの領域であるビジネス・サービス層は変更せずに済みます。例えば銀行による振込処理を例にあげてみましょう。

振込処理は銀行のATMだけでなく、インターネット・バンキングや電子決済等代行業者など様々なチャネルがあり、媒体もATM、PC、スマートフォンなど様々です。こういった違いはフロント・チャネル層で対応します。次に振込内容(振込金額や振込を実行する人)によって、認証の強度(低額決済は二段階認証を実施しないなど)や手数料の有無(ランクによる手数料無料回数)などが変わってきます。

こういった違いはデジタル・サービス層で吸収します。そして振込内容が確定した段階で振込処理を実施します。これはビジネス・サービス層で実行します。ビジネス・サービス層の処理は、入力チャネルの多様化に寄らず変更する必要はありません。こうすることで変更に強いシステムを作ることができます。上記は振込の例でしたが、他の業務でも考え方は同じです。

また、デジタル・サービス層におけるアプリケーションはマイクロサービス・アーキテクチャの考え方を取り入れ、単純化させた機能を疎結合によって組み合わせていきます。そして個々のアプリケーションはステートレスな作りとすることでスケールアウト可能な拡張性の高いアプリケーションとします。

より柔軟で、スピード感のあるシステム開発の時代へ

DXで重要なのはビジネスのスピードを上げることであり、そのためにはITシステムの提供を早くする(システム開発のリード・タイムを短くする)必要があります。そうは言っても、システム開発のスピードを上げることは簡単ではありません。そこで、従来のシステム開発で実施してきた開発手法の変革や効率化が必要となります。

最初に開発手法について説明します。従来はユーザー企業が要件を作成し、ベンダー企業がその要件に合わせてシステムを構築してきました。しかし、現在はユーザー企業とベンダー企業が共創してアイデアを出し合い、ともに作り上げていく必要があります。特にSoEの領域ではその傾向が顕著です。
そのためのシステム構築における具体的な流れは以下になります。(下の図を参照)

  1. 現状を可視化するために、ビジネス課題の洗い出しや現場ウォークスルーを実施して、必要となるユースケースを作成する。
  2. あるべき姿を明確にし、試作品を作成してビジネスの実現性と期待効果を検討する。
  3. 効果を確認するためのパイロットを実施し、投資対効果を検討する。
  4. 本格対応し、サービスとして提供する。

こういったサイクルを回しながら、機能の充実化を図っていきます。

次にシステム開発における効率化について説明します。

設計/開発/統合テストのフェーズはシステム開発において70-80%を占めています。さらに開発形態もオフショア/ニアショア/在宅勤務と多様化してきています。したがってここの効率化が必要不可欠となります。そこでシステム開発の現場で実施している具体的な効率化の例を以下に上げました。

領域 変革 事例
情報連携、コラボレーション
  • 情報連携、コラボレーションのデジタル化
  • 場所の制約からの開放
  • コラボレーション・ツール(Slack, Microsoft Teams等)やWeb会議ツール(Zoom, Webex等)の活用
  • クラウド・ストレージ(box, OneDrive等)を使用したファイル共有
  • Web会議ツールを活用したペア・プログラミング、モブ・プログラミングの実施
開発の効率化
  • 開発環境のコンテナ化による効率化
  • DevSecOpsツールチェーンによる開発プロセスの自動化
  • プラットフォームに依存しない開発支援ツールの活用(eclipse, VSCode等)
  • CICDによりJenkins等を使用したビルド、テストの自動実行
  • オープンソースの活用
  • テキスト・ベースのドキュメント作成ツールによる成果物の作成(AsciiDoc, PlantUML等)
プロジェクト管理のインテリジェント化
  • AIを活用したインサイト創出やインタラクティブなインタフェースの活用
  • プロジェクト管理のインテリジェント化(課題予知、レポーティングなど)
  • FAQチャットボット
  • 会議議事録、レビュー音声のテキスト化

ここで注意すべき点は、上記で上げたツール類は作業を効率化するための手段であって目的ではないということです。時々、これらのツールを使用すること自体が目的となって作業の効率化が行われていない事例を見ます。効率化をするためには何が必要で、そのためにはどういった手段が有効なのかを考え、その上でツールを選定していくことが重要です。

また、複数のツールを使用する弊害として検討結果の結論が、会議の議事録、成果物のレビュー・コメント、Slack等のコラボレーション・ツールでのディスカッション、といったように複数の箇所へ分散されることがあります。そうなると検討結果の反映漏れが発生するので、必ず結果を1箇所にまとめて記載することが必要です。また、個人間での口頭のディスカッションから導かれた結論も同様に記載が必要です。

変わりつつある開発手法

主な開発手法としてウォーターフォール型やアジャイル型があります。しかし、現在は段階リリースなどお客さまのビジネス展開の要件が多様化し、それに応じて柔軟にこれらの開発手法を組み合わせながら対応していく必要があります。こういった対応は個々のプロジェクト単位だけで実施して終わるのではなく、そこで得た経験や知識を組織全体で共有し、組織全体の知識として身につけたうえで、次のプロジェクトに活かしていくことが重要です。

例として、日本アイ・ビー・エム デジタルサービス株式会社では、自身が経験した効率的な開発手法やツールの紹介/使い方をGitHub上でドキュメント化して共有しています。また、このドキュメントは誰もが更新可能で、常に最新の状態にアップデートされていきます。このように、複数のプロジェクトで実践した方法を共有し、お客さまの要件に合わせて開発手法を変えていくことが、システム開発のスピードをあげるために大切なのです。

DXを加速していくためには、ユーザー企業の変革だけでなく、システムを開発するベンダー企業も、過去に成功した開発手法にとらわれずに、お客さまの要件に合わせて開発手法を変えていくなどの変革が必要です。そうすることでビジネスのスピードを上げることができ、結果としてお客さまのDXを支えることができるようになると考えます。

More stories
2022年3月23日

グローバルへの挑戦〜日本でしか通用しないスキルと決めつけない

時代とともに環境が変化する、日本の金融基幹システム構築を経験した女性技術者は「自分のスキルは日本でしか通用しない」と思いながらも、2019年から2年間の海外勤務を叶えます。子供や家族やキャリアへの悩みを抱えながらも、グロ […]

さらに読む

2021年12月16日

DX時代のシステム開発の潮流

DXを進める「ユーザー企業」や、それを支えるシステムを提供する「ベンダー企業」は、システム開発をどのように進めていくのが良いのでしょうか?解説します。 著者:熊林 義彦 日本アイ・ビー・エム デジタルサービス株式会社(略 […]

さらに読む

2021年11月16日

グローバル企業における研究者の働き方と、研究者を支えるコミュニティー活動

IBM Researchのハイブリッドクラウド研究 IBM Researchは世界の7つの地域に17の研究所があり、密に協業しながら最新技術の研究開発をしています。私はIBM東京基礎研究所で、Hybrid Cloud & […]

さらに読む