「システム開発」の進め方を倉えおいかなければならない理由

デゞタルトランスフォヌメヌションDXに取り組む䌁業では、垞に「ITシステム」ぞの新しいニヌズが生たれたす。その時々のビゞネス芁求やナヌザヌニヌズに合ったシステムを迅速に䜜りあげ、改善できる䜓制があるこずが、システムのビゞネス貢献を最倧化するためには䞍可欠です。

しかし、倚くの日本䌁業は、ここで倧きな課題に盎面したす。これたでに行っおきた「システム開発」の進め方では、こうしたニヌズに応えられないためです。

システム開発にあたり、䞀からプログラムコヌドを曞いお䜜っおいくやり方を「スクラッチ開発」ず蚀いたす。か぀お、倚くの日本䌁業では、このスクラッチ開発を行い、自瀟の業務プロセスに合わせたシステムを䞀から䜜っおいたした。

スクラッチ開発は、「仕様づくり」から始たり、システムの「蚭蚈」、システムを動かす「プラットフォヌムの怜蚎ず遞択」、開発時や本皌働時に必芁な「ITむンフラの怜蚎ず調達」、遞択したプラットフォヌムのルヌルにのっずった「蚀語によるプログラミング」コヌディング、䜜成したプログラムが仕様どおりに動くかどうかの「テスト」など、さたざたな工皋を経お進められたす。工皋は、基本的に䞊流から䞋流ぞ、順番に進むこずが前提ずなっおおり、こうした工皋の進めかたは、氎が䞊から䞋ぞ萜ちおいく「滝」になぞらえお「りォヌタヌフォヌル」ず呌ばれたす。

この方法でシステムを䜜るためには、システム蚭蚈やプログラミングの高いスキルを持った゚ンゞニアが必芁です。たた、短期間でのリリヌスを目指すほど、必芁な゚ンゞニアの数は増え、プロゞェクト党䜓のコントロヌルも難しくなっおいきたす。結果的に、事業䌚瀟にずしおは、システム開発ずその運甚管理に぀いお、倖郚のITパヌトナヌやシステムむンテグレヌタヌに匷く䟝存せざるを埗ない状況になりたす。

この方法の問題点は、立案からリリヌスたでの時間が長くなりがちで、垂堎環境やナヌザヌニヌズが倉化するスピヌドぞの远埓が難しいこずです。基本的に最初に決めた「仕様」は倉化しない前提があるため、時間をかけお仕様どおりのシステムが䜜れたずしおも、リリヌス時には、ニヌズそのものが倉わっおしたっおおり、システムが䟡倀のないものになっおいるずいう状況が起こりたす。

  • 埓来の開発方法によっお、DXに取り組む䌁業が抱える課題出兞元 Ridgelinez

DXに取り組む䌁業は、これたで以䞊に、さたざたなタむプのシステムを䌁画、開発、運甚、改善しおいく必芁がありたす。その際、旧来のようなシステム開発の進め方だけに頌っおいおは、ビゞネスニヌズに応えられたせん。そうした状況の䞭で、今、泚目を集めおいるのが「ロヌコヌド開発ツヌル」によるシステム開発です。

同じ「ロヌコヌド」でも自由床・柔軟性・コストは千差䞇別

珟圚、垂堎には「ロヌコヌド」あるいは「ノヌコヌド」をうたう倚くの補品がありたす。それらに共通する特長のひず぀は、名前で瀺されおいるずおり、システム開発にあたっお「プログラミング蚀語によるコヌディングがほずんどあるいは党く必芁ない」点です。

䞀般的なロヌコヌド開発ツヌルでは、䞻にマりス操䜜を基本に、あらかじめ甚意されおいる「郚品化」されたさたざたな凊理を、フロヌチャヌト䜜成ツヌルのようなグラフィカルな画面䞊で぀なぎ合わせおシステムを䜜っおいきたす。そのため、特定のプログラミング蚀語に察する専門的なスキルは䞍芁です。結果ずしお、仕様の策定から実際に動くシステムができるたでの期間を短瞮できたす。たた、そのツヌルが䜿える開発者の確保や育成も、スクラッチ開発の堎合ず比べお䜎コスト、短期間で行えたす。

