※この記事は「Outsystems 入門 ~Webアプリケーションを作成しよう~」の連載記事です。連載トップはこちら
第1回 Outsystemsの概要
開発に入る前に、Outsystemsやローコード開発について簡単に知っておきましょう。
質問形式でご紹介します。
Outsystemsの特徴と優れた点
Q1 Outsystemsって何なの?
A1 最近注目されている「ローコード開発」ができるツールです。
ローコード開発プラットフォーム は、従来の手書きのコンピュータ・プログラミングの代わりに、グラフィカル・ユーザ・インタフェースと設定を通じてアプリケーション・ソフトウェアを作成するために使用される開発環境を提供するソフトウェアである。
Wikipediaより
アプリケーションを開発したことがある方なら分かると思いますが
従来のアプリケーション開発は、下の図のようにプログラミング言語をゴリゴリ書いて行います。

図1)一般的なプログラミング言語の開発例
一方Outsystemsはというと、下の図のように文字による表現ではなくアイコンを動かし、繋げて作るというような方法でプログラミングを実施していきます。

図2)Outsystemsの開発例 プログラミング言語の文法を一切知らずに開発することができる。
プログラミング未経験の方だと、Outsystemsの方が簡単そうですよね?
このように従来よりプログラミングの敷居を下げ、今までプログラミング行っていなかった人にも簡単にアプリケーションを作れるようにしよう!という点が、ローコード開発の狙いの一つです。
Q2 プログラミング言語を用いないということは、作成できる機能に制限があるのでは?
A2 機能や要件によっては、作りやすい・作りにくいものが分かれますが、開発の自由度は高い印象です。
私が開発していた限りだと、作れない機能はありませんでした。
また、もし実現できない機能やUIがある場合はその部分だけ従来の言語やライブラリで作り、Outsystemsと連携させることもできます。
Q3 具体的に何が作成できまるの?
A3 ・サーバーサイドで処理するWebアプリケーション
・サーバ、フロントエンド双方で処理が可能なWebアプリケーション
・スマートフォンなどのモバイル端末向けアプリケーション
・Web API (REST, SOAP)
・バッチ処理とジョブスケジューリング
などです。
また、上記のアプリケーションで用いるデータベース(テーブル)もアプリと同時に定義・作成できます。

図3)Outsystemsで作成したWebアプリケーション

図4)リレーショナルデータベースのテーブルをOutsystemsの開発ツールで定義・作成することができる
Q4 プログラミング未経験者でも開発できる?
A4 未経験者でもアプリ開発は可能です。
プログラミング言語の文法を詳細に覚えなくていい上に、開発する環境の作成も簡単なので敷居は従来のプログラミングよりも低いです。
ただし、まったくプログラミングの知識が不要かと言われるとそうではなく、以下の知識は必要となります。
・プログラミングの基本的な考え方(分岐処理、ループ処理、変数など)
・論理的思考(ロジックを考える力)
・リレーショナルデータベースの基礎(テーブルの正規化や、結合の考え方など)
Q5 どれくらい早く開発できるの?
A5 とりあえず動くアプリケーションを作るというだけであれば、5分~10分で作成することが可能です。
(この後の演習では、まず動くアプリケーションを短時間で作ってみます)
ただ、実際の開発ではもっと要件が複雑であるためこんなに早くは作成できません。
要件や機能によりますが、私の経験だと1週間で10画面程製造できたことがあり、従来開発に比べ数倍は早いと実感しています。
Outsystemsのイマイチな点
Q6 Outsystemsのイマイチな点はある?
A6 Outsystemsが管理するデータベースを利用した場合、データベース操作が全体的にイマイチで使いづらいです。
少し開発者向けの話になりますが、いくつか挙げると
・開発中に必要なテストデータを追加できない(自分でデータを追加するアプリを作る必要がある)
※ただし、2021年に改善するというアナウンスがありました
・Outsystemsの売りの機能である、「SQLを書かずにDBからデータを取得する機能(Aggregate)」で、副問い合わせを利用できない
(SQLを書いたり、ロジックで吸収すれば実現できなくもない)
・開発環境→テスト環境などの環境間で、DBのデータを移行する方法を自前で用意する必要がある
等のデメリットは日々利用していて感じています。
よって、Outsystemsが管理するデータベースを利用せず自前でDBを構築し、Outsystemsから参照させる方式を採用する会社も多いです。(ちなみに前者を内部DB、後者を外部DBと呼びます)

図5)SQLを書かずにデータ取得ができる売りの機能があるが、副問い合わせができないためしばしば困る。
OutSystemsが向いている開発、向いていない開発
Q7 Outsystemsが向いている開発、向いていない開発を教えて!
A7 向いている開発は、
・保守開発が多く発生するアプリケーションの開発
・アジャイルなどの再帰的な開発
・スピードが何よりも求めれられる開発
です。
向いていない開発は
・一度作成したら、改修があまり入らないアプリケーションの開発
だと思っています。
というのも、Outsystemsのライセンスはサブスクリプション方式となっており
開発を実施せずとも、アプリケーションを稼働させているだけで、開発時と同等のランニングコストが発生します。
開発効率の向上がメリットですので、開発があまり行われない場合は、ランニングコストに注意が必要です。
さて、色々と紹介してきましたが
実際使ってみないことにはOutsystemsがどんなものかわからないと思いますので、この連載を通してOutsystemsを手を動かし利用してみましょう。
まず次回は、Outsystemsを利用するための環境のセットアップを行っていこうと思います。