コロナ禍によってニーズが増えているローコード開発とは
OutSystemsは2001年に設立したローコードアプリ開発サービス企業。本社はポルトガルのリスボンとアメリカのアトランタにある。GartnerやForresterなどの調査機関からもローコード分野のリーダーとして評価されており、未上場ながら2021年2月17日には、およそ158億8000万円の資金調達を行い、その評価額は1兆円とされている。日本法人のOutSystemsジャパン株式会社は2018年ごろから本格的に活動し始め、現在40名ほどのメンバーが所属。2020年現在、国内ではパートナーが5社、認定エンジニアが1200名、顧客が140社と着実に成長している。
ローコードとは、ビジュアル・設定ベースを基本とし、足りないところにコードを書いて補完していく開発手法のこと。OutSystemsジャパン株式会社 ソリューションアーキテクトの阿島哲夫氏はローコードのコンセプトについて「まず開発を高速化できます。コードを書くことによって生じる人為的ミスも最小化できます。それからコードが見やすいので保守性が向上します。SQLインジェクションやクロスサイトリクエストフォージェリといった脆弱性に対するフレームワークも用意されているので、セキュリティの最適化も可能です。また、用意したテンプレートで実現できない場合にはコードを書いて補完できます」と述べた。
生産性と品質を両立するローコードは現在注目されており、阿島氏は、Gartnerのバイスプレジデント兼アナリスト クリス・シルバ氏の見解として、ローコードアプリケーション開発は、2024年までにアプリケーション開発全体の65%以上を占めるとの予測を紹介。このコメントは2019年のもので、新型コロナウイルスによるパンデミックの影響によってさらに加速しているとした。
ローコードやノーコードと呼ばれる開発手法は、ITスキルの低いエンドユーザーがセルフサービスで作るなど、プログラミングのスキルを持たない人たちに向けたツールを指す場合も多い。このようなツールの利便性がクローズアップされる一方で、専門家が作らないためITガバナンスが効かなくなったり、ニーズに合う定型外のものが作りにくかったりする。大規模開発チーム・大規模システムにはあまり向かないというイメージもある。
そのような見方をされるローコードであるが、阿島氏はOutSystemsについて「大規模システムに適用できる開発者向けのローコードプラットフォームです。エンジニアでない人でもアプリが作れることを謳う他のサービスとは異なり、開発するには、例えば非同期処理、例外処理、DB設計、API、トランザクションなどを理解している必要があります。開発チームの中には非エンジニアの方がいらっしゃっても良いですが、チーム内にWebアプリケーション開発に精通したアーキテクトは必要なプラットフォームです」と説明した。
高品質なWebアプリやモバイルアプリを開発できるさまざまな機能
OutSystemsは、Webアプリ/モバイルアプリを開発するためのローコードプラットフォームだ。生成されるWebアプリは.NET MVC+React.jsベースでREST/SOAP APIインターフェースを実装可能。クラウド・オンプレミス双方に対応する。モバイルアプリの場合はCordva+React.jsベースのiOS/Android対応ネイティブアプリ開発ができる。カメラの起動やGPS、Bluetooth、指紋認証、カレンダーなど、モバイルデバイスの機能にもアクセスでき、作ったアプリはApp StoreやGoogle Playでも配布できる。
データのモデリングもローコードで行う。テーブル、列、テーブル間の関連、インデックスと、基本的には通常のRDBと同じだ。阿島氏は「他社の多くのローコード製品では、画面とテーブルの対応が1:1を前提とする製品がとても多いです。画面表示のためのテーブル設計をしてしまうと、列の数が多い等美しくない構造のデータを定義してしまう場合も多く、拡張性に支障を来す場合があると思います。OutSystemsは正規化したデータモデルを作り、利用できます。画面設計のためにデータモデリングを犠牲にする必要がないのです」と語った。
ビジネスロジック開発において、ある程度の処理になるとコードを記述しなければならない製品もあるが、OutSystemsならほとんどコード記述なしで実現できる。例えば、データ更新前にDB内のデータを参照する、1つの画面からの入力で複数のテーブルを更新する、複数のテーブルを参照した上で出力データを決定するといった処理もコードを書かずに実現可能だ。
コードの記述量が多ければ、プログラマのスキルや、やり方の好みによって品質や生産性が低下する恐れがあるが、OutSystemsならそのリスクを極力抑えることができる。阿島氏は「OutSystemsは本当にコーディング量が少ないです。実績ベースでも大規模なシステムではコードを書く量は全体の2パーセント未満と言われています」と述べた。
ロジックだけでなくUIの開発もサポートする。テーブルから自動生成する方法の他、豊富なテンプレートから作成したり、UI部品を配置して自由なレイアウトで作成したりすることができる。標準で用意されていないUI部品についてはコードを追記して補完する。また、ある程度の規模のシステムを作る場合、デバッグが必要となるが、Break Pointを配置して、変数やパラメータの値を確認しながら実行できるデバッガーも実装している。モバイルアプリ開発時にiPhoneやAndroidデバイスを操作しながらデバッグすることも可能だ。
AIによる実装支援など、至れり尽くせりで、かつフルスタックの開発環境
OutSystemsの統合開発環境である「Service Studio」の目玉が、AIを使った支援を行う拡張機能。開発者の操作を先回りして、次に何をすべきかを推奨し、プロパティ値を自動設定する。これまでに1200万件以上ものアプリケーション設計・実装パターンを学習し、毎週再トレーニングが施されている。AIが推薦する精度は90%以上だ。
阿島氏はService Studioを起動し、モバイルアプリの実装デモンストレーションを行なった。画面上にボタンを配置し、ボタンをクリックしたらカメラを起動して写真を撮影し、データベースに保存するというもの。アイテムを配置すると条件分岐やそのあとに表示するメッセージ、カメラを使うことを選ぶと写真撮影の処理、撮影が行われたら日付データを自動で設定する、データベースに保存する際に保存が成功したかどうかのメッセージを表示するなど、ツールボックスやツリーからアイコンを探してドラッグ&ドロップするといった操作をせずに、AIから推奨された候補を選択する操作だけで開発を進められる機能が披露された。
OutSystemsは、フィードバックの管理も行える。アプリケーションを開発・運用していくにあたり、テスト環境でユーザーのフィードバックを直接受けて修正していくといった用途にも使える。画面内にユーザーがコメントを残せるようにし、該当箇所がすぐ理解できるようスクリーンショットとともに保存される。そして、コメントと連動した箇所を開発環境で開いてすぐに修正を行える。
他にもデプロイ、パフォーマンス改善、アーキテクチャ解析など、アプリケーション開発だけでなく、開発の速度と品質の両面を高めるために非常に多くの機能が用意されたプラットフォームとなっている。阿島氏は最後に次のようにコメントし、講演を締めくくった。
「OutSystemsは大規模システムに適用できる開発者向けのフルスタック・フルライフサイクルサポートする統合ローコードプラットフォームです。エンドユーザー向け、小規模アプリを作るためのツールでもありませんし、開発だけに特化したツールでもありません。無料版もあるのでダウンロードしてお試しください。また、弊社では各種ボジションの人材も募集しています」