Power Apps :「 PowerPoint のような操作でカンタンにノーコードでアプリが作成できますよ」という誘惑

某SNS上で話題を挙げたら結構話が進んだので少しまとめて、過去2回ほど Power Apps を挫折した経験のある僕なりの考えを書いてみます。(某SNSで話に参加してくれたみなさん、ありがとうございました!)もちろんこの記事はあくまでも僕個人の考えなので、異論反論あると思うし、むしろ皆さんそれぞれの解釈で自分なりの解があっても良いハズです。

Power Apps を端的に説明する場合、記事タイトルのような文句を結構聞きます。キーワードとしては

  • PowerPoint のような操作感
  • カンタン
  • ノーコード
  • アプリが作成できる

大きく間違いではないように見えて、僕としては誤解を招きやすい表現もしくはこれを信じて触ってみたらガッカリされて結果的にマイナスイメージを植えかねないと思います。
まずその前に説明する対象によっても大きく変わってくると思います。ここでは以下の対象に説明する場合を想定します。

  • Power Apps という言葉を初めて知った or 名前は知ってるけどほぼ知らない
  • (市民開発者予備軍想定で)非エンジニア

■全体を通して僕の考え

多くの人に利用してもらいたく意図的に甘い言葉で誘うという考えは排除するとして…。

バックオフィスで働いているなどの非エンジニア層の人達に対して、 Power Apps を教える側はエンジニア層の人達が多いと思います。まずそのエンジニアと非エンジニアによって、説明で利用するキーワードの認識にも違いがあると思います。また、エンジニアの人も非エンジニアだった頃はあったと思いますが、その頃の感覚って思い出す事はできても、正確にその頃の感覚に戻る事は難しいと思います。つまり教える側のエンジニアにとってはすでに自身の知識やスキルや経験が(ここでは)邪魔をして、教わる側の非エンジニアの初心者の気持ちは100%わからないのでは?と思います。そういう観点からも、人に何かを伝える場合、自分が納得できる説明だとしても、伝えたい相手に納得感のある伝わり方じゃなければ意味がないと思うので、気を付けたいところです。

では、キーワード別に見ていきます。

■ PowerPoint のような操作感

間違いではないと思います。実際にコントロールを配置したり色の設定やテキストのセンタリングなどは PowerPoint のようにアイコンをポチポチとクリックして作り上げられるので。また、スクリーン(画面)の移動設定などもマウス操作だけで完結できたりします。ただ、 PowerPoint のような操作だけでアプリが作れるかというと大抵の人が求めているようなアプリは実現できないのでは?と思います。これは僕が最初に Power Apps に挫折した時に感じた事とガッカリした事ですが、結局「関数」を書かなきゃいけない場面が多いんですよね。もちろん例えば SharePoint のカスタムリストから Power Apps のアプリを作成する場合は、 SharePoint 側からボタン数回で1分待てばそれっぽいアプリができるけど、 Power Apps スタジオ側からゼロからあのアプリを作ろうとすれば、やはり関数必要だと思います。ちょっと何かをやりたくなると大抵「関数」が必要になります。この「関数」が挫折ポイントだし、「関数を使わないと大したことができない」という点がガッカリポイントでした。理由は後述します。
とにかく個人的には「 PowerPoint のような操作感」だけではなく、「 Excel のような関数」というキーワードは、特に非エンジニア層に説明する時には必須ではないかと思っています。関数が必要だという覚悟があるかないかは大きな違いですよね。
また、某SNSでは「 Access のような」というキーワードが良いのでは?という意見もありました。色々意見を聞かせてもらったら「なるほど!」とは思いましたが、僕の意見としてはあまりピンとこないのでは?と思っています。それは Access で業務システムを作った経験がある人がどれだけいるのか?という点です。正直、僕は Access をほとんど触った事がありません。今や Microsoft 365 のプランでは Access も利用できるプランが多いですが、僕の記憶が確かであれば、 Office 365 がなかった時代は、 Office スイートと言えば「 Word / Excel / PowerPoint 」であり、多くのユーザーはその中に Access は認識がなかったと思います。あくまでも僕の偏った経験上の話なので違うかもしれませんが、非エンジニア層が普段から業務で Word で文書を作成したり、 Excel で表計算をしたり神エクセルをしたり、 PowerPoint でプレゼンテーションを作成する事は日常的にあっても、 Access で作られた業務システムでデータ入力したり利用する事はあっても、自ら Access で何かを構築した経験もある人は少ないのではと思います。長くなりましたが、その層の人達に対して「 Access のように作れる」と説明してもピンとこないのではと思います。

■カンタン

間違いではないと思います。プロの方の構築する動画やデモを見ると魔法のように簡単そうにアプリが作られていくし、実際に慣れると簡単にアプリが作成できます。そう「慣れれば」です。僕も実際に Microsoft の吉田大貴くんのデモを2年前くらいに何度か見て凄い!って思ったけど、それは Power Apps に対してもそうだけど、それ以上に吉田大貴くんのマジックに対して凄いと思って魅了されました。当時は吉田大貴くんくらいしかマジシャンがいなかったのですが、今となれば彼と同じくらいのマジシャンがどんどん増えていますよね。ただ、実際は「僕にはあんなカンタンそうには作れそうにない…」が感想でした。それもこれもまた出てくる「関数」の壁です。
なので、たしかに「カンタン」はキャッチーなキーワードですし、 Power Apps に魅了された人たちは実際にカンタンだと思うし、エンジニア層の人達もコード書いた方がもっと楽にできる…と言いつつも、「コードが書けない人に対して」という観点ではカンタンだという認識を持つ人も多いと思います。でも、非エンジニア層からするとあまりカンタンカンタン言われても「そりゃあなたたちエンジニアからすればカンタンでしょうねぇ」という解釈をされてしまう恐れもあるので、言い過ぎにも注意かもしれないし、言い方にも工夫が必要かもしれないですね。

