An opinionated Development Lifecycle for Force.com development

Preview:

Citation preview

AN OPINIONATED DEVELOPMENTLIFECYCLE FOR FORCE.COM

DEVELOPMENTSalesforce Developer Group Munich

Matthias Rolke, August 17th 2016

AGENDAChallenges / ApproachDemoOutlookQuestions

ABOUT ME

Matthias Rolke

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

13 years of Salesforce experience

Offices: Zurich, Lausanne, Hamburg,Munich, Berlin

http://parx.com

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

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

(1/5) METADATA

➡ Best effort to capture all metadata!

➡ Use a Version Control System!

➡ Document manual, non-metadatachanges

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

missing dependenciesdeleted fieldsmissing picklist values...

(2/5) BUILD PROCESS

➡ validate a deployment

with all metadata

to an empty org

(3/5) CI / CDContinuous IntegrationContinuous DeliveryContinuous Deployment

(3/5) CI / CD

➡ Continuous Integration using a buildprocess without actual deployment

➡ ⚡Postpone ContinuousDelivery/Deployment because of missing

tooling for all possible changes

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

(4/5) ANOTHER DEPLOYMENT TOOL?!

➡ Making use of built-in features

of a Version Control System

for incremental deployments

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

(5/5) DEVELOPMENT ENVIRONMENTS

➡ Personal sandboxes

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

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

QUESTIONS?

LINKS

https://github.com/amtrack/force-dev-toolhttps://github.com/amtrack/universal-containershttps://developer.salesforce.com/docs/atlas.en-us.dev_lifecycle.meta/dev_lifecycleamtrackmr_amtrackmatthias.rolke@parx.com

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

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)