基幹システムにおけるアジャイル開発、マッチするシステム属性は?
デジタルトランスフォーメーション(DX)への関心の高まりに伴い、システム構築のプロではなくとも、短期間・低コストで事業変革・業務改革を行うことができるアジャイル開発という手法に対しての関心が高まっています。
”スモールスタートでシステムをリリースしたい”、”ビジネス変更・業務変更の頻度が高まっている”、”プロジェクトの短期化に取り組みたい”、”ローコストでシステムをリリースしたい”、などのニーズも年々高くなっています。
本記事では、関心の高まっている基幹システムにおけるアジャイル開発と、それを支えるローコード開発ツールの実態に迫ります。
目次
アジャイル開発にはローコード開発ツールが必須
従来型のウォーターフォール開発においては、工程ごとに設計書を作成してユーザー・ベンダー双方が合意し、次の工程にその合意事項をリレーしながら、”合意の積み重ね”に基づきシステムを構築していきます。
前工程で合意済み(≒仕様変更は発生しない前提)であるため、粒度の高い設計書を作りやすく、システムベンダーはその設計書に基づき安心してプログラム開発工程に進むことができます。
そして、Visual StudioやEclipseなどの信頼性の高い開発基盤を利用しながらソースコードを書いてシステム構築を進めていきます。これが従来型のもっともよく見られるシステム開発の在り方です。
しかしながら、要件が決まっていないけれど作りながら考える、スピード感をもってシステム構築する、システムのプロではないユーザーがシステム構築を担当する、、、などに適用しやすいアジャイル開発の場合は、これまでのウォーターフォール開発の常識は通用しません。
アジャイル開発の詳細については別の解説に委ねますが(検索すればいくらでも出てくる)、作っては直し・作っては直しを繰り返しながら、ユーザーのビジネス要件に合ったシステムに仕上げていくというアジャイル開発においては、まったくコードを書きません(ノーコード)。
または必要に応じて一部だけコードを書く(ローコード)ことができる、開発基盤を利用して実現させるケースがほとんどです。
アジャイル開発は、ノーコード・ローコード開発基盤があっての開発手法と言っても過言ではないでしょう。
基幹システムにおけるアジャイル開発、その採用メリットは?
ローコード開発ツールを使った開発には、以下のメリットがあります。
1.プログラム開発力がなくてもシステムが作りやすい
プログラマーがいちからコードを書くスキルを有していなくても、ドラッグ&ドロップや描画ツールを使ってシステムを構築することができます。
未経験者が自力でシステムを組みたいときに、プログラミングの勉強をしなくてもツールでシステムを開発できるのは大きなメリットです。
2.短期構築が可能
ローコード開発ツールがプログラムを自動生成するため、いちからプログラムを書き起こすよりも短期間でシステム構築をすることができます。
パッケージの適合度が高い場合はパッケージを利用したほうが短納期・低コストが実現できるかもしれません。
しかしながら、各企業固有の業務であったり、パッケージがカバーしていない領域だったりすれば、いちからプログラムを書くよりもローコード開発ツールを利用したほうが早く・安く実現できるでしょう。
3.低コスト構築が可能
少ない工数でシステムが構築できれば、その分だけ低コストで構築することができます。
システムベンダーに外注せず、企業内で内製開発すれば、さらに少ないコストでシステム構築ができる可能性があります。
基幹システムにおけるアジャイル開発、その採用デメリットは?
良さそうなことばかりに見えますが、ローコード開発ツールで生成させるシステムの弱点として以下が挙げられます。
1.応答速度(レスポンス)・品質・安定性
ローコード開発ツールで生成されるプログラムは、熟練のプログラマーが書くコードよりもソースコードが複雑になりがちです。
自動翻訳ツールを思い出してもらえればイメージが湧きやすいと思います。
翻訳ソフトで英語から日本語にすると読みにくい日本語が生成されますし、同じように英語を日本語にしても冗長でわかりにくい日本語の文章が出現します。
ソースコードの整備のレベルにおいては、プログラムの自動生成ツールは同程度、いや自動翻訳ソフトのほうがマシな状態にあるのが実情です。
複雑で読みにくいソースコードでも、ソースコードを見ながらシステムを利用することはないですから動けばそれで良いため、ユーザーには一見なんのデメリットもありません。
しかしながら、同時利用ユーザーが多かったり、処理する情報量(トランザクション量)が多かったり、シビアな稼働要件が求められたりするシステムにおいては、レスポンス(システムの応答速度)における問題が生じる可能性があります。
また、複雑な機能を実現しようとするとシステムの品質(バグが多い)に問題が生じたり、安定性(すぐに落ちる・フリーズする)などの問題も生じやすいです。
そのような問題が生じなければいいのですが、生じたときの解消に時間がかかる場合もありますので注意が必要です。
2.保守性
システムベンダーのプログラマーがいちからシステムを作る場合は、多くの場合は概要設計書・詳細設計書を書き起こし、チームで開発するケースがほとんどです。
1つのシステム構築に携わるエンジニアの数が多くなればなるほど、設計書の粒度は細かなものでなければチームでの意思疎通が行いにくいです。
また、大きな費用を掛けたシステム(≒投資対効果を加味した長期利用が前提)になるため、稼働後の保守性の観点でも設計書はしっかりと残すことになります。
ローコード開発ツールで構築するシステムは、作るエンジニアがよほど気を遣って設計書を残すように取り組まない限りは、設計書がない状態でシステムが構築されることになります。
さらには、上記の「ローコード開発のデメリット1」で触れた通り、裏で稼働するソースコードが複雑であることが影響し、作ったソフトウェアに少々の修正を加えるときに問題が生じがちです。
作ったものに手を入れるよりも、いちから作り直したほうが健全なケースもあります。
3.ツールの制約
ローコード開発ツールには、開発にあたってのツールの制約が必ずあります。
例えば画面作成における自由度が低かったり、大人数で1つのデータベースを操作するような複雑な動きが必要となる処理において制約があったりします。
その制約を十分に理解したエンジニアが提案・見積・プロジェクト上流工程の前さばきに携わったうえで、ユーザーが納得のうえでその制約を回避する運用方法を見出すか、制約を受け入れるかをすれば、特にトラブルにはならないでしょう。
しかしながら、その制約を理解していない営業やSEがアジャイルを謳い文句に売り込んだシステムにおいては、ベンダーもユーザーも思ってもみなかった悲惨なトラブルが起こり得る可能性があります。
ローコード開発を採用するにしろ、そのツールの制約を理解したうえで採用を決定することが重要です。
【まとめ】基幹システムにおけるアジャイル開発、マッチするシステム属性は?
これまで見てきた通り、ローコード開発ツールにはメリット・デメリットがあります。その時々の流行り廃りがあり、数年でシステムの刷新が繰り返されることの多い情報系システムにおいては、アジャイル開発との相性は良いと考えます。
また、事業モデルが固まっておらず、事業規模が大きくなってもトランザクション量がそれほど巨大になる想定がない領域のシステムにおいても、アジャイル開発は有効に作用するでしょう。
しかしながら、例えば基幹システムのように、以下のような特徴があるシステムにおいては、安易にアジャイル開発・ローコード開発ツールを採用すると、後から痛い目を見る可能性があります。
アジャイル開発に適していない基幹システム例
- 事業の規模が大きく、事業に歴史があり、おおよその運用想定・仕様が固まっているシステム
- 将来に大胆な変更を行う予定がなく、長期利用を前提としているシステム
- ユーザー数が多く、処理ボリュームも大規模である(大規模になる可能性がある)システム
※横軸:情報系と基幹系
※縦軸:大規模処理量と小規模処理量
ただし、基幹システムであろうとも、以下のようなケースにおいてはアジャイル開発も適しているかもしれません。
アジャイル開発に適している基幹システム例
・事業規模が小さく、想定処理量もそれほど大きくはないシステム
・ビジネスモデルに変更が多く、小さく始めて育ててきたい事業で利用する想定のシステム
・今現在も将来も、運用想定が固まっておらず、変更しながら育てていきたいシステム
※横軸:仕様の固まり度合い
※縦軸:変更頻度
いかがでしたでしょうか。
「システム構築は旬なアジャイルで!」と安易に決めてしまわず、事業の特性を踏まえ、その事業に相応しいシステムの在り方を想定し、そのうえで開発手法についても選定していくのが望ましい在り方であると考えます。
弊社においても生産性を高めるべく、今も昔も(20年以上前から)、各種のミドルウェアやローコード開発ツールを活用していますが、失敗・成功含めてたくさんの経験を積んでいます。
それらの経験を活かしながら、よりよい手法・現実的な手法を、個々のケースにおける事情を踏まえて取捨選択しながら、お客様にお勧めしていこうと考えています。
株式会社テスクは、創業以来、流通業に特化し、消費財向け販売管理システムの導入支援・運用支援に関する豊富な実績と経験によって蓄積された十分なノウハウを持っています。
これらのノウハウを集結した消費財向け販売管理パッケージ『GROWBSⅢ』では、卸売様の基幹業務としての販売管理機能で今回ご紹介した受注入力業務の効率化できる処理機能を装備しております。
もしご興味がございましたら、弊社の製品・サービス資料「消費財向け販売管理システム「GROWBSⅢ」基本ガイドブック」をぜひダウンロードいただきご覧ください。