An opinionated Development Lifecycle for Force.com development

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

Transcript of An opinionated Development Lifecycle for Force.com development

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)