@ITに「国内IT人材が不足、生産性向上で課題を解決する「ローコード開発」とは」という広告記事が載っています。
その記事自体の内容よりも、記事に対する(たぶん)エンジニアの反応が興味深かったのでメモ。
設計部分を甘く見ているのでは?
以下の部分が引っかかっているようですね。
データベース、画面、ロジックの設計書(モデル)を作るだけで、各フレームワーク(Web、モバイルなど)に対応したソースコードを自動的に生成し、デプロイできるソリューションだ。
これがあるために、シチズンデベロッパー(専門開発者でない、ビジネス側のユーザ)でも開発ができ、開発者不足にも対処できるとつながります。
しかし、この「データベース、画面、ロジックの設計」の部分こそが難しく、不足している開発者とはこの部分ができる人のことではないか、という反応がありました。
これは御懸念の通りですね。OutSystemsを使ったとして、プログラムの記述量は減らせますが、この3つの設計は省けません(プラットフォームが提供するツールが支援はしてくれる)。
OutSystems開発者を育てたいという相談を受けたときに、私もこういったスキル(後Webアプリケーション開発の一般知識)+OutSystems固有の知識(Webのコースで良い)を身につける必要があると言います。
参考:OutSystemsによる開発プロジェクトに必要な教育(Web版)
OutSystemsを入れたからと安心して、設計にコストをかけないのは危険です。
また、シチズンデベロッパーという考え方は魅力的ではありますが、OutSystemsを開発基盤として使うことを考えると慎重な準備が必要です。
自分で関与した範囲では、シチズンデベロッパーが参加しているものはありませんでした。
しかし、シチズンデベロッパーに許す開発内容をよく吟味してガイドや研修を準備し、専門家が部品やテンプレートを用意し、Q&A窓口とレビュー体制を用意する程度の準備が必要なのではないでしょうか。
何回目だ?
今までも、ソフトウェア開発の一部を自動化して高速化するとうたった考え方は何度も出てきたので、それと同じではないかと言うことですね。
LCDPs trace their roots back to fourth-generation programming language and rapid application development tools of the 1990s and early 2000s. Similar to these predecessor development environments, LCDPs are based on the principles of model-driven design, automatic code generation, and visual programming.
によると、実際に4GLやRADを起源とすると書いてあります。ちなみにLCDPはLow-Code Development Platformの略。
私はCANO-AID ⅢというCASEツールを使った開発をしたこともありますが、開発作業のイメージは結構重なります。
個人的には、OutSystemsは、CANO-AID Ⅲでの開発環境と作業が現代風にアップグレードした製品のように感じています。
日本では、超高速開発というのもありましたね。
OutSystemsのパートナーであるBlueMemeは参加企業になっています。
https://www.x-rad.jp/list/
その他
Railsでやっていることだという指摘もあります。Rails自体をよく知らないので、そこにはコメントしませんが、ASP.NET MVCやJavaのSpring Bootでも画面自動生成とかできますね。それに設定などをうまく駆使して開発に必要なコード量の削減はできます。
OutSystemsは一つのプラットフォームに全部のせで、いろいろな部品もついてくるのが違いでしょうか。OutSystemsの流儀に合わせにくい開発では、いろいろ追加の準備が必要になってしまうと言うことでもありますが。
テキスト形式でソースを保存しないならdiffが見にくいのかなという懸念もありそうです。diffはグラフィカルに見ることができます。
Unit Testing ツールを使ってリグレッションテストを自動実行したり、JenkinsとプラットフォームのAPIを連携させて自動でリリースとかもオープンソースのツールを使えば可能です。