MicrosoftもLow-Code製品(Power Apps)を展開している。
Low-Code製品を利用した、市民開発者(Citizen Developer)とプロの開発者、運用担当者が協力して行う開発をMicrosoftはFusion Developmentと呼んでいるようだ(なお、言葉を定義したのはGartnerとのこと)。
MicrosoftのFusion Developmentについては、Fusion development in Power Platformを参照。また、このテーマでEbook (Fusion development approach to building apps using Power Apps) があり、具体的なシナリオに基づき、チュートリアル的にPower Appsを使った実践例が説明されている。この資料を読んでのメモ。
3つの役割
Microsoftの定義によると、Fusion Developmentチームには以下3種類の参加者がいる。
- 市民開発者(Citizen Developer):技術的バックグラウンドを持たない業務ユーザー。Low-Code開発を担当する
- プロの開発者:C#のようなHigh-Codeの開発を主に担当する。外部データソースとの接続(例えば、RDBとの間にはいるWeb APIの開発)とそのPower Appsへの設定など
- 運用担当者:運用や非機能要件(パフォーマンスやセキュリティ、管理のしやすさ)などを行う
MicrosoftのEbookを見た範囲だと、Low-Codeでの開発は主に市民開発者で行うように見えた。
- 市民開発者が、自分たちの業務知識を元にプロトタイプをLow-Codeで作る
- プロの開発者が必要に応じてコネクタ等を用意する
- 他の業務担当者にデモをしてフィードバックを得て改修する
- 運用担当者の視点からもフィードバックを得て反映する
機能のカバー範囲は、Power Apps + Dataverse ≒ OutSystems ?
Power AppsはUIレイヤーを主に担当していて、テーブル形式のデータの定義・ロジックの作成・バッチ的機能の作成・UI部品の作成はDataverseという別の製品で行うようだ。
この2つをあわせると、機能としてのカバー範囲は、ほぼOutSystemsと同じになるように見受けられた。
ちなみに、OutSystems 11ならIntegration BuilderでこのDataverseへの接続を作れたはず(試せていないが)。ある組織がLow-Codeを推進すると決めたとして、特定製品に完全に依存するとは考えにくい。Dataverseを介してOutSystemsとPower Appsが連携することも考えられるかもしれない。
OutSystems開発へのフィードバック
このEbookを読んで、OutSystemsとの関連で考えたこと
- 市民開発者の担当部分が違うかもしれない? Microsoftの方では、Low-Code開発を主に市民開発者で行っていた。OutSystemsでは、少なくとも私の知る限り、開発のほとんどはプロの開発者がOutSystems開発を学んで担当している
- ただし、市民開発者はプロの開発者ではないため、非機能要件や保守性を十分に考慮した開発を行い切ることは難しいはず。おそらく開発が進むと、Power Appsでもプロの開発者がLow-Codeのメインを担うのでは?
- OutSystemsでいうと、CoE (Center of Excellence) が、上記のプロの開発者相当のこともやるのではないか。以下のようなイメージ
- コネクタ等専門性の高い開発⇨プロの開発者(CoE)
- 一般のLow-Code開発⇨プロの開発者(各プロジェクトチーム)
- (ここはMicrosoftのEbookのやり方から着想)プロトタイプ開発による要件の明確化、特定部門飲みを対象とする小規模な開発⇨市民開発者