超高速開発ツール最先端：Japan OutSystems User Group 速報レビュー(2020)

## はじめに
- ローコード型超高速開発ツールOutsystems Platform(OSP)の日本版オンラインカンファレンスに参加してきました(2020.12.11)
- ワークフローと機械学習などに関する新機能が紹介されていましたので、自分と他のOSPプレイヤーに向けてメモや感想/意見を残します
- OSPを直接触ったことがない方も、ローコード型開発ツールの最先端がどうなっているのかの参考にしてもらえれば幸いです
- OSP関連で過去に次のような記事も書いているので、よろしければご確認ください
    - [OutsystemsPlatform：超高速開発ツールを知ってみよう！](https://qiita.com/sakitakahi/items/95de87a6d1125c9032a5)
    - [超高速開発ツールの比較：Outsystems Platform vs Web Performer](https://qiita.com/sakitakahi/items/413eb0b45df1a914651f)


## OSPコミュニティについて
### 日本のOSPコミュニテイの現状
- アクティブコミュニティユーザ数：1,526名
- うち、貢献者数140名（コミュニティ、フォーラム立ち上げに貢献してくれている人）
- 認定開発者数：1,120（2020年で＋337名）
- MVP：1名＋1名（検討中）
- Championsプログラム申請中：2名

### 2021年度のコミュニティ計画（全体）
- アドボカシープログラム（OSPを普及させるための個人の貢献を促進させるプログラム）
    - MVPプログラム
        - 参考：https://www.outsystems.com/community/mvpprogram.aspx
    - Championsプログラム
        - 参考：https://www.outsystems.com/champions-program/
    - Ambassadorsプログラム
        - 参考：https://www.outsystems.com/ambassador-program/
- オンラインコミュニティ
    - フォーラム（OSP情報掲示板）の成長促進
    - Forge（OSPのコンポーネント、コネクターを共有するサイト）の成長促進
    - ドキュメントの拡充
- ナーチャリング
    - ユーザグループ：現時点で54都市で開催。次年度以降はもっと拡大する予定
    - 教育プログラム：学生にOSPを学んでもらう→就職してOSPを活用した仕事をしてもらう
    - パートナーシップ：OSP以外のエコシステムとの協力推進

### 2021年度のコミュニティ計画（日本）
- 「コミュニティマネージャー」をという立場の人を採用して、日本のプログラムの推進・エコシステムを育てる
- コミュニティリソースの日本語化
- 日本国内のコミュニティリーダーとのアクティブなコラボレーション：140人のアクティブユーザと協力する


---
## 新機能の紹介
### 3つの基本軸
- OSPの目指す「最高のソフトウェア生産性」の実現にあたり、次のような3つの軸でさまざまな機能を紹介
    - 早く：複雑でも高い生産性
    - 正しく：セキュリティ、パフォーマンス、メンテナンス性、インフラ、様々なデバイス
    - さらに先へ：技術革新、ビジネス変革を支え続ける

### ①早く
#### ワークフロービルダー
- 業務ユーザ向けの機能：簡単にワークフローソフトウェアを作成できる
    - 作成されたソフトウェアは、ServiceStudioで簡単にメンテナンス・拡張することが可能
- IT部門は、「ケースマネジメント」という機能を利用して、業務ユーザの作ったワークフローソフトウェアを運用・監視できる（ケースマネジメント）
- 例：経費、年休申請、工数管理、残業申請、出張申請...（基本的に部署内で完結するレベル）
    - 代理人称、エスカレーション、認証スキップなどの高度機能はServiceStudioでの実装で補完
    - 上記のためのAPIも提供するとのこと
- ForgeからDLでき、マニュアルなどもそこにあるとのこと
- 参考：https://success.outsystems.com/Documentation/Workflow_Builder

#### エクスペリエンスビルダー
- 業務ユーザ向けの機能：モバイルアプリのプロトタイプ版を簡単につくれる
- プロトタイプをServiceStudioで拡張してアプリを作成
    - デモの感じだと、Prottでモックを作るレベルでアプリが作れる模様
- テンプレパターンとして、保険・金融・医薬などの業界パターンを準備。今後も追加予定

#### インテグレーションビルダー
- 開発者向けの機能：Salesforce、SAPなどの外部サービスとのコネクターを簡単につくれる
- 機密保護：認証情報や証明書を開発チームと共有せず、IT管理部門だけが管理できるようになる

#### AIによるシステム開発サポート
- プロパティ提案の進化
    - 例：Assignでインクリメンタルの実装をしようとすると、予測してプロパティ値に「変数＋１」ってのを提案してくれる
- 自動サジェストの強化
- 検索の高速化・正確性強化
- オートフィル機能
    - 実装の流れから、従来手動で設定していたプロパティまで予測して設定してくれる
- Service Studioの改善
    - ベースとなるサンプルアプリを簡単に指定できるようになる
    - テキストエディタも改善
        - ReactWebでCSSを記述するケースなど増えてきているため。検索性や一括置換などを強化
- チャットボットコンフィギュレーターの公開

---

### ②正しく
#### アーキテクチャダッシュボードに「AIによるコード分析」追加
 - アーキテクチャを自動検出し、４レイヤーの中のどれかを分類できる
 - コードレビューを実施できる（どこに技術的負債があって、優先順位は何かを提案）
 - リファクタリング支援：モジュールに存在する重複コードを検出して、一つにまとめてくれる

#### OutsystemsAppShield
   - モバイルアプリに対して特殊なセキュリティレイヤーを追加して、各種攻撃から保護
      - 例：オーバーレイ攻撃、デバッガー/エミュレータによる攻撃、リバースエンジニアリング、改ざん など
   - 使い方：プラグインを設定するとビルドされるときにOSP側のサーバで実施
      - パフォーマンス影響がゼロではないが、大した影響はないとのこと

#### CI/CDツールと連携
   - JenkinsとかAzureDevOpsなどと連携するためのコードを提供

#### AppStoreのデプロイ
  - いままで、ローカルにDLして個別にAppStoreにデプロイしていたが、OSP上で一気にできるようにする

#### アクセシビリティの強化
   - 目が弱い人のためなどに対してもアクセシビリティを担保することが世界のテーマ
       - アメリカではアクセシビリティを担保しないことによる訴訟など発生
   - アクセシビリティが保たれているかの確認大変→OSPのUIコンポーネントをつかえばOK

---
### ③さらに先へ
#### マシン・ラーニング・ビルダー
   - 機械学習の知識がなくても自社専用の機械学習モデル作成を支援してくれる
       - 学習データを準備して、説明変数などを指定するだけでよしなにモデリングしてくれる
       - 例：文書分析、画像分析

#### OutSystems. AI ドキュメント処理
   - レシートなどスキャンしたフォーム読み込み

#### 次世代ServiceStudio
   - クロスプラットフォームService Studio：MacOSでも動く開発クライアントを準備中
   - ダークモード・ライトモードの切り替えもできるようにしていく

#### コンテナ対応
   - OSPクラウドの中で、コンテナ利用ができるよう準備中

---

## 感想
### コミュニティについて
- OSPが単なる開発ツールとしてだけでなく、まさに「プラットフォーム」としてコミュニティの育成を大事にしているのが伝わりました
- OSPのポテンシャルや日本での採用事例の拡大に対して、上記の日本のアクティブコミュニティユーザ数は正直少ない印象です。
    - おそらく、PJTにアサインされてOSPは使っているものの、自分からはコミュニティ活動をしていないシャドーユーザがたくさんいる気がします
    - 日本のコミュニティマネージャーの採用などの取組も大変面白そうなので、もっとコミュニティが活発化することに期待します

### 新機能について
- ワークフロービルダー
    - 数多くの日本企業でも伝統的にテーマになるので、注目していました
    - OSPでワークフローを作るメリットとしては、QAで次のように回答されており、確かに柔軟性があって良い試みだと感じております
        - ①ビジネスユーザがシンプルに使える、使いやすい
        - ②ServiceStudioで簡単にアクセスできて、リソース性が高い
        - ③テンプレート化→コミュニティ共有というのもメリットとしてある
        - ④複雑なのを簡単にして、OSPとの連携も簡単にできる
- ワークフロービルダー・エクスペリエンスビルダー
    - 業務ユーザがCitizen Developerになってもらうための試みの一環だという印象がしました
        - 内製化はOSPを導入する上でのアピールポイントの一つとされていますが、現実はツールの専門知識や一般的な開発知識がないと使いこなせない実情がありました
        - その課題にくじけず、トライしながらOSPの製品開発をしているのだと感じました
- AIの開発支援
    - どんどんリッチになっていっている印象はありますが、プロパティ値まで自動入力されたりすると、開発者がそれに頼りきりになって、値設定に対する注意深く確認する癖が抜けちゃいそうな気がしました（笑）
    - 一方、テストをちゃんとすれば問題ないと思うので、こういうのもどんどん順応して取り入れていくことが開発速度の向上と結果的な品質向上にもつながるのかなとも思いました
    - 個別では、リファクタリング支援がすごく便利そうで期待しています

## おわりに
- コロナ禍で日本で初めてのオンラインカンファレンスということでしたが、気軽に参加できて個人的にはよかったです
- OSPが「プラットフォーム」として、単機能だけでなく、ビジネス課題を捉え続け、知識交流・雇用促進などコミュニティ活動に力を入れているのが良い点だと改めて感じました
- OSPはローコード型超高速開発ツールとして、もっと活発化するポテンシャルはあると思っているので、今後もさらに期待していきたいです