Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スクラムで Power Apps 開発をやってみた / Tried to develop Power Apps with Scrum

スクラムで Power Apps 開発をやってみた / Tried to develop Power Apps with Scrum

Power Apps オンライン勉強会 (https://powerapps.connpass.com/event/201457) に登壇したときのスライドです。

Takashi Shinohara

February 19, 2021
Tweet

More Decks by Takashi Shinohara

Other Decks in Programming

Transcript

  1. スクラムで Power Apps 開発をやってみた
    2021/2/19
    篠原 敬志 (@karamem0)

    View Slide

  2. 自己紹介
    Name 篠原 敬志 (Takashi Shinohara)
    Company アバナード株式会社
    Award Microsoft MVP for Office Development (2018-)
    Twitter @karamem0
    Facebook t.shinohara.56
    LinkedIn tshino56
    Blog https://blog.karamem0.jp

    View Slide

  3. 事前アンケートの回答をお願いします
    https://forms.office.com/Pages/ResponsePage.aspx?id=P-3bknrTGU-jkvaXBQXMauLxNEt3DL1PqM-UpGBgIe5UODNXWjNBSlhLNzNZWjRXNzg3WVlWVzdONi4u

    View Slide

  4. はじめに
    スクラムってなんだ?

    View Slide

  5. スクラムの概要
    スクラムとはアジャイル開発の手法のひとつです。
    困難で複雑な問題に対応するためのフレームワークです。
    反復的で漸進的なアプローチにより予測可能性を最適化します。
    スプリントと呼ばれる短い期間で価値のあるインクリメントを生み出します。

    View Slide

  6. スクラムのメリット
    ビジネスの変化に対応しやすい
    価値のあるものを優先的に投入できる
    不具合の早期発見によりコストを削減できる

    View Slide

  7. スクラムの三本柱
    透明性
    作業やプロセスが作業
    を行う人やその作業を
    受け取る人に見えてい
    ること
    検査
    インクリメントと進捗
    状況は頻繁かつ熱心に
    検査されなければなら
    ないこと
    適応
    プロセスやプロダクト
    に問題があることがわ
    かったときは速やかに
    調整されること

    View Slide

  8. スクラムのプロセス

    View Slide

  9. スクラムの役割
    プロダクト オーナー
    プロダクトの価値を最
    大化することの結果に
    責任を持つ。常に 1 名。
    スクラム マスター
    スクラムを確立させる
    ことの結果に責任を持
    つ。常に 1 名。
    開発チーム
    プロダクトのインクリ
    メントを作成する。通
    常 10 名以下で構成さ
    れる。
    ステークホルダー
    プロダクトの要求を提
    供しインクリメントを
    レビューする。

    View Slide

  10. スクラムで Power Apps 開発?

    View Slide

  11. Power Apps 開発におけるスクラム導入のポイント
    スクラムでは開発言語や開発手法を規定しません。さらにいえばソフトウェア開発
    以外のドメインでもスクラムを適用することができます。これは Power Apps で
    あっても同様です。
    ただしすべてのシナリオにおいてスクラムが適しているわけではありません。以下
    のポイントで判断する必要があります。
    要件 規模 期間

    View Slide

  12. Power Apps 開発における検討事項
    Power Apps で開発するということは単にアプリを作成することのみを指すのでは
    ありません。作成したアプリをユーザーが使えるようにするために検討しなければ
    いけないことがあります。
    テストをどうする?
    デプロイをどうする?
    バージョン管理を
    どうする?
    運用をどうする?

    View Slide

  13. Power Apps はチーム開発には向かない?
    チーム開発を行う上での懸念事項として Power Apps の編集は同時にはできない
    という問題があります。作業が止まらないように実装以外のタスクをうまくチーム
    間で振り分ける必要があります。
    フロント
    エンド
    設計
    バック
    エンド
    設計
    アプリ
    作成
    テーブル
    作成
    コネクタ
    作成
    テスト
    ケース
    作成
    テスト
    実施
    レビュー
    準備

    View Slide

  14. Power Apps をチーム開発するためのプラクティス
    用途や対象によって適切な粒度でアプリを分割する
    例えば、申請アプリだったら…?
    申請者向けアプリ 承認者向けアプリ 管理者向けアプリ

    View Slide

  15. スクラムをやってみた

    View Slide

  16. 作ったもの
    ダッシュボード的なアプリ
    リストやグラフが複数表示される複雑な UI
    カスタム コネクタによる API 連携
    データ ソースとして Microsoft Dataverse を使用

    View Slide

  17. 作った人たち
    スクラム チーム
    開発チーム
    プロダクト
    オーナー
    スクラム
    マスター

    View Slide

  18. 開発チーム
    インクリメントの作成 (設計/開発/テスト)
    スクラム イベントへの参加
    バックログ リファインメントの実施

    View Slide

  19. プロダクト オーナー
    バックログ リファインメントの実施
    スクラム イベントへの参加
    プロジェクトの管理 (※)
    プロジェクトの進捗状況の報告
    開発チームのアサインの調整
    技術的なサポート (※)
    (※) 本来はスクラムにおけるプロダクト オーナーの役割ではない

    View Slide

  20. スクラム マスター
    スクラムに関するトレーニングの実施
    スクラム イベントへの参加
    開発環境や検証環境の整備 (※)
    Azure DevOps のセットアップ
    Power Apps や Office 365 のライセンスの管理
    技術的なサポート (※)
    (※) 本来はスクラムにおけるスクラム マスターの役割ではない

    View Slide

  21. Power Apps の CI/CD

    View Slide

  22. CI/CD
    継続的インテグレーション/継続的デリバリーまたは継続的デプロイメントの略
    ビルド/テスト/リリースのプロセスを自動化することが可能
    頻繁にテストをすることで不具合を早期に発見できる
    開発したものがすぐにユーザーに提供されるためフィードバックを得やすい
    作業の自動化によりヒューマン エラーが少なくなる
    アジャイルでは頻繁にリリースが行われるため作業の自動化は必須

    View Slide

  23. Azure DevOps
    アプリケーション ライフサイクル マネジメント (ALM) をサポートするためのさ
    まざまな機能を備えるツール
    Azure Boards Azure Pipelines Azure Repos Azure Test Plans Azure Artifacts

    View Slide

  24. Power Apps の CI/CD のアーキテクチャ
    開発環境
    ソリューション
    キャンバス アプリ
    フロー
    カスタム コネクタ
    テーブル
    検証/本番環境
    ソリューション
    キャンバス アプリ
    フロー
    カスタム コネクタ
    テーブル

    View Slide

  25. Power Apps のソリューション
    アプリ/フロー/その他のコンポーネントを含めることができる
    カスタマイズをまとめて他の環境に移動することができる

    View Slide

  26. Power Platform Build Tools
    ソリューションをエクスポート/インポートするための機能を提供する Azure
    DevOps の拡張機能

    View Slide

  27. Service Connection
    Azure DevOps から Power Platform への接続方法は 2 種類あります。
    ユーザー名/パスワード
    サービス プリンシパル/クライアント シークレット (推奨)
    サービス プリンシパルを使用する場合、Azure AD アプリケーションを Power
    Platform 環境のアプリケーション ユーザーとして追加する必要があります。作成
    するための PowerShell スクリプトが提供されています。

    View Slide

  28. Azure Pipelines: Build Pipeline
    ソリューションをエクスポートして Azure Repos に Push する Pipeline

    View Slide

  29. Azure Pipelines: Release Pipeline
    Azure Repos から Clone してソリューションをインポートする Pipeline

    View Slide

  30. Azure Repos
    展開したソリューション ファイルは変更管理が可能
    (ただしキャンバス アプリは msapp 形式になるため不可能)

    View Slide

  31. DEMO

    View Slide

  32. Power Apps テスト スタジオ
    Power Apps の UI テストを実施できる機能 (試験段階)

    View Slide

  33. PowerAppsTestAutomation
    Power Apps テスト スタジオのテストを自動化するためのプロジェクト
    Azure Pipelines からテストを実行することが可能

    View Slide

  34. Azure Pipelines
    PowerAppsTestAutomation は拡張機能として提供されていないため自前でのビ
    ルドが必要

    View Slide

  35. DEMO

    View Slide

  36. まとめ
    アプリは作ったら終わりではないです。利用者からフィードバックを受け常に改善
    していくことが重要です。スクラムを採用することでアプリを継続的に成長させる
    ことができます。
    アジャイルにとって CI/CD は非常に重要です。CI/CD を実践することで、開発者
    は開発に集中することができ、またアプリの品質を高めることができます。

    View Slide

  37. ご清聴ありがとうございました。
    質問はありますか?

    View Slide