■ノーコード

ここです。僕の知る限りだと Power Apps が少し話題になりはじめた頃はとにかく「ノーコード」って説明があったと思います。今やそれが「ノーコード・ローコード」になってるんじゃないかと思います。つまりさすがに「ノーコード」だけでは厳しいという流れになったのではと。この「コード」の定義ですよね。これが人によって定義が違っていて、だから全体の説明に齟齬が出てくるんだと思っています。僕は事あるごとに言っていますが、「非エンジニアにとっては関数もコードですよ!」と。これはエンジニアの方が「それは正しい定義じゃない」と思っても、もはや正解不正解じゃないです。そう認識してる人が多いし、そう認識してる人に対して Power Apps を説明して広めていくんだと思って欲しいです。つまり関数は Power Apps を始める人には大きな壁だし大きな挫折ポイントでもあると疑いません。僕の話をすれば「if」が出てくるだけで拒絶感がありました。バックオフィスの非エンジニアの人でも Excel で関数バリバリ使いこなしている人もいますが、それは少数派なんじゃないかなと思います。仮にバックオフィスの人達に対して「 Excel 使える人?」って質問すればほぼ100%の人が手を挙げると思いますが、同じ人達に「 Excel の関数使える人?」って質問をしたら手を挙げる人は減ると思うんですよね。なので、 Power Apps を説明する際には「関数」というキーワード、そして「ノーコード」をキーワードにしたい場合は、「ノーコード・ローコード」を併記した方がイイのかなと思います。

■アプリが作成できる

これは正真正銘。いくらクソアプリだろうがアプリはアプリです。技術的に低レベルのアプリができたとします。例えば特にデータベースと連携せずに、数枚のスクリーンにそれぞれ自社の製品紹介文と製品画像を貼りつけただけの製品紹介アプリ。おそらく作成レベル的には関数も使わずに本当に PowerPoint のようにノーコードで作れると思います。技術的に低レベルでも作れるアプリだとしても、それが業務にどう役立ったか?メンバーや会社にどのように貢献できたのか?が大事ですよね。逆に技術的に高レベルなアプリだとしても、業務に役立たなければそっちの方がクソアプリと言われても仕方ないので。そういう意味でも僕自身も体感しているのが、「スキルよりもアイデア」なんじゃないかと思います(逆を言うとアイデアを体現できるために必要なスキルを習得できたらいいね、という事ですが)。つまり、非エンジニアであっても、プロ開発者より市民開発者の方が良いアプリを作成できる可能性はあるわけですね。なのでここは大いに夢を持っていただいても良いのかなと思いました。

■その他のキーワード

SNS上では「変数」を扱う事も大事であるという言葉をいただきました。たしかに初心者が躓きやすい要素としては大いにあると思います。僕も未だにあまり得意じゃないです。しかし、やはり対象が非エンジニアです。「変数」という言葉を聞いてどれだけの方がピンと来るのかな?コンパクトに説明をまとめたい場合はそのキーワードは必須なのか?を考えると、僕としてはここでは割愛しても良いのでは?と思いました。たぶん初心者の非エンジニアが最初にアプリを作成する時に、関数で躓く事はあっても、その段階で変数に躓く事はあまり想定していないです。一つ次の段階かなと思っています。一概には言えませんが、その段階に立つ頃には市民開発者として小さな成功体験を積み、更なる高みを目指してスキルアップするモチベーションは高い段階である事が多いのかな?と思いました。

また、「デバイス問わず」利用できるアプリを作成できる、というキーワードもあっても良いかもしれないですね。ただ、それが必要かどうかはその人たちの所属する会社や組織次第(そもそもモバイルNGとか)でもあったりするし、現状では1ソースでモバイルもタブレットもPCも使えるけど最適化させるとすると結構大変だったりするので、特にキーワードとして必須ではないかな?とは思いました。

■僕の現時点での Power Apps の説明は

Power Apps とは?

PowerPoint のような操作感と Excel のような関数の組み合わせで、非エンジニアでも慣れればカンタンにノーコード・ローコードでアプリが作成できます。

かな?冒頭に書いた通り、あくまでも僕の現時点での説明であって、異論反論あってもらって良いし、是非、皆さんも自分なりの考えで、対象を特定した上で、コンパクトに説明する説明文を考えてみてはいかがでしょうか?

【追記】
コソコソ一番下に書きますが、先日パートナー向けの某イベントで某社の偉い方が Power Platform について、「 SIer にとって内製化は危機」とハッキリ言っていました。その某社が今まで Power Platform について話している「市民開発者」などの文脈とはズレているなぁとモヤモヤしました。まぁ、つまりパートナー企業に対してそのような発信をしたという事は、パートナー企業もそういう気持ちで Power Platform を取り扱う事になるでしょうし、そのまま進むと日本では Power Platform もこれまでと変わらず外注するものであるという流れが続きますね。どうなんでしょうね!
まぁ、そういう意味ではそもそも本記事のように『アプリを作ってもらう事が前提で』非エンジニアの人に Power Apps を説明する機会も理由もなく、単に外注で作られた Power Apps のアプリを利用してもらう分には別にたいした説明の必要もないでしょうね…。むしろ業務上で説明をする機会があった場合、市民開発者へ向けたようなメッセージ性のある内容だと、怒られてしまう場合もありそうです。その気にさせて内製化を煽るような事をするな!と。僕はそれでもユーザーコミュニティのメンバーとしては、元々の「市民開発者」の文脈で変わらず Power Apps を広めていきたいので、この説明文は真剣に今後も考えていきますが。