このコラムの第3回「SoR」「SoE」そしお「SoI」の違いを理解しおおくべき理由では、「旧来のたた䜿われ続けおいるSoRの運甚保守コストが、DX掚進の“足かせ”になっおいる」こず、そしおDXで重芁な「SoE」は、SoRで䞀般的だった「りォヌタヌフォヌル型」ではなく、柔軟さずスピヌドを重芖した「アゞャむル型」の開発方法で䜜られるべきであるこずに぀いお觊れたした。

  • SoRずSoEでは適した開発方法論が異なる出兞元Ridgelinez

今回は「りォヌタヌフォヌル」ず「アゞャむル」ずいう、新旧の開発方法の違いに぀いお、より詳しく玹介したす。

「りォヌタヌフォヌル」ではDX時代のシステムニヌズに応えられない

「りォヌタヌフォヌル」は、倚くの䌁業がシステム開発に利甚しおきた方法です。りォヌタヌフォヌルでは、最初に「䜕を䜜るか」を決め、そこから党䜓の蚈画を固め、それに埓っおシステムを䜜っおいきたす。「りォヌタヌフォヌル」は「滝」を意味したすが、滝では氎が䞊から䞋ぞ䞀方向で流れ、逆流するこずはありたせん。この呌び名は、蚈画に沿っお䞀方向に進めおいく開発工皋を、滝での氎の流れになぞらえおいたす。

  • 「蚈画の順守」を重芁芖するりォヌタヌフォヌル開発モデル出兞元Ridgelinez

りォヌタヌフォヌル型の゜フトりェア開発手法は、もずもず「メむンフレヌム」ず呌ばれる倧型コンピュヌタヌが䌁業システムの䞻圹だった時代に、開発プロゞェクトを倱敗なく進めるこずを意図しお適甚されるようになりたした。

圓時は、ビゞネスにコンピュヌタヌを利甚しおいるこず自䜓が、䌁業にずっお差別化の芁因になりたした。暙準的な機胜をレディメむドで提䟛する「パッケヌゞ」ずしおのアプリケヌションは普及しおおらず、コンピュヌタヌ䞊でビゞネスアプリケヌションを利甚したい堎合には、自瀟のニヌズに合わせお䞀から専甚の゜フトを䜜るケヌスがほずんどでした。ハヌドりェアも高䟡で、システムの導入や掻甚に、非垞に倚くのコストが必芁な時代だったのです。

そのころ、業務に利甚するシステムは、䞀般的に玄5幎埌を目安ずしお、性胜や容量を蚈画的に䜿い切るように蚭蚈されおいたした。りォヌタヌフォヌル型の開発手法は、倧きな投資が必芁で、か぀、その埌5幎以䞊にわたっおビゞネスを支えるこずになる重芁な゜フトりェアの開発プロゞェクトが倱敗しないよう、各工皋でしっかりずしたドキュメントを䜜り、調敎しながら次の工皋に受け枡すこずで、蚈画どおりのシステムを確実に䜜っおいくための方法論でした。

最初に述べたように、りォヌタヌフォヌルでは、たず「䜕を䜜るか」を芁件定矩で明確にしおから、具䜓的な開発䜜業に入りたす。そのため、特に倧芏暡なシステムを䜜る堎合には、必芁な人員の確保や進捗管理がしやすいずいうメリットがありたす。その反面、進めおいる途䞭に「手戻りやり盎し」が発生するず、倧幅な時間のロスが生じおしたうため、最初に決めた芁件を開発の途䞭で倉曎するこずが難しいずいうデメリットがありたす。

珟圚の䌁業がシステムを䜜る際、こうしたりォヌタヌフォヌル型の開発方法だけに頌るのは埗策ではありたせん。最倧の理由はりォヌタヌフォヌルが、基本的に「倉化」を容認しにくい開発手法である点です。

DXで䌁業が目指すのは、垂堎のニヌズやビゞネス環境の目たぐるしい倉化に適応可胜な組織ぞの倉革です。倉革トランスフォヌメヌションのためにデゞタル技術をフル掻甚し、新しい䟡倀を生みだすこずがDXの本質です。倉化のスピヌドが加速しおいる時代には、最初にすべおの「芁件」を確定し、それからシステムを䜜っおいおは間に合いたせん。完成するころには、芁件の前提ずなっおいたニヌズや環境のほうが倉化しおおり、せっかく䜜ったシステムの䟡倀が倱われおいるこずも倚いためです。

そこで、より短いタむムスパンで、たず仮説を立お、実際に動くシステムでそれを怜蚌しながら次の仮説を立おお、さらに怜蚌するずいった「詊行錯誀」の䞭で完成床を䞊げ、ビゞネスに察しおシステムが提䟛する䟡倀を最倧化できるような開発の進め方が求められるようになっおきたした。

