+ All Categories
Home > Business > ALM for CRM - George Doubinski

ALM for CRM - George Doubinski

Date post: 07-Dec-2014
Category:
Upload: ssw
View: 579 times
Download: 1 times
Share this document with a friend
Description:
 
45
CRM Team Development: Application Lifecycle Management George Doubinski (Dynamics CRM MVP) [email protected] @georgedude
Transcript
Page 1: ALM for CRM - George Doubinski

CRM Team Development: Application Lifecycle Management George Doubinski (Dynamics CRM MVP)[email protected]@georgedude

Page 2: ALM for CRM - George Doubinski

• Learn what is Dynamics CRM• Understand CRM development process• Discover CRM & ALM

The goal

Page 3: ALM for CRM - George Doubinski

• CRM Overview• CRM Solutions• Developing for CRM• ALM

Agenda

Page 4: ALM for CRM - George Doubinski

Quiz What is Microsoft Dynamics CRM? • SharePoint template• New version of Northwind database• Business Contact Manager for Office 365• Enterprise solution for call centres• Development platform• With customer relationship management functionality included out

of the box.

Page 5: ALM for CRM - George Doubinski

• Glamorised address book• Customer Relationship Management

system• xRM

What is CRM

Page 6: ALM for CRM - George Doubinski

Dynamics CRM 2011Update Rollup 15

Page 7: ALM for CRM - George Doubinski

CRM 2011

Page 8: ALM for CRM - George Doubinski

CRM 2011

Page 9: ALM for CRM - George Doubinski

CRM 2011

Page 10: ALM for CRM - George Doubinski

CRM 2011

Page 11: ALM for CRM - George Doubinski

DemoDynamics CRM 2013Online – RTWOnpremises – RC1

Page 12: ALM for CRM - George Doubinski

• Schema Entities, attributes, relationships, global option sets

• UI Forms, resources, sitemap, ribbons

• Analytics Dashboards, reports• Process/Code Processes, plugins• Templates Mail-merge, e-mail,

contract, article• Security Roles, field security profiles

Solution Components

Page 13: ALM for CRM - George Doubinski

• Unmanaged “Code”• Managed “Assembly”• System “OS”

Solution Types

Managed Solution != Managed Code

Page 14: ALM for CRM - George Doubinski

Intro to Solution Layers

Page 15: ALM for CRM - George Doubinski

• Only one unmanaged layer• Managed – last in wins• Merge vs overwrite• Changes are additive

Solution Layers

Page 16: ALM for CRM - George Doubinski

Demo

Solutions 101

Page 17: ALM for CRM - George Doubinski

Solution Layering (Vertical)Production CRM

Base Portals Solution

ContactEntity

WebsiteEntity

Web PageEntity

Content SnippetEntity

...

Customer Portal SolutionCase Access

SecurityEntity

KB ArticleEntity

CampaignEntity

CaseEntity

...

Partner Portal Solution

LeadEntity

OpportunityEntity

AccountEntity

ChannelSecurityEntity

...

System Layer

Page 18: ALM for CRM - George Doubinski

Solution Layering (Vertical) - DevelopmentBase Portals Dev CRM

ContactEntity

WebsiteEntity ...

Unmanaged Layer

System Layer

Customer Portal Dev CRM

CampaignEntity

CaseEntity ...

Unmanaged Layer

Base Portals Solution

Managed Layers

System Layer

Partner Portal Dev CRM

LeadEntity

OpportunityEntity ...

Unmanaged Layer

Customer Portal Solution

Managed Layers

System Layer

Base Portals Solution

Page 19: ALM for CRM - George Doubinski

Solution Layering (Composite)Customer A

Partner Portal Solution

System Layer

Base Portals Entities

ContactEntity

WebsiteEntity

Web PageEntity

Content SnippetEntity

...

Customer Portal Entities

Case AccessSecurity

Entity

KB ArticleEntity

CampaignEntity

CaseEntity

...

LeadEntity

OpportunityEntity

AccountEntity

ChannelSecurity

Entity...

Partner Portal Entities

Customer BCustomer Portal Solution

System Layer

Base Portals Entities

ContactEntity

WebsiteEntity

Web PageEntity

Content SnippetEntity

...

Customer Portal Entities

Case AccessSecurity

Entity

KB ArticleEntity

CampaignEntity

CaseEntity

...

Page 20: ALM for CRM - George Doubinski

Solution Layering (Composite) - Development

Base Portals Dev CRM

ContactEntity

WebsiteEntity ...

Unmanaged Layer

System Layer

Base Transport(unmanaged)

Portals Base(managed)

Customer Portal Dev CRM

CampaignEntity

CaseEntity ...

Unmanaged Layer

System Layer

ContactEntity

WebsiteEntity ...

Base Portal Entities

Customer Portal Entities

Customer Portal Transport(unmanaged)

Customer Portal(managed)

