【PowerPlatform】Microsoft Power Platform を実際に使ってみた感想

概要

実際の案件で Microsoft Power Platform に携わる機会があったので、所感を残しておく。尚、本記事は2023年5月時点の情報をもとに執筆しているので、今後のアップデート次第では状況が変わっている可能性がある。

Microsoft Power Platform とは

Microsoft が提供するアプリケーションの総称であり、PowerApps や PowerBI などのローコードで開発できるツール群のこと。詳細は公式サイトを参照。

前提

まず、前提として自分はローコード開発はまったくの未経験。一方、一般的なプログラミング言語(PHP や Java等)での開発経験はそこそこある。ある程度の開発経験はあるがローコード開発は初めて、といった開発者にとって、本記事が一助になれば幸いと思っている。

どんな案件だったか?

既存の社内アプリケーションを PowerPlatform で再現するのが開発の目的。いわゆるリプレース案件である。今回使ったツールは以下の通りで、PowerPlatform を用いた開発ではよくある組み合わせだと思っている。

  • PowerApps(アプリケーション)
  • SharePoint(データソース)
  • Power Automate(オートメーション)

結論

結論としては、PowerPlatform は素晴らしいツールであったことを最初に述べておきたい。

実のところ、当初は開発体験がいまいちに感じており、その1点だけを理由に「このツールは大して流行らないんじゃないか」と PowerPlatform(特に PowerApps) に対して懐疑的な印象を持っていた。ローコードと言っても要所々々でコードを書く必要があったり、コードはExcel関数をベースとした書き方であったり、保守性がいまいちだったり、バージョン管理が不便だったり、細かいところに手が届かなかったり、と不便に感じることは今でもたくさんあるし、Microsoft にはすぐにでも改善してほしいとさえ思っている。

ただ、そういった様々なデメリットを覆すほどのメリットがある。爆速で開発できることだ。

時折生じる原因不明の問題に頭を悩ませることも多々あったが、慣れてしまえばプログラミング言語での開発よりも圧倒的に時短で開発を進めることができる。一方で、開発特有の一種の勘所のようなものは必要だと思っていて、そこはある程度の知見が必要になってくるが、まったくの開発未経験者であっても数ヶ月ほど経験を積んでしまえば、高いレベルのアウトプットができる域まで到達可能と考えている。すなわち、技術習得のコストパフォーマンスについても圧倒的に高いといえる。

そのため、Microsoft Office365 を導入している企業は PowerPlatform を積極的に活用した方が良い、というのが自分の見解である。

使ってみた感想

前述した通り、PowerPlatform ではいくつかのツールを組み合わせて開発を進めることが多い。例えば、PowerAppsとSharePointの関係は、Spring Boot と MySQL のように、アプリケーションとデータソースの関係に位置している。Power Automate はワークフローの自動化なので、バッチを簡単に作れるツールと考えて良い。

PowerApps

操作性さえ慣れてしまえば爆速で開発可能。ただ、元々の仕様面で"データ制限"や"委任"の問題を抱えており、これらの知見を開発前に有しておかないと、そもそもの開発要件を満たせない可能性が出てくるので、そこは注意する必要があると考えている。その他、デメリットに感じている点は以下の通り。

  • バージョン管理は存在するが、差分が見れない・ブランチを切れない等いまいちなので実用レベルではない
  • コードがExcel関数ベースであるので視認性が悪い
  • 共通ロジックが作れないので保守性が悪い
  • 標準機能として備わっているフォーマッターによる整形がいまいち(手動整形の方がマシなレベル)
  • オブジェクトのレイヤー操作でドラッグ移動ができない(Adobeや Figma のような操作感とは程遠い)
  • 細かなデザインを表現することはできない
  • 罫線の表示コントロールに癖がある
  • SharePoint埋め込みのアプリの場合、データ取得の実装で致命的なバグがある(非公式での対処法はある)

とまあ、個人的に感じているデメリットは多々あるのだが、今後のアップデートで改善されることを期待している。

Power Automate

Power Automate はそれほど苦労する場面は多くなかった。ただ、PowerApps と連携する際に、戻り値が文字列型しか正常に返せないのと、SharePoint等のデータソースとの連携で細かい操作が行えず、結果として冗長なワークフローにせざるを得ない場面があったのが気になった。また、ワークフローの組み方によっては実行時間にも大きく影響するので、無駄のない処理を意識しないと想定外のところで問題が起きる可能性もあると感じた。

SharePoint

リストは使い勝手がよいが、複数インデックスが2件までだったり、そもそもインデックスに対応してないデータ型があったりと、大量データの扱いには強くない印象。ただ、小規模システムのデータソースとして活用する分には非常に有益で必要充分な機能が備わっている。一方で、権限管理が複雑でとっつきにくいところがあるので、公式マニュアルでしっかりとした解説がほしいところ。(SharePointサイトやリストで権限を別管理することが可能となっており、便利であるが初見では分かり辛い)

キャッチアップ方法

PowerApps

Microsoft のラーニングパスをいくつか受講したのと、こちらのサイトで紹介されている動画を視聴して、PowerAppsによるアプリ開発の流れをインプットした。一通りインプットした後は、数日で作れるレベルのサンプルアプリを開発し、アウトプット形式での学習も進めた。また、PowerApps ではアプリ内で扱えるデータ量に制限が設けられているので、初学者は委任問題についても調べておくことをおすすめする。

Power Automate

社内に研修資料があったので、それを活用して学習を進めた。デスクトップ版の基礎を学ぶような内容だったが、基本操作さえ抑えてしまえばクラウド版にも充分活かせた。なので、一般的な学習方法としても Microsoft のラーニングパスをどれか1つ学べば問題ないと思っている。(実際に手を動かして学べるハンズオン形式のものがよい)

SharePoint

SharePoint については必要に応じてGoogle検索することでの対処が多かった。今回は"リスト"をデータソースとして活用していたが、機能としてはシンプルなので、PowerAppsと連携する上で問題が起きれば都度調べる、といった感じで進めていた。ただ、これから学ぶ人は、ユーザー権限や委任問題、5,000件問題あたりは事前に目を通しておくことを強くおすすめしたい。

PowerPlatform が活かせる場面

PowerPlatform は「社内向けの小規模システム」の開発において有効なツールと考えている。Office365 との連携に強い反面、社外向けのサービス開発には向いておらず、データ数の制約も厳しいことから大規模システムには向いてない、というのが率直な感想である。なので、システム面で見ると活かせる場面はかなり限定的と言える。

だが一方で、レガシーな社内システムをモダン環境で再構築するといった需要は今後も高くなることが予想されるので、ビジネス面で見れば PowerPlatform の活用機会は今後増加するだろうと感じている。

今後のアップデートで期待すること

2023年3月、Microsoft は PowerApps の次世代 AI Copilot を発表した。開発者が AI と対話することでアプリ開発が容易になる、というものだ。これにより、開発効率がさらに加速し、今まで以上に開発速度の向上が期待できる。

開発効率の追求はもちろん大事で今後も強化していくものと思われるが、前述した通り、開発ツールとしてはデメリットが多くあり、そもそもの基盤が整っていないように感じるので、今後は保守性の向上やバージョン管理の機能強化にも力を注いでくれると嬉しいし、そこを改善すれば PowerPlatform 界隈も盛り上がりを見せるのではないかと思っている。今後の Microsoft の動きに大いに期待したい。

参考サイト

PowerPlatformの最新記事8件