2
votes

Consider the following scenario: CRM is being used as an application development platform where in multiple applications (CRM solutions) are being built across many development ORGs and these solutions will be ultimately hosted under one organization in a PROD org. The dev environment looks as follows:

1) An unmnanaged "Common" solution containing common entities,roles and other artifacts in an org called COMMON

2) Team A working on unmanaged Solution 1 in ORG 1 in which COMMON has been imported as a managed solution

3) Team B working on unmanaged Solution 2 in ORG 2 in which COMMON has been imported as a managed
solution

4) Team C working on unmanaged Solution 3 in ORG 3 in which COMMON has been imported as a managed solution

There is another called INTEGRATION which is intended for all applications(Solutions) to come to together as managed solutions

Questions:

1) Is it a good idea to have multiple applications developed in parallel in the same development org? For example would it make sense to have Team A & Team B share Org 1 while they are doing development on Solutions A & Solutions B respectively?

2) If any of the applications above need site map customizations should these customizations be made and included in the respective managed solutions before they are imported into INTEGRATION or should all site map customizatons be made in INTEGRATION and these customization in turn be exported out as a managed solution(containing just the sitemap) for importing into the PRODUCTION org eventually.

3) Solutions 1-3 have custom entities in their respective orgs and need to add privileges to these entities (Read, Write etc.) for a role say "Role X" that is coming from the managed common
solution that is installed in their respective orgs. Should privileges to roles on entities be granted and included as part of the respective managed solutions or should this provisioning also be done in the INTEGRATION org?

Any guidance would be much appreciated.

1
You might want to consider splitting up this question into.multiple questions. One question for each of your questions listed. That way people can answer each question vigilant individually and not have to answer all 3 at once.Daryl

1 Answers

1
votes

1) You're fine to have multiple solutions being developed in the same org simultaneously. We do this often and really the only issues arise when we're dealing with the same entity. In a perfect world, your COMMON (which is your core library) would be a managed solution in this solution development org. In fact, I would highly recommend keeping the COMMON isolated as much as possible, documented highly, and automated to keep in an SVN.

2) Sitemap is generally easy to do any which way you want. The ribbon is the killer. Anyhow, I like to make the changes manually in UAT and then import those to PROD. This isn't the ideal way, just the way that seems to cause the least amount of mistakes. Importing from DEV seems to overwrite existing items since it's all about "Last in wins".

3) I would keep these in the solution since they are dependant on the application. Now if the DEVs aren't the kind of people to manage this because of red tape or a user disconnect, I would build an unmanaged integration solution inside of UAT that is tied to each solution. So solution-A-integration, solution-B-integration, etc. to be handled by someone else. These would then be exported out of UAT to be imported as managed solutions into PROD.