Hello everyone,
As a team we have the following setup for our model driven app implementation :
- Each one of us owns a dev environnment in which they perform their day to day tasks.
- At the completion of each feature , a developer will run a devops pipeline to commit their work to Git, He(she) will also make sure to pull the latest code from Git to merge any conflicts before submitting a PR.
Our solution is an unmanaged solution for the time being as we're in the early stages of development.
The issue we have been facing lately is that some components would be removed or cleaned up in the main branch but then would be restored in of the commits of the dev branches since our Azure Devops comit pipeline packs and exports the solution that is unmanaged and therefore any zombie component is also checked out to Git. These are viewed as additions in the PR review process and sometimes go unnoticed and merged into main.
We have thought about including two steps at the beginning of our import Azure Devops pipeline:
- Dev Environnement Reset
- Import of test data
After that, we would proceed with the import of the unmanaged solution like we normally do.
Before we dig into this solution, I was wondering if there are any other solutions to this and to having to manage the solution?
Best
Faten
Solved! Go to Solution.
A few clarifications about point one regarding segmenting the solution into smaller pieces:
Component Ownership and Minor Changes: Segmenting your solution doesn't mean developers are strictly limited to their components. While a developer may own one or more components at a time, it doesn't prevent them from making minor changes to components outside their pool. They will need to coordinate with the owner, but it isn't a rigid barrier.
Functionality vs. Component Focus: Segmenting by components can potentially block some people because they can't adjust components not under their control. However, you can segment by modules or features instead, allowing developers to work on related sets of functionality.
Upfront Knowledge of Components: It's true that knowing all components upfront might not always be feasible. In real-life scenarios, you can adjust the segmentation dynamically as the project evolves, ensuring flexibility.
Workload Distribution: Workload distribution might seem unfair if it's based solely on components. Instead, you can assign tasks based on user stories or features, ensuring everyone gets a balanced workload. This way, developers might touch various parts of the solution, contributing to the needed functionality.
To give you a better idea, Look at these segmentation samples:
Also regarding to point one in my previous response i forgot to mention something really important. to avoid ownership issues is recommended to use service accounts it also simplifies connection references. This allows developers to create components using a service account, preventing constraints tied to personal accounts.
Regarding to point 3 you can find more information about co-authoring and collaboration in power platform bellow, please check these articles:
Power Automate: Announcing co-presence in Power Automate
Model-Driven Apps: Announcing public preview of coauthoring in Modern App Designer
Canvas Apps: Allow multiple Power Apps developers to simultaneously edit canvas apps - Azure DevOps version
If this helps, please mark it as the solution by clicking "Accept as solution." A "Thumbs Up" would be greatly appreciated if you found the content helpful. Thanks!
Hi @fatenyahiaoui_m ,
Those "zombie" components are a common issue and are one reason I don't recommend handling Power Platform components in different branches/environments. Currently, Power Platform does not support component versioning.
The simplest way to work with multiple developers in the same model-driven app solution is by segmenting your unmanaged solution into smaller pieces. You can refer to the Microsoft documentation for more details on creating segmented solutions.
Each developer can work in their own segment (or "branch") and then move the components to the main branch once they are completed.
Suppose Developer 1 is changing a component and is in the middle of development, but Developer 2 has something ready to deploy to production.
In these cases, you should use patches instead of branches. Even if you reset the environment, the last developer to commit will overwrite others' changes.
A more versioning-friendly approach is to use a managed environment. Deploy all developers' changes to this managed environment, creating a new layer for each change. The last developer to commit will create the highest layer. Learn more about solution layers.
If my response resolved your issue, please feel free to mark it as the solution by clicking "Accept as solution." This helps others find the answer more easily. If you found the content helpful in any other way, a "Thumbs Up" would be greatly appreciated. Thank you!
Thanks @Giraldoj for the detailed answer.
I have some questions on this:
1. Regarding segmenting the solution into smaller pieces, this assumes that a developer will own one or more components at a time and if they needed to do minor changes to a component that is not in their pool then they will need to align with whomever is the owner of it. I see some potentials drawbacks to this approach:
** This relies on components rather than on functionality. Some people might become blocked because they will not be able to adjust other components since it is not under their control.
** You need to know upfront all of the components you need to be able to split out the tasks which might not be the case in a real life scenario
** Workload between the different team members might not fair since some people will have more or less tasks to do depending on what component they get. In a scenario based on a user story , everyone is pretty much touching everything to make sure we deliver on the functionality needed.
2. Agree for JS Librairies: process seems pretty straight forward to me
3. Can you share some documentation for this , how to modifiy the same component simultaneously ? How do we resolve conflicts?
A few clarifications about point one regarding segmenting the solution into smaller pieces:
Component Ownership and Minor Changes: Segmenting your solution doesn't mean developers are strictly limited to their components. While a developer may own one or more components at a time, it doesn't prevent them from making minor changes to components outside their pool. They will need to coordinate with the owner, but it isn't a rigid barrier.
Functionality vs. Component Focus: Segmenting by components can potentially block some people because they can't adjust components not under their control. However, you can segment by modules or features instead, allowing developers to work on related sets of functionality.
Upfront Knowledge of Components: It's true that knowing all components upfront might not always be feasible. In real-life scenarios, you can adjust the segmentation dynamically as the project evolves, ensuring flexibility.
Workload Distribution: Workload distribution might seem unfair if it's based solely on components. Instead, you can assign tasks based on user stories or features, ensuring everyone gets a balanced workload. This way, developers might touch various parts of the solution, contributing to the needed functionality.
To give you a better idea, Look at these segmentation samples:
Also regarding to point one in my previous response i forgot to mention something really important. to avoid ownership issues is recommended to use service accounts it also simplifies connection references. This allows developers to create components using a service account, preventing constraints tied to personal accounts.
Regarding to point 3 you can find more information about co-authoring and collaboration in power platform bellow, please check these articles:
Power Automate: Announcing co-presence in Power Automate
Model-Driven Apps: Announcing public preview of coauthoring in Modern App Designer
Canvas Apps: Allow multiple Power Apps developers to simultaneously edit canvas apps - Azure DevOps version
If this helps, please mark it as the solution by clicking "Accept as solution." A "Thumbs Up" would be greatly appreciated if you found the content helpful. Thanks!
Dear Community Members, We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd. During this period, members will not be able to Kudo, Comment, or Reply to any posts. On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities. What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!
We are excited to announce the Summer of Solutions Challenge! This challenge is kicking off on Monday, June 17th and will run for (4) weeks. The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions in the Forums to as many questions as you can. Answers can be provided in all the communities. Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”) - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024 Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods. You must enter into each weekly Entry Period separately. How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different. Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers. At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing. Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner. A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random. Individuals will be contacted before the announcement with the opportunity to claim or deny the prize. Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners. Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event. ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE** Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersNumber of SolutionsSuper UsersNumber of Solutions @anandm08 23 @WarrenBelz 31 @DBO_DV 10 @Amik 19 AmínAA 6 @mmbr1606 12 @rzuber 4 @happyume 7 @Giraldoj 3@ANB 6 (tie) @SpongYe 6 (tie) Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersSolutionsSuper UsersSolutions @anandm08 10@WarrenBelz 25 @DBO_DV 6@mmbr1606 14 @AmínAA 4 @Amik 12 @royg 3 @ANB 10 @AllanDeCastro 2 @SunilPashikanti 5 @Michaelfp 2 @FLMike 5 @eduardo_izzo 2 Meekou 2 @rzuber 2 @Velegandla 2 @PowerPlatform-P 2 @Micaiah 2 Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27 Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8 SunilPashikanti8
On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners. The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights. Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.
We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for. We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer. Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together. Here's to new beginnings and endless possibilities! If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport. To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages