21
AN OPINIONATED DEVELOPMENT LIFECYCLE FOR FORCE.COM DEVELOPMENT Salesforce Developer Group Munich Matthias Rolke, August 17th 2016

An opinionated Development Lifecycle for Force.com development

Embed Size (px)

Citation preview

Page 1: An opinionated Development Lifecycle for Force.com development

AN OPINIONATED DEVELOPMENTLIFECYCLE FOR FORCE.COM

DEVELOPMENTSalesforce Developer Group Munich

Matthias Rolke, August 17th 2016

Page 2: An opinionated Development Lifecycle for Force.com development

AGENDAChallenges / ApproachDemoOutlookQuestions

Page 3: An opinionated Development Lifecycle for Force.com development

ABOUT ME

Matthias Rolke

Developer @ PARX in Munich4+ years Force.com experienceOpen Source Enthusiast

Page 4: An opinionated Development Lifecycle for Force.com development

13 years of Salesforce experience

Offices: Zurich, Lausanne, Hamburg,Munich, Berlin

http://parx.com

Page 5: An opinionated Development Lifecycle for Force.com development

CHALLENGES / APPROACH1. Metadata2. Build process3. CI / CD4. Deployment5. Development environments

Page 6: An opinionated Development Lifecycle for Force.com development

(1/5) METADATA= our asset of development= declarative + programmatic

Page 7: An opinionated Development Lifecycle for Force.com development

(1/5) METADATA

➡ Best effort to capture all metadata!

➡ Use a Version Control System!

➡ Document manual, non-metadatachanges

Page 8: An opinionated Development Lifecycle for Force.com development

(2/5) THE (MISSING) BUILD PROCESSMetadata can be broken

missing dependenciesdeleted fieldsmissing picklist values...

Page 9: An opinionated Development Lifecycle for Force.com development

(2/5) BUILD PROCESS

➡ validate a deployment

with all metadata

to an empty org

Page 10: An opinionated Development Lifecycle for Force.com development

(3/5) CI / CDContinuous IntegrationContinuous DeliveryContinuous Deployment

Page 11: An opinionated Development Lifecycle for Force.com development

(3/5) CI / CD

➡ Continuous Integration using a buildprocess without actual deployment

➡ ⚡Postpone ContinuousDelivery/Deployment because of missing

tooling for all possible changes

Page 12: An opinionated Development Lifecycle for Force.com development

(4/5) DEPLOYMENTIncremental by designChangesets?!Ant Migration Tool?!...?!

Page 13: An opinionated Development Lifecycle for Force.com development

(4/5) ANOTHER DEPLOYMENT TOOL?!

➡ Making use of built-in features

of a Version Control System

for incremental deployments

Page 14: An opinionated Development Lifecycle for Force.com development

(5/5) DEVELOPMENT ENVIRONMENTSPersonal sandboxes vs. shared sandboxEfforts for merging/integrating

Page 15: An opinionated Development Lifecycle for Force.com development

(5/5) DEVELOPMENT ENVIRONMENTS

➡ Personal sandboxes

Page 16: An opinionated Development Lifecycle for Force.com development

DEMOhttps://github.com/amtrack/universal-containers

Page 17: An opinionated Development Lifecycle for Force.com development

OUTLOOKforce-dev-tool can do moreScheduled Metadata BackupsComparing orgs using VCSDeployment link

Page 18: An opinionated Development Lifecycle for Force.com development

QUESTIONS?

Page 20: An opinionated Development Lifecycle for Force.com development

CONCEPT / APPROACHProblem Solution

complete state regard all metadata

tracking changes Version Control

build process dedicated and empty ci org

deployment VCS-supported deployment tool

org management personal sandboxes

Page 21: An opinionated Development Lifecycle for Force.com development

PREREQUISITESInfrastructure

personal sandboxesdedicated CI org

Project (maintenance efforts)CI org: remove custom metadata, maintain users,profiles, installed packages

Metadatano unit tests with SeeAllData=trueno deprecated metadata (SControl)