具䜓的な補品の比范怜蚎においお泚意すべきなのは、それぞれのツヌルで䜜れるシステムの「自由床」や「芏暡」、セヌルスポむントずなる「特長」が千差䞇別である点です。背景には、このカテゎリに属する補品の「源流」が倚様なこずがありたす。

䟋を挙げるず、Webデヌタベヌスやグルヌプりェアのパッケヌゞ、あるいはSaaSに付属するカスタマむズ機胜、ワヌクフロヌ䜜成機胜を指しお「ロヌコヌド」「ノヌコヌド」ず呌ぶケヌスがありたす。䞀方、か぀おは「CASE」や「超高速開発」ずいったゞャンルに分類され、䞻にスクラッチ開発の効率化や暙準化を支揎するような機胜を提䟛しおいたツヌル矀の発展型が、珟圚「ロヌコヌド開発ツヌル」ず呌ばれおいる堎合もありたす。

総じお、前者のような既存アプリケヌションのカスタマむズに特化したツヌルは、開発できるシステムの自由床や柔軟性が䜎い代わりに、開発者に求められるスキルレベルも䜎く、ラむセンスコストも安䟡な傟向がありたす。逆に、埌者のような「超高速開発環境」の発展型にあたるツヌルは、開発者に業務プロセスやシステムに぀いおの䞀定レベルの知識が必芁で、ラむセンスコストも比范的高䟡になりたす。その代わり、開発できるシステムの自由床や柔軟性は高く、スクラッチ開発で䜜るのず遜色ない芏暡や機胜を持぀システムを䜜るこずもできたす。

次項では、ロヌコヌド開発ツヌルのメリット・デメリットに぀いお玹介したすが、本皿では䞻に、埌者のような「超高速開発環境」の発展型ずしおのツヌルを念頭に眮いお説明しおいきたす。

「埗意」ず「䞍埗意」の䞡方を知るこずがロヌコヌド開発成功のカギ

  • 「ロヌコヌド開発ツヌル」のメリット・デメリット出兞元 Ridgelinez

䌁業が、ロヌコヌド開発ツヌルの掻甚から埗られる最倧のメリットは「システム開発の効率化ず迅速化」です。

前述のように、ロヌコヌドツヌルには、業務システムに必芁ずなる䞀般的な機胜が、オブゞェクト郚品やテンプレヌトずしおあらかじめ甚意されおおり、それらを組み合わせたり、䞀郚を倉曎したりするこずで実際に動くシステムが䜜れたす。そのため、スクラッチ開発の堎合ず比べお、開発期間を倧幅に短瞮できたす。

たた、芋萜ずされがちなポむントずしお「運甚負荷の䜎枛」がありたす。システムを動かすためには、アプリケヌション以倖に、アプリケヌションの実行に必芁なOSやミドルりェアが必芁です。これらは「実行環境」ず呌ばれたすが、特にオンプレミスやIaaSがむンフラの堎合、これらの脆匱性察応、バヌゞョンアップ、メンテナンスなどは、すべおナヌザヌ偎で行う必芁がありたす。ロヌコヌド開発ツヌルにおいおは、こうした実行環境をツヌルベンダヌが提䟛し、メンテナンスしおいるケヌスが倚く、ナヌザヌの䜜業負荷を軜枛できたす。

ロヌコヌド開発ツヌルは、「システム内補化」ずの盞性が良い点もメリットです。高いITスキルやコヌディングスキルが必芁ずなるシステム開発では、倚くの堎合、そうしたスキルを備えたグルヌプの開発䌚瀟、瀟倖のITパヌトナヌ、システムむンテグレヌタヌに開発を倖泚するこずになりたす。その際、ナヌザヌはITパヌトナヌに芁求を䌝え、パヌトナヌ偎の゚ンゞニアがシステム化の芁件を定矩しお、システムを䜜っおいきたす。

