Power Apps オンライン勉強会 (https://powerapps.connpass.com/event/201457) に登壇したときのスライドです。
スクラムで Power Apps 開発をやってみた2021/2/19篠原 敬志 (@karamem0)
View Slide
自己紹介Name 篠原 敬志 (Takashi Shinohara)Company アバナード株式会社Award Microsoft MVP for Office Development (2018-)Twitter @karamem0Facebook t.shinohara.56LinkedIn tshino56Blog https://blog.karamem0.jp
事前アンケートの回答をお願いしますhttps://forms.office.com/Pages/ResponsePage.aspx?id=P-3bknrTGU-jkvaXBQXMauLxNEt3DL1PqM-UpGBgIe5UODNXWjNBSlhLNzNZWjRXNzg3WVlWVzdONi4u
はじめにスクラムってなんだ?
スクラムの概要スクラムとはアジャイル開発の手法のひとつです。困難で複雑な問題に対応するためのフレームワークです。反復的で漸進的なアプローチにより予測可能性を最適化します。スプリントと呼ばれる短い期間で価値のあるインクリメントを生み出します。
スクラムのメリットビジネスの変化に対応しやすい価値のあるものを優先的に投入できる不具合の早期発見によりコストを削減できる
スクラムの三本柱透明性作業やプロセスが作業を行う人やその作業を受け取る人に見えていること検査インクリメントと進捗状況は頻繁かつ熱心に検査されなければならないこと適応プロセスやプロダクトに問題があることがわかったときは速やかに調整されること
スクラムのプロセス
スクラムの役割プロダクト オーナープロダクトの価値を最大化することの結果に責任を持つ。常に 1 名。スクラム マスタースクラムを確立させることの結果に責任を持つ。常に 1 名。開発チームプロダクトのインクリメントを作成する。通常 10 名以下で構成される。ステークホルダープロダクトの要求を提供しインクリメントをレビューする。
スクラムで Power Apps 開発?
Power Apps 開発におけるスクラム導入のポイントスクラムでは開発言語や開発手法を規定しません。さらにいえばソフトウェア開発以外のドメインでもスクラムを適用することができます。これは Power Apps であっても同様です。ただしすべてのシナリオにおいてスクラムが適しているわけではありません。以下のポイントで判断する必要があります。要件 規模 期間
Power Apps 開発における検討事項Power Apps で開発するということは単にアプリを作成することのみを指すのではありません。作成したアプリをユーザーが使えるようにするために検討しなければいけないことがあります。テストをどうする?デプロイをどうする?バージョン管理をどうする?運用をどうする?
Power Apps はチーム開発には向かない?チーム開発を行う上での懸念事項として Power Apps の編集は同時にはできないという問題があります。作業が止まらないように実装以外のタスクをうまくチーム間で振り分ける必要があります。フロントエンド設計バックエンド設計アプリ作成テーブル作成コネクタ作成テストケース作成テスト実施レビュー準備
Power Apps をチーム開発するためのプラクティス用途や対象によって適切な粒度でアプリを分割する例えば、申請アプリだったら…?申請者向けアプリ 承認者向けアプリ 管理者向けアプリ
スクラムをやってみた
作ったものダッシュボード的なアプリリストやグラフが複数表示される複雑な UIカスタム コネクタによる API 連携データ ソースとして Microsoft Dataverse を使用
作った人たちスクラム チーム開発チームプロダクトオーナースクラムマスター
開発チームインクリメントの作成 (設計/開発/テスト)スクラム イベントへの参加バックログ リファインメントの実施
プロダクト オーナーバックログ リファインメントの実施スクラム イベントへの参加プロジェクトの管理 (※)プロジェクトの進捗状況の報告開発チームのアサインの調整技術的なサポート (※)(※) 本来はスクラムにおけるプロダクト オーナーの役割ではない
スクラム マスタースクラムに関するトレーニングの実施スクラム イベントへの参加開発環境や検証環境の整備 (※)Azure DevOps のセットアップPower Apps や Office 365 のライセンスの管理技術的なサポート (※)(※) 本来はスクラムにおけるスクラム マスターの役割ではない
Power Apps の CI/CD
CI/CD継続的インテグレーション/継続的デリバリーまたは継続的デプロイメントの略ビルド/テスト/リリースのプロセスを自動化することが可能頻繁にテストをすることで不具合を早期に発見できる開発したものがすぐにユーザーに提供されるためフィードバックを得やすい作業の自動化によりヒューマン エラーが少なくなるアジャイルでは頻繁にリリースが行われるため作業の自動化は必須
Azure DevOpsアプリケーション ライフサイクル マネジメント (ALM) をサポートするためのさまざまな機能を備えるツールAzure Boards Azure Pipelines Azure Repos Azure Test Plans Azure Artifacts
Power Apps の CI/CD のアーキテクチャ開発環境ソリューションキャンバス アプリフローカスタム コネクタテーブル検証/本番環境ソリューションキャンバス アプリフローカスタム コネクタテーブル
Power Apps のソリューションアプリ/フロー/その他のコンポーネントを含めることができるカスタマイズをまとめて他の環境に移動することができる
Power Platform Build Toolsソリューションをエクスポート/インポートするための機能を提供する AzureDevOps の拡張機能
Service ConnectionAzure DevOps から Power Platform への接続方法は 2 種類あります。ユーザー名/パスワードサービス プリンシパル/クライアント シークレット (推奨)サービス プリンシパルを使用する場合、Azure AD アプリケーションを PowerPlatform 環境のアプリケーション ユーザーとして追加する必要があります。作成するための PowerShell スクリプトが提供されています。
Azure Pipelines: Build Pipelineソリューションをエクスポートして Azure Repos に Push する Pipeline
Azure Pipelines: Release PipelineAzure Repos から Clone してソリューションをインポートする Pipeline
Azure Repos展開したソリューション ファイルは変更管理が可能(ただしキャンバス アプリは msapp 形式になるため不可能)
DEMO
Power Apps テスト スタジオPower Apps の UI テストを実施できる機能 (試験段階)
PowerAppsTestAutomationPower Apps テスト スタジオのテストを自動化するためのプロジェクトAzure Pipelines からテストを実行することが可能
Azure PipelinesPowerAppsTestAutomation は拡張機能として提供されていないため自前でのビルドが必要
まとめアプリは作ったら終わりではないです。利用者からフィードバックを受け常に改善していくことが重要です。スクラムを採用することでアプリを継続的に成長させることができます。アジャイルにとって CI/CD は非常に重要です。CI/CD を実践することで、開発者は開発に集中することができ、またアプリの品質を高めることができます。
ご清聴ありがとうございました。質問はありますか?