モダンなソフトウェアとは何か。それを開発するチームには何が必要なのか。今そして今後のソフトウェア開発に求められる条件を紹介する。
モダンなソフトウェア開発は、データ駆動型のビッグデータ分析を取り入れ、AI(人工知能)を内蔵すると論じることもできる。主にサービス中心でWeb拡張可能なものと分類する考え方もある。そうした開発者は、サービスバックボーンを横断して導入できるコードを開発する。再利用可能なコンポーネントやフレームワークの構築に力を入れるソフトウェア開発者もいる。
企業向けソフトウェア市場には自らをアプリケーションモダナイズのスペシャリストと定義する専門分野がある。多くの場合、この分野のツールプロバイダーはレガシーアプリケーションやメインフレーム、クラウド以前のアプリケーションからの移行に重点を置き、マイクロサービスや仮想マシン、コンテナ、「Kubernetes」を推進している。
Volterraはマルチクラウドやエッジを横断してアプリケーションとデータの導入、接続、セキュリティ対策、運用を行う分散型クラウドプラットフォームを提供する。同社CEOで創業者のアンクール・シングラ氏は、マイクロサービスがアプリケーション開発の直近の未来に果たす役割はますます増大するだろうと話す。同氏はKubernetesの急激な普及を理由として、マイクロサービスは2020年以降、一層主流化すると予測した。
「マイクロサービスはKubernetesのDNAの一部であり、Kubernetesを使ってアプリケーションを開発・導入するための主な方法だ。Kubernetesの台頭に伴い、IT企業はそれを導入できるようにするためのオープンソースツールキットやフレームワークを公開している」
シングラ氏は、例としてMicrosoftが最近立ち上げたオープンソースプロジェクト「Dapr」を挙げた。MicrosoftはDaprを移植可能なイベント駆動型ランタイムと形容する。Daprはクラウドとエッジで運用可能で、多様な言語と開発フレームワークに対応する耐久性の高いマイクロサービスアプリケーションを簡単に構築できる。
オープンソースWebサーバ企業のNginxによると、モダンなアプリケーションは「React」(JavaScriptライブラリ)をベースとするユーザーインタフェースであろうと「Android」や「iOS」で実行されるモバイルアプリであろうと、APIを介してバックエンドアプリケーションに接続するアプリケーションであろうと、マルチクライアントに対応する。
「モダンなアプリケーションは、任意のクライアントでデータやサービスを利用できることが前提とされる」。Nginxの最高アーキテクト兼マイクロサービスエンジニアリング担当上級ディレクターのクリス・ステットソン氏はそう語る。「モダンなアプリケーションは、データとサービスにアクセスするためのAPIを提供する。このAPIは一貫性があり、そのアプリケーションにアクセスするクライアント専用ではない。GUIやCLI経由で利用可能な全機能へのアクセスを提供する」
Webスケールビジネスが新しいソフトウェアを原動力とする製品やサービスを開発できる能力に目を向けると、モダンなソフトウェア開発が高度な実験や反復によって特徴付けられることが分かる。これはソフトウェア開発の過程で顧客やユーザーのフィードバックを増やす必要があることを意味し、UX(ユーザーエクスペリエンス)に対する感度をDNAに組み込んでアプリケーションを開発していることを示唆する。
モダンなソフトウェア開発の目標は、価値を実現するまでの時間にますますフォーカスが絞られつつある。IBM Cloud Pak for Applicationsのクラウドネイティブソリューション担当主席アーキテクトを務めるクリス・ベイリー氏によると、ソフトウェアを迅速に開発できる能力だけでなく、ソフトウェアが確実にユーザーや企業に真の価値をもたらすことが重視される。
ベイリー氏の考えでは、ソフトウェア開発チームは自己完結性を強め、他チームへの引き継ぎやスケジュール調整を減らす必要がある。ユーザーのニーズや品質条件を満たすソフトウェアを基本とするために、行動駆動型開発やテスト駆動型開発を採用しなければならない。
ベイリー氏によると、ソフトウェア開発チームは継続的インテグレーションを活用して速度を速め、開発プロセスの一貫として品質チェックを徹底させている。リスクを制限し、耐久性を継続的に検証して徹底させるため、カナリアリリース(訳注)のような継続的デリバリーを利用する傾向もある。
訳注:一部のユーザー向けにリリースして問題がないかどうか確認してから全体に展開すること。
ソフトウェア開発は、変更管理や幅広い人材の多様な考え方を取り入れることと関係する。ソフトウェアが汎用(はんよう)的なビジネス機能を果たすために開発されていた時代は、全てが単一のモノリシックアプリケーションの中にあって、中央のシステムで動作し、ダム端末経由でしかアクセスできなかった。現在では高度にコンポーネント化され、個々の部品が別々のサーバやコンテナで実行されたり、複数のクラウドをまたいで分割されたりすることさえある。
フロントエンドアプリケーションはどんな端末でも動作する必要があるだけでなく、エンドユーザーを引き付けるユーザーインタフェースの創出が奨励されている。ユーザーから見ると、フロントエンドアプリケーションもバックエンドアプリケーションも優れたユーザーエクスペリエンスを実現する必要がある。
どんな企業でも最高の開発ツールやサービスを組み立てることは可能だが、それが必ずしも成功を保証するとは限らない。そう語るのはDomoの最高製品責任者兼エンジニアリング担当執行バイスプレジデントのキャサリン・ウォン氏。Domoはクラウドベースのビジネスインテリジェンスツールやデータ仮想化、データインテグレーションを専門とする。
「事がそれほど単純ならば、成功する新興企業はもっとずっと多いはずだ」とウォン氏は言う。当然ながら、ソフトウェアの構築と拡張が困難な理由はいくらでもある。
「ソフトウェア開発はチームスポーツだ。われわれのチームには長い間、エンジニアや専門分野のアーキテクト、プロダクトマネジャー、品質保証担当、デザイナー、プロジェクトマネジャー、技術ライターなど、はっきりと定義された役割があった。それらは今も有効だが、思考と経験の多様性をどう実現するか、さらには共感を高めてチーム内のコミュニケーションを向上させるための横断的トレーニングをどう行うかが、他のどんな職種よりも重要性を増している」(ウォン氏)
Copyright © ITmedia, Inc. All Rights Reserved.
DXが進み、レガシーシステムからの脱却が喫緊の課題となっている今。「ERP×ノーコードツール」のアプローチで基幹システムの刷新に取り組む企業が増えている。そのアプローチを推進するに当たってのポイントを解説する。
DXの本質は、デジタル技術を駆使して変化に適応する能力を身につけることにある。その手段の1つとして注目を集めているのが、ローコード/ノーコード開発ツールだ。京王グループなどの事例とともに、その特徴やメリットを紹介する。
DX人材の重要性が高まる中、ノーコードツールの活用によって業務改革と人材育成を両立しようとする動きが活発化している。年間約780時間の工数削減を実現した京セラをはじめとする5社の事例を基に、その実態を探る。
急速に進化するデジタル技術は、製造業などのものづくりの現場にもさまざまな恩恵をもたらしている。しかし、設備点検業務や棚卸業務などの立ち仕事や移動が多い現場では、いまだにアナログ業務が残存し、効率化の妨げとなっているという。
あらゆる業界でDXの重要性が増しているが、工場や倉庫の中にはデジタル化が後回しにされている隙間業務が多数ある。その理由を明らかにした上で、それらの業務をモバイルアプリでデジタル化し、現場DXを推進する9社の事例を紹介する。
なぜ、「kintone」が大企業の「Fit to Standard」に効果的なのか (2025/3/7)
ノーコードは、負の遺産であるアナログ業務をなくせるのか (2024/11/12)
手間もコストもかかるGUIのテストはどうすれば自動化できるのか (2024/6/4)
「システム内製化」が失敗しがちなのはなぜ? “従来のやり方”では駄目な理由 (2024/5/15)
金融機関のモダナイゼーション 最適解に導くには (2024/3/29)
いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。
「マーケティングオートメーション」 国内売れ筋TOP10(2025年5月)
今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。
「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年4月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。
「ECプラットフォーム」売れ筋TOP10(2025年4月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。