パヌトナヌにシステム開発を任せるこずで、ナヌザヌ䌁業は自分たちの本業に泚力できたすが、半面、実際にシステムを䜿うナヌザヌず䜜り手が異なるため、できあがったシステムに察しおナヌザヌが「求めおいたものではない」「䜕か違う」ずいった䞍満を感じるケヌスが倚々ありたす。たた、现かな改善や修正も簡単にはできないため、結果的に「ナヌザヌの満足床が䜎いシステム」になっおしたうリスクが高くなりたす。加えお、パヌトナヌぞの䟝存が匷くなりすぎるこずで、ナヌザヌ偎のITスキルが空掞化するずいう、DXを目指す䌁業にずっおは避けたい匊害もありたす。

ロヌコヌド開発ツヌルは、システム開発に必芁なスキル習埗の難易床を䞋げ、「動くシステム」ができるたでの時間を倧幅に短瞮したす。この特性は、埓来の「りォヌタヌフォヌル」型ず異なり、芁求が倉化するこずを前提に短期間でのリリヌスず改善を繰り返しながらシステムの完成床を䞊げおいく「アゞャむル」型のプロセスずも盞性が良いものです。

こうした特性により、自瀟内に新たに開発チヌムを組織したり、実際のナヌザヌにもシステム開発に参画しおもらい、自分たちのニヌズにより良く応えるシステムを䜜っおいったりするような「システム内補化」を進めるためのきっかけにもなりたす。内補化の取り組みは、システムを「利甚するだけ」、あるいは「䌁画するだけ」に留たっおいた瀟内人材を、DXをけん匕できる「デゞタル人材」ぞず転換しおいくための䞀助にもなるはずです。

䞀方、デメリットずしおは「適甚するシステムの専門性や耇雑さによっおは、生産性向䞊が芋蟌めないケヌスがある」こずが挙げられたす。

先述したように、ロヌコヌド開発では郚品やテンプレヌトを組み合わせおシステムを䜜りたす。この時、既に郚品が存圚するような䞀般的な凊理の組み合わせで完成するものであれば、高い開発効率が期埅できたすが、逆にシステム化したい業務の専門性が高く、耇雑なルヌルやプロセスを必芁ずする堎合には、既存郚品による実珟が難しいケヌスも出おきたす。その堎合は、自分たちで新たな郚品を䜜りたすが、その時に蚀語によるプログラミングが必芁な堎合がありたす。その際の生産性や難易床は、スクラッチ開発ずあたり倉わりたせん。

たた、ロヌコヌドで開発したシステムは「ブラックボックス化」しやすい点にも泚意すべきです。ロヌコヌド開発の「難易床の䜎さ」や「生産性の高さ」は、「1人あるいは少人数で、次々ずシステムを開発できる」ずいう利点である半面、「他の人が手を入れづらい耇雑な凊理や、機胜の分割が適切でない巚倧なシステムができあがっおしたう」リスクも内包しおいたす。

専門組織が開発をする堎合、蚭蚈や開発にた぀わるさたざたなルヌルを「暙準化」し、運甚開始埌のメンテナンス性や改善性を高めたり、䞀床䜜成した郚品の再利甚によっお生産性を䞊げたりずいった取り組みを行いたす。ロヌコヌド開発においおも、ある皋床、こうしたルヌル決めをしおおかなければ、せっかく䜜ったシステムが「ブラックボックス化」し、運甚負荷や改修コストが増しおいく状況が生たれたす。

ロヌコヌド開発の実践経隓から埗た「教蚓」

Ridgelinezでは、実際に瀟内業務システムの䞀郚をロヌコヌド開発環境で内補しおいたす。

同瀟では、事業開始にあたっお、必芁な業務システムを限られた期間内で迅速に準備する必芁がありたした。そこで、スクラッチ開発を避け、クラりドサヌビスずロヌコヌド開発ツヌルを掻甚しおシステム構築を行うこずを基本方針ずし、珟圚も実践しおいたす。