CampaignEntity

CaseEntity ...

Unmanaged Layer

System Layer

ContactEntity

WebsiteEntity ...

Base Portal Entities

Customer Portal Entities

LeadEntity

OpportunityEntity

Customer Portal Entities

...

Partner Portal(managed)

Partner Portal Dev CRM

Page 21: ALM for CRM - George Doubinski

Managed vs Unmanaged

Page 22: ALM for CRM - George Doubinski

• When to go managed• Need to uninstall• Ship software in marketplace• Ship repeatable solutions

• When to go unmanaged• Everywhere else

• IP protection does not exist in either

Managed vs Unmanaged

Page 23: ALM for CRM - George Doubinski

• 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

Managed Challenges

Page 24: ALM for CRM - George Doubinski

• Teams or individuals with specific skill sets• Reflect your team organization in solutions• Consider separating based on • Entity/schema/UI• Workflows / processes• Plugins• Reports• Security/Admin

Solutions & Team Development

Page 25: ALM for CRM - George Doubinski

Q&ASolutions

Page 26: ALM for CRM - George Doubinski

• Difficult to isolate the development• Easy to corrupt development CRM organization• No reliable & repeatable test environment• Lack of visibility of changes (both schema and data)• Hard to reproducing bugs• No ALM traits: source control, continuous integration, build

system, automated tests

Current Pain

There is no “Get Latest” in CRM

Page 27: ALM for CRM - George Doubinski

CRM DevelopmentWhat we have What we want

Page 28: ALM for CRM - George Doubinski

• Separate orgs on a shared CRM deployment• 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 Hyper-V Host• 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

Development Environment

Page 29: ALM for CRM - George Doubinski

Agile Team Structure & Environments

Project ManagerDeveloper End UserBusiness Analyst

Stable Dev Last Sprint ReviewTestIsolated Dev

Tester

CRM Environments

Users

ALM ProcessesCheck - in & Deploy Weekly Build

Nightly Build

Page 30: ALM for CRM - George Doubinski

• Not just for source code• Everything should be in the source control

system• Unmanaged solution files are CRM ‘source

code’• SolutionPackager tool in SDK

Source Control System

Page 31: ALM for CRM - George Doubinski

Branching Strategies

Enterprise

ISV

Page 32: ALM for CRM - George Doubinski

• 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 content

• Key Benefits• Easier to see changes• Easier to merge

• Considerations• Changes are still done in CRM then exported• No automatic merge• Inherits structure and limitations of the solution system• Edit by hand with caution

Solution Packager

Page 33: ALM for CRM - George Doubinski

Demo

Solution Packager

Page 34: ALM for CRM - George Doubinski

• Non-upgradable schema changes• Dependencies creeping in• Going back to unmanaged

• Recommendation

Challenges

Page 35: ALM for CRM - George Doubinski

• 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

ALM Basics

Page 36: ALM for CRM - George Doubinski

• Source control • Managed vs unmanaged• Data• Automated scripts

CRM in ALM

Page 37: ALM for CRM - George Doubinski

• Source control – the authority for everything

• Code • Solutions • Data• Use branching strategies

CRM in ALM: Source Control

Page 38: ALM for CRM - George Doubinski

• Unmanaged solutions are most common• Unmanaged solutions == solution source• Use packager and source control• External managed solutions

CRM in ALM: Solutions

Page 39: ALM for CRM - George Doubinski

• 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 in source control• Application, test, and development data• Data differences can be seen / evaluated / rolled back

CRM in ALM: Data

Page 40: ALM for CRM - George Doubinski

• Creating isolated development environments

• Importing / exporting solutions• Importing / exporting data• Deploy to test and staging• Testing (smoke, integration, UAT)

CRM in ALM: Scripts

Page 41: ALM for CRM - George Doubinski

DemoAdxstudio ALM ToolkitSchema & Data Changes

Page 42: ALM for CRM - George Doubinski

• ALM for CRM 2011 - CRM Solution Lifecycle Management• http://www.microsoft.com/en-au/download/details.aspx?id=39044

• Adxstudio ALM Toolkit• http://www.adxstudio.com/adxstudio-alm-toolkit

• CRM UG• http://www.meetup.com/SydCRMUG/

Links

Page 43: ALM for CRM - George Doubinski

• Learn what is Dynamics CRM• Understand CRM development process• Discover CRM & ALM

The goal achieved

Page 44: ALM for CRM - George Doubinski

• Solution packager • CRM SDK -> Bin\solutionpackager.exe

• CRM Enterprise Academy• http://www.microsoft.com/dynamics/CRMEnterpriseAcademy/

• ALM Toolkit• http://community.adxstudio.com/

• Visual Studio / TFS• PowerShell• CRM Field Guide• http://www.crmfieldguide.com/

Resources

Page 45: ALM for CRM - George Doubinski

Q & [email protected]


Recommended