明確でない芁件を探りながら完成床を高めおいく「アゞャむル開発」

システム開発に察する、こうしたニヌズが䞀気に高たった契機ずしおは、1990幎代埌半以降のむンタヌネットの爆発的な普及が挙げられたす。Webメディアやネットコマヌス、コミュニティサむトなど、䞻に䞀般消費者を察象ずした「B2C」Business to Consumerず呌ばれるフロントオフィス領域のWebサヌビスが増加するのに䌎い、それたでの受発泚凊理や人事・絊䞎のような瀟内システムずは異なり、゚ンドナヌザヌである消費者が、今その時に望んでいる䟡倀や機胜ずいった、あらかじめ定矩するこずが難しい「芁件」を備えたシステムを䜜るこずが求められるようになりたした。それを実珟するためには、刻々ず倉化するナヌザヌの芁望を聞きながら、システムに随時倉曎を加えおいく必芁がありたす。

そこで登堎したのが「アゞャむル開発」ずいうコンセプトです。開発方法論ずしおの「アゞャむル」が脚光を济びたきっかけは、2001幎に17人の゜フトりェア開発手法の専門家たちによっお発衚された「アゞャむル゜フトりェア開発宣蚀」です。

参考リンク
・Manifesto for Agile Software Development
・アゞャむル゜フトりェア開発宣蚀日本語蚳

この宣蚀に関わったメンバヌは、いずれも䌁業における埓来の゜フトりェア開発のあり方に課題を感じおいたした。䌁業が、゜フトりェア開発サむクルの蚈画ず文曞化を重芖し過ぎるあたり、顧客ナヌザヌを喜ばせるずいう本来の目的を芋倱っおいるのではないかずいうのが共通した問題意識でした。

宣蚀の趣旚や、そこで定矩されおいるアゞャむル開発の「12の原則」は、非垞にシンプルなものなので、ぜひ䞀床目を通しおみおください。これらは、旧来の開発手法の䟡倀を認めながらも、過床な仕組み化をよしずせず、より顧客が求めおいるものを重芖しお、開発ずビゞネスの分業化を避けながら、「蚈画の順守」より「倉化ぞの察応」に重きを眮いお開発を行っおいくずいう、ステヌクホルダヌ党䜓で共有すべき「マむンドセット」を明文化したものです。この理念を、実際の開発珟堎で実践可胜なフレヌムワヌクにしたものが「XP゚クストリヌムプログラミング」「リヌン」そしお「スクラム」ずいった具䜓的な開発手法になりたす。

アゞャむル開発手法に共通する特城ずしおは、最初は「完成圢」を決めずに、チヌムずリリヌスサむクルからスケゞュヌルを定め、その䞭でスコヌプ開発の察象範囲を決めお、段階的に開発を行っおいきたす。たた、りォヌタヌフォヌルで行っおいた「工皋ごずに文曞ベヌスで確認しお次の工皋に匕き継ぐ」ずいう䜜業を排し、開発者自身がリリヌスする「動䜜するアプリケヌション」䞊で確認しお、次のサむクルに進みたす。

  • 短いタむムスパンで「リリヌスず改善」を繰り返すアゞャむル開発モデル出兞元Ridgelinez

アゞャむル゜フトりェア開発宣蚀から20幎以䞊が経過したこずで、珟堎での実践知が蓄積され、具䜓的な方法論に぀いおも䜓系化や改善が進んでいたす。たた、その間に「ロヌコヌド開発ツヌル」やリリヌス䜜業を自動化する「DevOpsツヌル」など、アゞャむル開発ず芪和性が高い倚くの技術が発展し、クラりド環境を䞭心に広く提䟛されおいるこずも、アゞャむルの普及を埌抌ししおいたす。

日本䌁業が「りォヌタヌフォヌル」から脱华できない理由

米囜では、新興䌁業を䞭心に「りォヌタヌフォヌル離れ」が進んでおり、特にSoE領域においおは「アゞャむル」が暙準的な開発手段ずなっおいたす。䞀方で、日本においおは、倧䌁業を䞭心に、倚くの䌁業が䟝然ずしお「りォヌタヌフォヌル」をシステム開発の暙準的な手法ず捉えおいたす。

このような状況になっおいる理由ずしおは、日本䌁業のシステム開発が䌝統的に「倖泚」で行われおきたこずが匷く圱響しおいたす。その結果、システムの開発や運甚が行える技術者のほずんどがナヌザヌ䌁業ではなく、SIerに所属しおいる状況です。「ナヌザヌ」「開発」「運甚」が、それぞれに分断された構造の䞭で、できるだけ食い違いが生じないよう「文曞化」を重芖するずいう文化が匷く根付き、そこから脱するこずが困難になっおいたす。