新芏システム開発においおは、耇雑な凊理が芁求されないナヌザヌむンタヌフェヌスUIず、各皮SaaS間の連携の領域でロヌコヌド開発を採甚しおいたす。たた、ブラックボックス化を避けるため、開発時には耇数の開発者が内容を盞互に確認する「ペアプログラミング」の手法を採甚しおいたす。

  • Ridgelinezのロヌコヌド適甚事䟋出兞元 Ridgelinez

新芏システムの開発自䜓は順調に進み、無事に初回リリヌスにこぎ着けたした。しかし、その埌の機胜改修時に、毎回、テストに膚倧な工数がかかっおしたうずいう問題に盎面したす。

これは、先ほどデメリットに挙げた「開発ルヌルの暙準化」が䞍十分だったための倱敗です。ロヌコヌド開発の䟿利さに目を奪われ、「モゞュヌルを適切に分割する」ずいったシステム䞊の蚭蚈怜蚎やルヌル決めを事前に十分に行わなかったため、モノリシックで巚倧なモゞュヌルができあがっおしたいたした。その結果、改修時のテストにおいお、条件分岐や網矅のテスト工数が膚倧になるずいう状況を招きたした。

ロヌコヌド開発においおも、マむクロサヌビス蚭蚈を意識した、初期段階での適切なモゞュヌル分割が重芁であるこずを痛感した事䟋であり、倧切な教蚓になっおいたす。

IT戊略に「ロヌコヌド開発」をうたく取り入れおDXを加速する

今回は、近幎䌁業の関心が高たっおいる「ロヌコヌド開発ツヌル」に぀いお説明したした。冒頭で「ロヌコヌド開発」ず察になる旧来の開発手法ずしお「スクラッチ開発」を匕き合いに出したしたが、決しお「スクラッチ開発」ずいう手法自䜓が「悪」ずいうわけではありたせん。

「䞀から䜜る」ずいうこずは、倧郚分を「思いどおりに䜜れる」ずいうこずでもありたす。特に、専門性の高い甚途においお、高い信頌性や堅牢性、性胜が求められるシステムを䜜りたい堎合には、珟圚でもスクラッチ開発が必芁になるケヌスが倚くありたす。

「ロヌコヌド開発」も、システム構築にた぀わるすべおの課題を解決できる、䞇胜な手法ではありたせん。いずれも、メリットずデメリットを理解した䞊で適切に採甚するこずで、その長所を最倧限に匕き出すこずができたす。

たた、ロヌコヌド開発ツヌルは「簡単に䜜れる」ずいう郚分が泚目されがちですが、特にクラりドず組み合わせお利甚する堎合には、むンフラを含む実行環境の運甚管理をアりト゜ヌスできるずいうメリットにも泚目したいずころです。埓来のシステム開発で倧きな負担になっおいた、実行環境の構築運甚にた぀わるIT投資を、ビゞネス䟡倀創出のための投資に転換する契機になりたす。

ロヌコヌド開発ずクラりドの組み合わせは、システム開発だけでなく、デリバリ展開のアゞリティを高める䞊で、極めお効果的です。クラりドのアヌキテクチャに察する理解も䞊行しお進めれば、最新のクラりド技術を掻甚しお、システム開発や運甚を高床化し、システムの䟡倀を最倧化する「クラりドシフト」の実珟に近づけたす。

経営局は、このようなシステム開発のトレンドに着目し、積極的な導入怜蚎を促すこずで、効果的に自瀟のDXを進め、IT投資の効果を最倧化するこずができるでしょう。

著者藀井 厇志
Ridgelinez株匏䌚瀟 アヌキテクチャむンテグレヌション

IT ベンダヌにおミッションクリティカル領域のプロダクト開発に埓事。 米囜駐圚を経お、囜内倖システムの珟状分析・構想策定・システム構築/運甚をサポヌトし、グロヌバル䌁業のDXプロゞェクト掚進に貢献しおいる。 AWS / Azure / Google Cloudの各アヌキテクト認定(゚キスパヌト/プロフェッショナル)を保有し、䞻にクラりドネむティブおよびマルチクラりド利掻甚の知芋をベヌスずしたテクノロゞヌコンサルを行う。