How Microsoft publishes product release plans using Power Platform
The Microsoft business applications team, which includes Dynamics 365 and Power Platform, releases hundreds of features to market every year. We document feature details and make them available to our customers and partners using release plans. Release plans are published twice per year and updated frequently throughout the year. Producing release plans for the entire product portfolio (35 products) was a laborious process requiring business process enhancements, notifications, reporting, and automation. This work stream requires hundreds of people, including product managers, product marketing managers, and content developers, to author, review, and publish release plans. Six months ago, we digitally transformed the release plan management and publishing process, shifting to an automated process by using the Power Platform. We would like to share how we did it and what we learned along the way.
BEFORE POWER PLATFORM/DYNAMICS 365 – Business process, challenges, and opportunities
Prior to the Power Platform implementation, product managers (PM) and document writers authored, updated, and published the release plans directly in GitHub. PMs made changes and created pull requests (PRs) in GitHub, and the writers updated the content as required. Then the product marketing managers and product owners reviewed the content in Word (exported from GitHub). Editors finalized the content, and once it was ready, they merged and published everything. All communications/follow-ups were handled through GitHub comments or emails.
Image 1: GitHub shows how the topic changes appears for a pull request
We had key challenges to face in this business process, such as:
- Maintaining consistency across apps and features– Multiple teams were involved in authoring/updating the release plans in free-form text. Keeping a consistent format of information across all the apps and features was difficult.
- Reviews were manual and time consuming– The reviews with product marketing managers and product owners were done via email using Word docs. This process required manual effort and was error-prone since the comments needed to be merged back into GitHub.
- Tracking and reporting– As individual teams created and updated release plans in GitHub, it was hard to track the features shipping for the entire release or within a certain month. It was a challenge to accurately report the release status of each app and feature.
- Holding content for a disclosure moment – Since all the release content was managed within GitHub in a single repository, holding back content related to an app or a feature for an announcement was risky. We released updates to the prior release plans regularly, and there was an opportunity for the new content that was held for a particular announcement or event to slip through into a live publish too early.
These challenges created the following opportunities:
- All the release plans should be validated through business rules to get consistent and accurate output across all the teams. We need standardized templates and fields to implement this.
- Reviews should be automated, and stakeholders should be notified/reminded when an action is needed. All review feedback should remain in one place and incorporated without additional manual steps.
- The release plan information should be stored in a structured database that allows tracking and reporting.
- GitHub should hold only the content that is ready to publish. The remaining content should stay outside GitHub but still allow all the stakeholders to create/review and update the content as and when required.
POWER PLATFORM SOLUTION – Release Planner App
We chose to implement the solution using Power Platform since it provided the flexibility and agility to solve our challenges.
The model-driven Power Apps implementation started in March 2019, and it went live within a month to all Business Application team members, including product managers, document writers, editors, and product marketing managers. The 2019 release wave 2 plans were authored and delivered using this model-driven app. The Monthly Active Users (MAU) for the app is around 500 users.
Image 2: The model-driven Power Apps to author/update/review the release plans
The product managers create/update the release plan detail in the release planner app. The PM provides the feature name, the planned release timeline, feature detail, and any additional information that will be published in the release plan. Once the PM completes their input, they toggle a field to indicate that the plan is ready for review. The content publisher and Product Marketing Managers are notified using Power Automate, then they review and update the content in the app.
Image 3: Model-driven Power Apps to capture all necessary information for the release plan publishing..
Once the feature is reviewed, a flow, built using Power Automate, picks those features and creates/updates them in GitHub as PRs, then notifies the editors. Editors review them and merge the changes for publication. The editor’s updates in GitHub will sync back to the Common Data Service (CDS) via flow.
We used the following technologies to generate the release plans:
- A model-driven app for PMs to create/update release plans (including a Power Apps Component Framework (PCF) control to include screenshots)
- Power Automate to alert reviewers
- Power Automate to sync the release plans with GitHub (using GitHub custom connector)
- Power Automate to generate a formatted Word document with release plans for each product (to share internally with leadership and partner teams)
- Power BI & SQL Server Reporting Services (SSRS) reports to display status to stakeholders.
Image 4: Use of Power Apps Component Framework (PCF) for image uploading
Image 5: Power Automate to sync release plans with GitHub.
IMPACT AND BENEFITS
Some of key impacts and benefits from using the Power Platform solution are:
- Agility– The content can be added/updated quickly through the model-driven app.
- Flexibility– The content can stay in the app until it is ready to be published. There is no risk of accidental disclosure.
- Simplicity– An update to a feature such as release date can be updated by a PM in the app which can reflect in multiple places (change history, planned features, and the feature topic) in the release plan automatically and doesn’t require a manual update in GitHub.
- Process driven– All internal reviews are automated and any critical updates alert the stakeholders to take necessary action.
- Consistency – We get a consistent release plan for all products because the app enforces certain mandatory fields and a uniform template.
- Simple reporting – Having all the release plans in Common Data Service allows us to generate various reports regarding the features that are planned, shipped, etc.
- Incorporate In-product guided help in the app to on board new users easily.
- Power Automate Approval process to enable approvals via emails for key changes.
We hope that you find the story useful and that it may spark ideas if you have similar challenges in any of your business processes. Please comment below to let us know your thoughts.