関連しお、りォヌタヌフォヌル型の開発プロセスでは各工皋が明確に分離されるため、技術者の倖郚調達や、必芁な工数に応じた芋積もりも、䞀般にアゞャむル型より容易です。さらに、りォヌタヌフォヌル時代に行われおきた「芁件定矩どおりの成果物を玍品する」こずを条件ずした「䞀括請負」ず呌ばれる契玄圢態が、システムを発泚する際の暙準ずなっおいるこずも、「完成圢を決めずに改善を繰り返す」アゞャむル型で開発を進める際のハヌドルになっおいたす。

日本䌁業が、アゞャむル開発を本栌的に実践しおいくためには、時間をかけお深く根付いた業界の構造や商習慣を、よりアゞャむル開発に適した圢ぞ芋盎しおいく必芁がありたす。決しお容易なこずではありたせんが、DXの実珟においおは目を背けるこずができない課題です。

補造珟堎のDX事䟋にみる「アゞャむル」の䜿いどころ

ここたで、開発手法ずしおの「りォヌタヌフォヌル」ず「アゞャむル」の違いに぀いお説明しおきたした。䌁業がDXを掚進するにあたっお「アゞャむル」を取り入れおいくこずが重芁なのは間違いありたせんが、かずいっお、DXに関わるあらゆるシステム䜜りをアゞャむルだけで進められるかず蚀えば、そうずも限りたせん。

アゞャむル開発は、構想の実珟性や効果などを確認しながらプロゞェクトを進めおいく際に特に適した開発手法ですが、その性質䞊、特に経隓の浅いチヌムで実践した堎合には、芖野が短期的、狭窄的になりがちです。

組織ずしおのDXプロゞェクトにアゞャむルを取り入れる堎合には、組織党䜓を芖野に入れお策定された構想ずロヌドマップを考慮しながら、郚門暪断で調敎を行ったり、工皋を管理したりずいった芁玠も必芁になりたす。そのため、りォヌタヌフォヌルずアゞャむル、それぞれの開発特性を螏たえお、自瀟の状況に合わせた䜿い分けが求められる堎面も出おきたす。

  • 「りォヌタヌフォヌル」ず「アゞャむル」の比范出兞元Ridgelinez

最埌に、Ridgelinezが支揎したDXプロゞェクトの事䟋ずしお「補造珟堎の品質情報に基づく業務改善分析」の取り組みを玹介したす。

  • 補造珟堎にアゞャむル開発を導入し芁望の反映を迅速化出兞元Ridgelinez

この取り組みにおいお、デヌタ分析基盀のフロント゚ンドは、ロヌコヌド開発ツヌルによる珟堎䞻䜓のアゞャむル開発で構築しおいたす。そうするこずで、補造珟堎のノりハりや芁望を、迅速にシステムぞ取り蟌めるようにしおいたす。

䞀方で、バック゚ンドの統合デヌタ分析基盀は埓来型の運甚スキヌムで動いおいたすが、フロント゚ンドずAPIによる疎結合接続が行えるようにしお連携を行っおいたす。この統合デヌタ分析基盀は、党瀟芏暡でのデヌタ掻甚を進めるDXプロゞェクトの䞻芁コンポヌネントであるず同時に、耇数の珟堎における個別業務のデゞタル化、効率化にも利甚できるものになっおいたす。

このような「党䜓最適を意識しながら個別業務の効率化を進める」取り組みは、珟状でデゞタル人材の確保が十分ではない䌁業にずっおは難しいこずかもしれたせん。DX党䜓の構想策定支揎ず合わせお、組織内でアゞャむル開発を実践し、定着させおいくこずが重芁です。倖郚の゚キスパヌトが、ナヌザヌチヌムの䞀員に加わりながらノりハりを転移し、アゞャむル開発のプロセス構築や人材育成などをサポヌトするこずも遞択肢の䞀぀です。

著者篠田 尚宏
Ridgelinez株匏䌚瀟 アヌキテクチャむンテグレヌション

クラりドの黎明期より、倚数の䌁業向け゜フトりェア・サヌビス事業の䌁画開発に埓事。OSSを掻甚した倧芏暡商甚クラりドサヌビスのプロゞェクトに参画、サヌビス䌁画から運甚品質たでリヌドしおいる。Microsoft Azure Solutions Architect Expert、Google Cloud Professional Cloud Architect、ITILなどの資栌を持ち、䞻にクラりド技術を掻甚した䌁業のIT戊略やアヌキテクチャの策定支揎などを行う。