Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rome 31 January -1 February Team Development in CRM Shan McArthur CEO / CTO Adxstudio, CRM MVP.

Similar presentations


Presentation on theme: "Rome 31 January -1 February Team Development in CRM Shan McArthur CEO / CTO Adxstudio, CRM MVP."— Presentation transcript:

1 Rome 31 January -1 February Team Development in CRM Shan McArthur CEO / CTO Adxstudio, CRM MVP

2 Rome 31 January -1 February Poll 1.Would you like to reduce your risk on someone corrupting your development CRM organization? 2.Would you like developers and other team members to work in environments that are more isolated from each other? 3.Would you like to have a reliable and repeatable test environment? 4.Would you like to have better visibility to all changes, including schema and data? 5.Would you like CRM to fit into your existing ALM system? Ie: source control, continuous integration, build system, automated tests? 6.Would you like to have a way to reproduce bugs easily in an isolated environment?

3 Rome 31 January -1 February Agenda Solution Layering Strategies Managed vs Unmanaged Solutions Team Separation Development Environment SolutionPackager tool ALM Introduction Source Control (branching) Data Packaging Automated Scripts

4 Rome 31 January -1 February Intro to Solution Layers

5 Rome 31 January -1 February Solution Layering (Vertical)

6 Rome 31 January -1 February Solution Layering (Vertical)

7 Rome 31 January -1 February Solution Layering (Composite)

8 Rome 31 January -1 February Solution Layering (Composite)

9 Rome 31 January -1 February Managed vs Unmanaged When to go managed: – When you need to uninstall – When you are shipping software in marketplace – When you are shipping repeatable solutions – When you are maintaining integration components When to go unmanaged: – Everywhere else Challenges with managed: – No rollback – Can’t overwrite unmanaged changes – Less predictability in end result – Solution dependencies – Can’t return to unmanaged state – Inability to fix small issues easily – Challenges for deleting components – Security configuration better for locking down environment

10 Rome 31 January -1 February Team Separation Projects are frequently divided to teams or particular people with specific skill sets. Desire is to separate solution management to reflect your team organization Consider separating based on – Entity/schema/UI – Workflows / processes – Plugins – Reports – Security/Admin

11 Rome 31 January -1 February Q&A Solution Layering Unmanaged / Managed Solution Separation

12 Rome 31 January -1 February Development Environment Three primary approaches for isolation – Separate orgs on a shared VM – Separate VMs on a shared server – VMs on developer workstations Separate orgs on shared VM – Good for non-developer personas (point-and-click people) – Efficient use of infrastructure – Good for demo / test / training / sprint environments – Requires looser security to have full automation Separate VMs on a shared Server – Requires more server resources – Cloud-friendly (you can use Azure for this) – Good for complete developer isolation – Doesn’t require monster laptops/workstations VMs on developer workstations – Requires high performance workstations with SSD and lots of RAM – Does not require any server resources – Works great in an offline environment or in a distributed team environment – Shan’s personal favorite.

13 Rome 31 January -1 February Demo Windows 8 Development Environment

14 Rome 31 January -1 February Solution Packager Located in the /bin folder of the CRM SDK Command-line tool that works with solution files – Breaks solution files into folders – Builds new solution file from folder contents Key Benefits – Makes it easier to see changes – Makes it easier to merge your changes to solutions Considerations – Changes still have to be made first in CRM then exported – It doesn’t automatically merge changes – It is still tied to the structure (and limitations) of the solution system – Hand-editing files still has to be done very carefully

15 Rome 31 January -1 February Demo Solution Packager

16 Rome 31 January -1 February Source Control System Source Control Systems are useful for more than just source code Everything in your CRM should be checked into source control Unmanaged solution files are like your configuration ‘source code’ SolutionPackager tool in SDK

17 Rome 31 January -1 February Branching Strategies Enterprise ISV

18 Rome 31 January -1 February Demo Source Control File Structure

19 Rome 31 January -1 February Challenges Non-upgradable schema changes – Changing naming conventions – Deleting of Entities and components – Ownership of Workflows and Dialogs Recommendation: – Script the upgrade Use PowerShell Detect if old version or skip Delete components Change workflow and dialog ownership

20 Rome 31 January -1 February Challenges (continued) Dependencies creeping in – Keep your development environments naked – Avoid using the include-all-dependencies button Going back to unmanaged – Only way is to create a new environment and migrate the unmanaged customizations and data to it. – Will demonstrate the tools for this later. – Really consider carefully before you use managed solutions in production.

21 Rome 31 January -1 February ALM Basics ALM = Application Lifecycle Management Components to an ALM environment – Source Control System – Agile Project Management Tools – Automated Build Environments – Automated Test Environments Attributes of a healthy ALM environment – Source Control is authoritative source – Developer Isolation – Branching strategies – Automated builds and tests (repeatable success) – Sprints / Iterations – Large teams working in unison – Sustainability & Supportability

22 Rome 31 January -1 February Agile Team Structure

23 Rome 31 January -1 February CRM in ALM Source control must be the authoritative source for everything – Code, solutions, and data – Use branching strategies Managed versus unmanaged – Most customers use unmanaged solutions in their ALM environment – Unmanaged solutions == solution source – Check in your solution files into source control Data – Test data (for all scenarios) – Lookup Data – Data should be checked into source control Automated scripts – Creating isolated development environments – Importing / exporting solutions – Importing / exporting data – Deployment scripts for test or staging environments – Testing (integration tests – end to end testing)

24 Rome 31 January -1 February Data Types of data – Application data (lookup entities) – Test data (all customer scenarios) – Development data (all permutations) – Production data (not in source control) Data should be checked into source control – Application, test, and development data – Data differences can be seen / evaluated / rolled back Automated scripts – Importing / exporting data – Deployment scripts for test or staging environments – Testing (integration tests – end to end testing)

25 Rome 31 January -1 February Scripts Automated scripts – Creating isolated development environments – Importing / exporting solutions – Importing / exporting data – Deployment scripts for test or staging environments – Testing (integration tests – end to end testing)

26 Rome 31 January -1 February Demo Schema & Data Changes

27 Rome 31 January -1 February Resources Solution packager (CRM SDK) – Bin\solutionpackager.exe ALM Toolkit – CRMUG Session downloads – Will be maintained at http://community.adxstudio.com/ Visual Studio / TFS PowerShell CRM Field Guide – http://www.crmfieldguide.com/

28 Rome 31 January -1 February Q & A


Download ppt "Rome 31 January -1 February Team Development in CRM Shan McArthur CEO / CTO Adxstudio, CRM MVP."

Similar presentations


Ads by Google