Power Platformを学習する環境を整える（ただし有料）

注1：本記事は2022年11月現在の情報です
注2：本記事は業務アプリ開発をやってきた筆者個人の感想です
注3：前置きが長いので読み飛ばしたい方は[本題](#power-platform)まで進んでください

# 前置き1：スクラッチ開発はどこへ行く
[IDC Japanのレポート](https://www.idc.com/getdoc.jsp?containerId=prJPJ49023422)によれば、2023年には新規開発されるアプリの60%がローコード/ノーコードプラットフォームを利用したものになるそうです。またローコード/ノーコードと関わりが深いDXも[2030年度には国内で5兆1,957億円（2020年度比3.8倍）もの市場規模になると予測](https://www.fcr.co.jp/pr/22025.htm)されています。

こうした数字を見るとIT投資は増加しており私達の業界はこの先も明るいと思いそうになりますが、そうではありません。何故かというと[IT投資の全体額（市場規模）はここ数年横ばい](https://webtan.impress.co.jp/n/2020/11/18/38152)だからです。つまりローコード/ノーコード、DXなどの躍進に取って食われた市場があります。それは何か。

スクラッチ開発です。

というかスクラッチ開発なんて私がこの業界（業務アプリ開発）に入った10年以上前から縮小傾向です。当時在籍していた会社は.NETアプリのインプリを売りにしていたのに、スクラッチ開発は私がアサインされたプロジェクト1件だけ、ということもありました。それが最近のローコード/ノーコード、DXの熱狂的な盛り上がりにやられて益々その速度を増した感じがします。2019年のデータですが[スクラッチ開発は下火になるという予測](https://business.fitnessclub.jp/articles/-/211)もされてました。加えて経済産業省が[DXリテラシー標準](https://www.meti.go.jp/policy/it_policy/jinzai/skill_standard/DX_Literacy_standard_ver1.pdf)なるものを公開しており、DX取り組み時のツール活用について言及しているのですが、当たり前ですがスクラッチ開発なんて取りあげられていません。

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/7cf399d8-3b64-1f42-ab23-b25914fddb25.png)

（余談ですが同資料ではAIについても述べています。QiitaでもPythonや機械学習が人気ですが、業務でAIを活用しようとなった場合、アプリやシステムをPythonでフルスクラッチ開発することはほとんど無いと思います。多くの場合パッケージ製品を導入してパラメータ調整したり、ハーフスクラッチのような形態になるのではないでしょうか）

スクラッチ開発がこの先も市場規模を縮小する下地は出来上がっているのです（それも何年も前から）。料亭で出される会席料理のような、あるいは幼稚園へ持って行かせるキャラ弁のような、作り手の手間と愛情が伝わりやすいスクラッチ開発は時代の波に飲まれ、オーガニック食材のみを使用するレストランのように少数のこだわりを持つ人しか手掛けなくなるのかもしれません。

# 前置き2：強くてニューゲーム
経済産業省先生から「スクラッチ開発君、キミの席はもう無いから」と言われてしまっては仕方ありません。我々業務アプリ開発者はその事実を真摯に受け止め別の生き残る道、つまりはDXの椅子取りゲームに参加する必要があります。

そこでローコード/ノーコードです。

上図にあるように経済産業省先生もローコード/ノーコードなら認めていますし、「DXリスキリング」で検索すれば事例はたくさん出てきます。

何よりローコード/ノーコードはスクラッチ開発をやってきたエンジニアと相性がよいです。それは「構造化して考える」というアプリ開発の基本的な素養が、そっくりそのまま生かせるからです。GUI、アルゴリズム、データベース、例外はありますがこれらは構造化の実装例です。ローコード/ノーコードのフロー開発なんて構造化処理そのものなので、業務アプリ開発者にとっては造作もないことでしょう。

また、[まつもとゆきひろ氏はローコード/ノーコードについて以下のように述べています](https://logmi.jp/tech/articles/325270)（※誤字と思われる個所もそのまま引用します）。

>ノーコード開発と言われているものでそれができるのは、領域を非常に絞って、既存の部品の組み合わせによって目的を達成できるからだと思うんですよ。しかし、人間のやりたいことは多岐にわたっていて。既存の簡単な組み合わせでできることでは、早晩に限界が来てしまいそうな気がするんですよね。そうなった時に、そこから脱することはすごく難しい。そこがノーコードの限界になるんじゃないかという気はします。
>
>ノーコードをイメージさせるものの典型例で、Scratchのようなものがあります。ブロックを組み合わせていることで、子どもでもロジックを書くけるものですが、子たちにScratchさせると、ある程度から嫌がる子が出てくるんです。
>
>なぜかというと、ゲームのルールがどんどん複雑になると、ロジックが一画面で収まらなくなります。ロジック書くだけでもガンガンスクロールさせないといけなくて。そうすると生産性が下がってきて、小学校5、6年になると「RubyなりPythonなりで直接書かせてくれ」という子が出てくるんです。

子どものプログラミング教育を例にとってローコード/ノーコードの弱点を述べていますが、業務アプリ開発に置き換えても諸手を挙げて同意してしまう位思い当たる節があります。パッケージ製品の標準機能で実現できない要望はアドオン開発で対処するなんてよくある光景です。

これはプログラミングのバックグラウンドを持たない人がローコード/ノーコードを手掛けることと比較して、我々に大きなアドバンテージをもたらします。HTMLの終了タグを出力し忘れたせいでレイアウトがぐちゃぐちゃになったこと、if文の演算子を「>=」ではなく「>」にしたせいで意図しない挙動をしたこと、正規化しすぎたらテーブルが多くなって不具合とパフォーマンス劣化の温床になったことなど、午前2時にエリクサー（エナジードリンク）を何個も消費しHPを騙し騙し回復しながらバグと戦って得た経験値は、何ひとつ無駄にすることなくローコード/ノーコード開発にも適用できるのです。あんな経験は二度と御免ですが。

# 前置き3：タダでいつでも好きなだけ作れたあの頃
そいういう訳でローコード/ノーコードをリスキリングしたいのですが、ここで問題が出てきます。

- ローコード/ノーコードプラットフォームは学習目的の無料で使えるライセンスを発行していないことがある

リスキリングのために「試しに使ってみる」には、お金が掛かったり期間が限られているのです。参考までに冒頭のIDC Japanのレポートであげられてるベンダーのプラットフォームについて調べてみました（詳しい資料を請求した訳ではなくWebで調べた限りの情報ですので、間違っている部分があるかもしれません）。

|ベンダー|製品|学習に使えるライセンスがあるか|他にタダで使える手段はあるか|
|----|----|----|----|
|OutSystems|OutSystems|無料で使える「Personal Environment」がある|-|
|アマゾン ウェブ サービス|Amplify Studio|なし|作るだけなら無料、アプリをホストする場合は従量制で有料だが12か月の無料期間あり|
|NTTデータイントラマート|intra-mart Accel Platform|なし|無償トライアルがあるが31日の利用期限あり|
|キヤノンITソリューションズ|WebPerformer|なし|無償トライアルがあるが1か月の利用期限あり|
|Claris International|Claris FileMaker|なし|無料評価版があるが45日の利用期限あり|
|グーグル|AppSheet|なし|作るだけなら無料、アプリをデプロイすると料金が発生する|
|サイボウズ|kintone|実質無期限で使える無料の「開発者ライセンス」がある|-|
|ServiceNow|App Engine|無料で使える「開発者インスタンス」があるが10日間ログインが無いと削除される|-|
|Salesforce|Lightning Platform|無料で使える「Developer Edition」がある|-|
|マイクロソフト|Power Platform|無料で使えるいくつかのプランがある（詳しくは後述）|-|

学習用（と思われる）のライセンスを提供しているのは10社中5社でした。それ以外のうち2社はアプリ作成だけなら無料でデプロイすると課金される仕組みです。残りは期限付きの無償トライアルがありますが、そもそもトライアルは業務とのFit & Gap分析のためにあるのであって、個人が学習目的で利用を申し込んでも恐らく断られると思います。

この世のほぼすべての会社は事業で扱うソリューションや製品が方針で決まっており、私のような末端のソルジャーがそれを決める権限はありません。SI業界の場合、自分が所属する会社のソリューションが、個人でも無料で学べるものであればよいのですが、そうでなければエンジニアには死活問題です。中にはライセンス料の立替や、あるいは保持している包括ライセンスなどを利用させてくれる会社もあるかもしれませんが、そのような技術の福利厚生に恵まれたところは少数派でしょう。よしんばライセンスをゲットしたところで、セキュリティの壁で社内ネットワーク以外からのアクセスは禁止されている場合も多いです。

休日はプログラミングのクエスト消化に励むいい意味で意識高いエンジニアは、そのような環境に身を置くことになるかもしれない可能性を考えると、ローコード/ノーコードの隆盛は受け入れ難いかもしれません。「1個のアプリ（を作ること）は、100冊の技術書（を読むこと）より勝る」とは今しがた私が作りあげた格言ですが、「習うより慣れろ」「まず写経」など、実際に触って作ってみるのが上達への近道であることは多くの人が支持するところでしょう。本を読むだけでは効率が悪いし難しいのが実情です。

業務アプリのインプリを生業にしている人にとって、SDKとエディタさえあれば後はタダでいつでも好きなだけ学習環境を構築してアプリを作れた時代は、ローコード/ノーコード時代の到来と共に過去の遺物になってしまうのでしょうか。ここで郷愁に浸るだけでは時流に取り残されるだけです。ぼっちは私だけでよいのです。自社ソリューションの学習機会を得るのが困難なら、身銭を切ってでも別のプラットフォームを習得し、二刀流、三刀流になって自身のプレゼンスを向上させ、あわよくばもっと活躍できる別の場所に転生して無双すればよいのです。

# Power Platform
ようやく本題です。ローコード/ノーコードプラットフォームの一角であるマイクロソフトのPower Platformを利用するまでの手順を説明していきます。話の流れ的に他のプラットフォームを選んでもよさそうですが、そうならないのは大人の事情という月並みな力学が働くためです。

Power Platfromは以下で構成されたサービス群の総称です。
|サービス|簡単な説明|
|----|----|
|Power Apps|GUI（操作画面）を作る|
|Power Automate|処理を作る|
|Power BI|データ分析してリッチなグラフを出力する|
|Power Pages|ビジネスWebサイトを作る|
|Power Virtual Agents|チャットボットを作る|

初学者であればまずはPower Apps、Power Automateを使って開発してみるのがよいでしょう。この2つがあればとりあえずアプリっぽい物が作れます。

# 利用プラン
マイクロソフトが提供するプランはラインナップが混沌としているので、タダで使うにしても自分に合ったものを選ぶだけで一苦労です。ここではなるべく手間とお金を掛けず期限なしでPower AppsとPower Automateが使えるプランを中心に取りあげます。

### Power Apps開発者向けプラン

https://powerapps.microsoft.com/ja-jp/developerplan/

永年無料ですが利用するにはいくつか条件があります。

- 所属している会社がOffice 365を導入している
- 会社のメールアドレスでサインインする

このように会社が契約しているOffice 365を利用するパターンとなります。しかしこのパターンは前述したセキュリティの壁問題が出てきます。試しに私が自宅から会社のメールアドレスでサインインしようとしたら案の定遮断されていました。もしこれらの条件がクリアできるならこのプランが一番お手軽かと思います。

### Office 365 開発者プログラム

https://developer.microsoft.com/ja-jp/microsoft-365/dev-program

実質無期限無料で利用できます。基本は90日間の期限付きなのですが「有効な開発者の活動が継続する限り」無期限で3か月ごとに更新されます。「有効な開発者の活動が継続」の定義が曖昧なのですが[FAQ](https://learn.microsoft.com/ja-jp/office/developer-program/microsoft-365-developer-program-faq)には以下のように書かれています。

>2019年4月に、開発に積極的に使用している場合は、90日ごとにサブスクリプションを永久的に更新できる新しいモデルに移行しました。 このモデルにより、積極的にソリューションを開発している開発者が、必要な限りサブスクリプションを持てることを担保できるのではないかと考えたのです。 頻繁に開発している場合は、サブスクリプションの有効期限が切れることがありません。 自動的に延長されます。

恐らく90日間に1度アクセスするだけではダメだと思います（詳しい条件は有志の検証により推測はできてるみたいです）。期限切れになっても新たに申し込むことはできるので気にしない人はこのプランでよいと思います。

---------------------------------------

多くの人はこの2つのどちらかで事足りると思います。ものぐさな私はOffice 365 開発者プログラムだと、こんなんさァッッ絶対アレじゃんうっかり失効させてデータロストするやつじゃん、と思ったので別のプランを契約しています。

### Office 365 E1
1か月1090円ユーザー／月の有料プランです。懶惰起因によるデータロストのリスクをお金で解決する場合これが最安級となります。「最安」で無いのは、他にMicrosoft 365 F3というプランが870円ユーザー／月であるからです。しかしこちらのプラン、[マイクロソフトのサイト](https://www.microsoft.com/ja-jp/microsoft-365/enterprise/f3)を見ると「ご購入前の相談窓口」というボタンしかなく、サイトの記述を見ても法人専用のプランに見受けられます（もしかしたらMicrosoft 365 F3も個人で利用できるパスがあるかもしれません）。

という訳でこれ以降はマイクロソフトに課金したい人向けにOffice 365 E1の購入手順を記載していきます。

# 購入しよう
[こちらのマイクロソフトのサイト](https://www.microsoft.com/ja-jp/microsoft-365/enterprise/compare-office-365-plans)を開き、Office 365 E1の[今すぐ購入]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/62333f9b-e9ed-087d-4e6c-4f56f64e032a.png)
メールアドレスを入力します。ここで入力するのは会社のメールアドレスではなく個人で使用しているメールアドレスです。フリーメールだと登録できない場合があるようですが、私はマイクロソフトアカウントのメールアドレスを使ったら通りました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/e2a29b84-a9a2-08fb-eda9-9ec18b39e30a.png)
新しいアカウントを作成する確認画面が表示されます。
![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/045b6d2a-6da3-b8e0-f4a1-ae911dbfdbe9.png)
会社名などを入力します。ここは適当に「亀山社中」とか「帝愛グループ」とか、学校法人という設定なら「トレセン学園」とかでもよいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/fff2da41-3fd2-53dd-4407-a9b565f23847.png)
本人確認を行います。
![タイトルなし2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/3460aabc-0f0f-fabd-e4cc-27bc47184b60.png)
Office 365のサインインに使用するメールアドレスを作成します。
![タイトルなし3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/45c3b7f5-c550-3433-e834-0c7849b3527a.png)
支払い額を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/77bc2dd7-0393-5695-832f-6a9cf5a8d3b8.png)
支払い方法を追加します。
![タイトルなし4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/d59cce42-e810-a9b6-a34b-fa9d16ff26d6.png)
最終確認です。[注文]をクリックすると確定するので、ローコード/ノーコードエンジニアの嗜みとして裏でフローがどのように動いているか想像しながらレスポンスを待ちましょう。
![タイトルなし5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/756bc7a9-4953-a27f-52d8-48f5e7ac9421.png)
最後に作成したメールアドレス（ユーザー名）の情報が表示されます。
![タイトルなし6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/833fa8f1-a37b-c6a1-b1a0-e10f69dfeb8f.png)
# Office 365にサインイン
[Office 365のサイト](https://www.office.com/)から購入時に作成したメールアドレス（onmicrosoft.com）でサインインします。その後の画面で左上のベントウメニューからアプリ一覧を選択すると、Power AppsとPower Automateが表示されます。
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951879/90dde21e-4a2a-b417-8aee-2719564f58b0.png)