SlideShare a Scribd company logo
1 of 33
Download to read offline
EXPERIENCE WITH SALESFORCE DX ON REAL
PROJECT
MARTIN HUMPOLEC
&&
ADAM SIENKIEWICZ
#YD19
A bit about us
Martin Humpolec
Salesforce Consultant
Salesforce MVP
Lightning Champion
Trailhead & Certification Addict
Prague Salesforce User Group Leader
CzechDreamin conference organizer
Blogger: MartinHumpolec.cz
Twitter: @mhumpolec
#YD19
A bit about us
Adam Sienkiewicz
Salesforce Consultant
Trailblazer & 7 times Salesforce
Certified
Salesforce Enthusiast
Data Analysis Fan
#YD19
Table of content
• What is DX
• Why do we use DX
• Pros / Cons summary
• Use case – our process flow overview
#YD19
What is Salesforce DX
Salesforce DX is a Salesforce product in the App cloud that allows users to
develop and manage Salesforce apps throughout the entire platform in a
more direct and efficient way.
NOT for developers only
NOT an “all or nothing” option
#YD19
DX Learning Curve
I spent about 5 % of my time on requested changes and 95 % fighting the
Git.
@StudiosViloria
#YD19
Installation
• https://developer.salesforce.com/tools/sfdxcli
#YD19
Commands
Plenty of commands and you will actually use about 4 of them.
#YD19
Integration with IDE
#YD19
Salesforce DX = VCS (for us)
DX is actually just a small part of that picture, but people will blame it for
everything.
#YD19
Why do we use DX?
• Provide better performance with version control, disaster tracking and
auditing
• Integrated with popular IDE tools
• Ability to migrate from standard metadata schemes
• Streamlined release management
• Artifact-based programming concept is easier to implement
• Easy packaging and deployments
• Price – it is free!
#YD19
Salesforce DX in practice – Why did we chose DX?
• Will to learn and train the team about new paradigm
• High number of dev team members
• We wanted to give control to the team over their orgs
• Because nowadays DX is hip (?)
#YD19
Pros
• Accelerates development knowledge gathering
• Ability to copy things/update the xml
• Scratch orgs to test things
• The ability to extend it with your own/community code
• Once you know the basics it is easy to progress
#YD19
Manual or click?
Manual changes – How to learn patience and understand that in the end
the SF platform is just a set of <> lines with true/false values
#YD19
Find and replace
#YD19
Cons
• “Disconnection” between people as everyone works in their instance
(“weird, mine works fine”)
• Some things aren’t possible to set via metadata when creating scratch
org (should be changed by summer release)
• Some things are hard/impossible to push through (entitlements, security
settings, …)
• Some errors are difficult to investigate due to relatively new concept
without complete documentation and user cases
• A bit complex in the beginning
#YD19
Salesforce DX in practice – Initial Challenges
• Lack of structure in terms of scratch org setup, no config, no features
defined, no processes, no ownership
• Problems with deployment
• General lack of knowledge about the tool within the team. Quickly turning
into large knowledge gap between experienced devs and beginners
#YD19
Salesforce DX in practice – Initial Challenges – Solution Approach
Introduce release/deployment manager full-time role
RESPONSIBILITIES:
Setup config for
scratch orgs Create and refresh
sandboxes
Run deployments
Support the Team
Define and build
deployment flow
Configure
Continuous
Integration
#YD19
Salesforce DX in practice – Challenges along the way
• Some features need to be a manual pre-deployment step for scratch
org
• Scratch org is not retrieving full config for profiles
• Manual hotfixes on “release train” orgs led to lack of single source of
truth for configuration
• Overwriting changes in git, confusion about the flow
#YD19
Salesforce DX in practice – Challenges along the way – Solutions
Rule no. 1 – „You always make changes to profiles manually!”
Rule no. 2 – Rule no. 1 cannot be omitted
In the end challenges happened to be a great catalyst for learning new
things!
#YD19
Salesforce DX in practice
#YD19
Git flow
This whole git flow will confuse your consultants/admins continuously
#YD19
What we can confirm
The problem is that no matter how much you say that source control is the
ultimate source of truth, if people can make changes on the org directly, the
org ultimately represents the true picture of what’s going on.
(https://bluecanvas.io/blog/2019-2-5-why-salesforce-dx-and-git-flow-dont-work-for-salesforce-teams)
#YD19
Salesforce DX in practice - Team adoption
• Most of the non-technical team members initially started on the very high
left end of the rectangle, gradually moving towards center
• Lot of complaints about git usage
• Experienced users were unhappy
having to support others apart from
their tasks
#YD19
Git flow
On average day we know Git well and can use those 4 commands. And
then there is that exception.
#YD19
Code merging
Merge conflict in a file you did nothing with? You have no idea what
to accept, so you will take a guess.
#YD19
Deployment flow
Or deployment flow – it takes time to push anything through it.
#YD19
Good practices
• Use properly configured scratch orgs
• Proper description in commits && their clever use
• Have a set of sample data
• Use .forceignore wisely and don’t be afraid of it
• Code retrieve-convert speeds-up hotfixing and deployments
• Naming conventions
#YD19
Summary aka One best thing (Martin)
force:org:open
#YD19
Summary aka One best thing (Adam)
force:mdapi:retrieve
#YD19
What’s ahead of us?
Packaging
concepts
Data setup using
DX
Org shapes and
templates
#YD19
Interesting links
https://gearset.com/assets/adopting-salesforce-dx.pdf
https://www.salesforceben.com/all-you-need-to-know-
about-salesforce-development-best-practices-in-one-
post/
https://trailhead.salesforce.com/en/content/learn/projects
/quick-start-salesforce-dx
#YD19
Join us for drinks
@18:00 sponsored
by
Community sponsors:
What we can learn from you?
NonProfit-track sponsor:

More Related Content

What's hot

The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021Anders Lundsgård
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentVladimir Bakhov
 
Discover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automationsDiscover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automationsJackGuo20
 
DevOps made simple - Understand DevOps and steps to become a DevOps expert
DevOps made simple  - Understand DevOps and steps to become a DevOps expertDevOps made simple  - Understand DevOps and steps to become a DevOps expert
DevOps made simple - Understand DevOps and steps to become a DevOps expertThinkCerti
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101Hazzim Anaya
 
Tailoring your SDLC for DevOps, Agile and more
Tailoring your SDLC for DevOps, Agile and moreTailoring your SDLC for DevOps, Agile and more
Tailoring your SDLC for DevOps, Agile and moreJeff Schneider
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSDevOps.com
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comSalesforce Engineering
 
Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Moataz Nabil
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 
Enabing DevOps in an SDN World
Enabing DevOps in an SDN WorldEnabing DevOps in an SDN World
Enabing DevOps in an SDN WorldCisco DevNet
 
Deep Dive on CI/CD NYC Meet Up Group
Deep Dive on CI/CD NYC Meet Up GroupDeep Dive on CI/CD NYC Meet Up Group
Deep Dive on CI/CD NYC Meet Up GroupNeerajKumar1965
 
Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)Chris Richardson
 
Platform Agility, Reliability, and Security: Can You Really Have it All in th...
Platform Agility, Reliability, and Security: Can You Really Have it All in th...Platform Agility, Reliability, and Security: Can You Really Have it All in th...
Platform Agility, Reliability, and Security: Can You Really Have it All in th...VMware Tanzu
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsJulian Douch
 
Introducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQLIntroducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQLGerger
 
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical StepsDevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical StepsCA Technologies
 
DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017Giulio Vian
 

What's hot (20)

The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Discover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automationsDiscover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automations
 
DevOps made simple - Understand DevOps and steps to become a DevOps expert
DevOps made simple  - Understand DevOps and steps to become a DevOps expertDevOps made simple  - Understand DevOps and steps to become a DevOps expert
DevOps made simple - Understand DevOps and steps to become a DevOps expert
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
DevOps and Visual Studio Team Services
DevOps and Visual Studio Team Services DevOps and Visual Studio Team Services
DevOps and Visual Studio Team Services
 
Tailoring your SDLC for DevOps, Agile and more
Tailoring your SDLC for DevOps, Agile and moreTailoring your SDLC for DevOps, Agile and more
Tailoring your SDLC for DevOps, Agile and more
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
 
Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
Enabing DevOps in an SDN World
Enabing DevOps in an SDN WorldEnabing DevOps in an SDN World
Enabing DevOps in an SDN World
 
Deep Dive on CI/CD NYC Meet Up Group
Deep Dive on CI/CD NYC Meet Up GroupDeep Dive on CI/CD NYC Meet Up Group
Deep Dive on CI/CD NYC Meet Up Group
 
Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)
 
Platform Agility, Reliability, and Security: Can You Really Have it All in th...
Platform Agility, Reliability, and Security: Can You Really Have it All in th...Platform Agility, Reliability, and Security: Can You Really Have it All in th...
Platform Agility, Reliability, and Security: Can You Really Have it All in th...
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
 
Introducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQLIntroducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQL
 
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical StepsDevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
 
DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017DevOps by examples - Continuous Lifecycle London 2017
DevOps by examples - Continuous Lifecycle London 2017
 
Latest dev ops trends in 2021 you should know
Latest dev ops trends in 2021 you should knowLatest dev ops trends in 2021 you should know
Latest dev ops trends in 2021 you should know
 

Similar to Experience with Salesforce DX on real project

Using Product Box to Build the Complete Developer
Using Product Box to Build the Complete DeveloperUsing Product Box to Build the Complete Developer
Using Product Box to Build the Complete DeveloperLuke Hohmann
 
Top 10 Things Admins Can Learn from Developers (without learning to code)
Top 10 Things Admins Can Learn from Developers (without learning to code)Top 10 Things Admins Can Learn from Developers (without learning to code)
Top 10 Things Admins Can Learn from Developers (without learning to code)YeurDreamin'
 
Death by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you UnbuiredDeath by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you UnbuiredTechnologyAssociationOregon
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Securitygjdevos
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia eventXebia India
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Wojciech Seliga
 
Supercharge Your Digital Transformation by Establishing a DevOps Platform
Supercharge Your Digital Transformation by Establishing a DevOps PlatformSupercharge Your Digital Transformation by Establishing a DevOps Platform
Supercharge Your Digital Transformation by Establishing a DevOps PlatformXebiaLabs
 
TDD - Cultivating a Beginner's Mind
TDD -  Cultivating a Beginner's MindTDD -  Cultivating a Beginner's Mind
TDD - Cultivating a Beginner's MindShai Yallin
 
Slack integrations for Jira and Confluence
Slack integrations for Jira and ConfluenceSlack integrations for Jira and Confluence
Slack integrations for Jira and ConfluenceMarlon Palha
 
The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)
The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)
The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)JANA, Inc.
 
Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012jonathw
 
Getting to Know the Community
Getting to Know the CommunityGetting to Know the Community
Getting to Know the CommunityBryan Boroughf
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino DogsMark Myers
 
ALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_worldALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_worldRoland Leibundgut
 
Limited WIP Meeting presentation - The Phoenix Project book review
Limited WIP Meeting presentation - The Phoenix Project book reviewLimited WIP Meeting presentation - The Phoenix Project book review
Limited WIP Meeting presentation - The Phoenix Project book reviewRudiger Wolf
 
Greythorn Whiteboard Interview Guide
Greythorn Whiteboard Interview GuideGreythorn Whiteboard Interview Guide
Greythorn Whiteboard Interview GuideVaco Seattle
 
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Allison Pollard
 
Conquering Chaos: Helix & DevOps
Conquering Chaos: Helix & DevOpsConquering Chaos: Helix & DevOps
Conquering Chaos: Helix & DevOpsPerforce
 

Similar to Experience with Salesforce DX on real project (20)

Using Product Box to Build the Complete Developer
Using Product Box to Build the Complete DeveloperUsing Product Box to Build the Complete Developer
Using Product Box to Build the Complete Developer
 
Top 10 Things Admins Can Learn from Developers (without learning to code)
Top 10 Things Admins Can Learn from Developers (without learning to code)Top 10 Things Admins Can Learn from Developers (without learning to code)
Top 10 Things Admins Can Learn from Developers (without learning to code)
 
Death by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you UnbuiredDeath by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you Unbuired
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...
 
Supercharge Your Digital Transformation by Establishing a DevOps Platform
Supercharge Your Digital Transformation by Establishing a DevOps PlatformSupercharge Your Digital Transformation by Establishing a DevOps Platform
Supercharge Your Digital Transformation by Establishing a DevOps Platform
 
TDD - Cultivating a Beginner's Mind
TDD -  Cultivating a Beginner's MindTDD -  Cultivating a Beginner's Mind
TDD - Cultivating a Beginner's Mind
 
Slack integrations for Jira and Confluence
Slack integrations for Jira and ConfluenceSlack integrations for Jira and Confluence
Slack integrations for Jira and Confluence
 
The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)
The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)
The Top 5 DITA Conversion and Authoring Pitfalls (and how to avoid them)
 
Introducing the Development Director
Introducing the Development Director Introducing the Development Director
Introducing the Development Director
 
Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012
 
Getting to Know the Community
Getting to Know the CommunityGetting to Know the Community
Getting to Know the Community
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino Dogs
 
ALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_worldALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_world
 
Limited WIP Meeting presentation - The Phoenix Project book review
Limited WIP Meeting presentation - The Phoenix Project book reviewLimited WIP Meeting presentation - The Phoenix Project book review
Limited WIP Meeting presentation - The Phoenix Project book review
 
Greythorn Whiteboard Interview Guide
Greythorn Whiteboard Interview GuideGreythorn Whiteboard Interview Guide
Greythorn Whiteboard Interview Guide
 
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016
 
Conquering Chaos: Helix & DevOps
Conquering Chaos: Helix & DevOpsConquering Chaos: Helix & DevOps
Conquering Chaos: Helix & DevOps
 

More from YeurDreamin'

Discover Social Studio: The Product, The Use & The Connector
Discover Social Studio: The Product, The Use & The Connector	Discover Social Studio: The Product, The Use & The Connector
Discover Social Studio: The Product, The Use & The Connector YeurDreamin'
 
Your Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthyYour Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthyYeurDreamin'
 
Admins – You Can Code Too!
Admins – You Can Code Too!Admins – You Can Code Too!
Admins – You Can Code Too!YeurDreamin'
 
Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...
Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...
Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...YeurDreamin'
 
Build Your Own Lightning Community in a Flash - part 2
Build Your Own Lightning Community in a Flash - part 2Build Your Own Lightning Community in a Flash - part 2
Build Your Own Lightning Community in a Flash - part 2YeurDreamin'
 
Clean Code Principles
Clean Code PrinciplesClean Code Principles
Clean Code PrinciplesYeurDreamin'
 
Build A Meaningful Network while elevating your Career – Getting the most out...
Build A Meaningful Network while elevating your Career – Getting the most out...Build A Meaningful Network while elevating your Career – Getting the most out...
Build A Meaningful Network while elevating your Career – Getting the most out...YeurDreamin'
 
From Food Truck Chef to Architect, My Salesforce Journey
From Food Truck Chef to Architect, My Salesforce JourneyFrom Food Truck Chef to Architect, My Salesforce Journey
From Food Truck Chef to Architect, My Salesforce JourneyYeurDreamin'
 
Supercharge your Salesforce with 10 Awesome tips & tricks
Supercharge your Salesforce with 10 Awesome tips & tricksSupercharge your Salesforce with 10 Awesome tips & tricks
Supercharge your Salesforce with 10 Awesome tips & tricksYeurDreamin'
 
Spectacular Specs and how to write them!
Spectacular Specs and how to write them!Spectacular Specs and how to write them!
Spectacular Specs and how to write them!YeurDreamin'
 
Platform Events: How developers and admins work together to implement busines...
Platform Events: How developers and admins work together to implement busines...Platform Events: How developers and admins work together to implement busines...
Platform Events: How developers and admins work together to implement busines...YeurDreamin'
 
An Admin’s Guide to Workbench
An Admin’s Guide to WorkbenchAn Admin’s Guide to Workbench
An Admin’s Guide to WorkbenchYeurDreamin'
 
10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...
10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...
10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...YeurDreamin'
 
How to monitor and prioritize epics of a Service Cloud implementation project...
How to monitor and prioritize epics of a Service Cloud implementation project...How to monitor and prioritize epics of a Service Cloud implementation project...
How to monitor and prioritize epics of a Service Cloud implementation project...YeurDreamin'
 
Prototyping UX Solutions with Playgrounds and Lightning Web Components
Prototyping UX Solutions with Playgrounds and Lightning Web ComponentsPrototyping UX Solutions with Playgrounds and Lightning Web Components
Prototyping UX Solutions with Playgrounds and Lightning Web ComponentsYeurDreamin'
 
Want your bank to trust you? You need a credit score. Want your customers to ...
Want your bank to trust you? You need a credit score. Want your customers to ...Want your bank to trust you? You need a credit score. Want your customers to ...
Want your bank to trust you? You need a credit score. Want your customers to ...YeurDreamin'
 

More from YeurDreamin' (17)

Discover Social Studio: The Product, The Use & The Connector
Discover Social Studio: The Product, The Use & The Connector	Discover Social Studio: The Product, The Use & The Connector
Discover Social Studio: The Product, The Use & The Connector
 
Your Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthyYour Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthy
 
Admins – You Can Code Too!
Admins – You Can Code Too!Admins – You Can Code Too!
Admins – You Can Code Too!
 
Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...
Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...
Behind Every Device is a Customer. Learn how to connect IoT devices to Salesf...
 
Build Your Own Lightning Community in a Flash - part 2
Build Your Own Lightning Community in a Flash - part 2Build Your Own Lightning Community in a Flash - part 2
Build Your Own Lightning Community in a Flash - part 2
 
Clean Code Principles
Clean Code PrinciplesClean Code Principles
Clean Code Principles
 
Build A Meaningful Network while elevating your Career – Getting the most out...
Build A Meaningful Network while elevating your Career – Getting the most out...Build A Meaningful Network while elevating your Career – Getting the most out...
Build A Meaningful Network while elevating your Career – Getting the most out...
 
From Food Truck Chef to Architect, My Salesforce Journey
From Food Truck Chef to Architect, My Salesforce JourneyFrom Food Truck Chef to Architect, My Salesforce Journey
From Food Truck Chef to Architect, My Salesforce Journey
 
Supercharge your Salesforce with 10 Awesome tips & tricks
Supercharge your Salesforce with 10 Awesome tips & tricksSupercharge your Salesforce with 10 Awesome tips & tricks
Supercharge your Salesforce with 10 Awesome tips & tricks
 
Spectacular Specs and how to write them!
Spectacular Specs and how to write them!Spectacular Specs and how to write them!
Spectacular Specs and how to write them!
 
Platform Events: How developers and admins work together to implement busines...
Platform Events: How developers and admins work together to implement busines...Platform Events: How developers and admins work together to implement busines...
Platform Events: How developers and admins work together to implement busines...
 
An Admin’s Guide to Workbench
An Admin’s Guide to WorkbenchAn Admin’s Guide to Workbench
An Admin’s Guide to Workbench
 
10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...
10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...
10 Lessons of Salesforce Nonprofit implementations from a Customer and Integr...
 
How to monitor and prioritize epics of a Service Cloud implementation project...
How to monitor and prioritize epics of a Service Cloud implementation project...How to monitor and prioritize epics of a Service Cloud implementation project...
How to monitor and prioritize epics of a Service Cloud implementation project...
 
Prototyping UX Solutions with Playgrounds and Lightning Web Components
Prototyping UX Solutions with Playgrounds and Lightning Web ComponentsPrototyping UX Solutions with Playgrounds and Lightning Web Components
Prototyping UX Solutions with Playgrounds and Lightning Web Components
 
Want your bank to trust you? You need a credit score. Want your customers to ...
Want your bank to trust you? You need a credit score. Want your customers to ...Want your bank to trust you? You need a credit score. Want your customers to ...
Want your bank to trust you? You need a credit score. Want your customers to ...
 
Invocable methods
Invocable methodsInvocable methods
Invocable methods
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Experience with Salesforce DX on real project

  • 1. EXPERIENCE WITH SALESFORCE DX ON REAL PROJECT MARTIN HUMPOLEC && ADAM SIENKIEWICZ
  • 2. #YD19 A bit about us Martin Humpolec Salesforce Consultant Salesforce MVP Lightning Champion Trailhead & Certification Addict Prague Salesforce User Group Leader CzechDreamin conference organizer Blogger: MartinHumpolec.cz Twitter: @mhumpolec
  • 3. #YD19 A bit about us Adam Sienkiewicz Salesforce Consultant Trailblazer & 7 times Salesforce Certified Salesforce Enthusiast Data Analysis Fan
  • 4. #YD19 Table of content • What is DX • Why do we use DX • Pros / Cons summary • Use case – our process flow overview
  • 5. #YD19 What is Salesforce DX Salesforce DX is a Salesforce product in the App cloud that allows users to develop and manage Salesforce apps throughout the entire platform in a more direct and efficient way. NOT for developers only NOT an “all or nothing” option
  • 6. #YD19 DX Learning Curve I spent about 5 % of my time on requested changes and 95 % fighting the Git. @StudiosViloria
  • 8. #YD19 Commands Plenty of commands and you will actually use about 4 of them.
  • 10. #YD19 Salesforce DX = VCS (for us) DX is actually just a small part of that picture, but people will blame it for everything.
  • 11. #YD19 Why do we use DX? • Provide better performance with version control, disaster tracking and auditing • Integrated with popular IDE tools • Ability to migrate from standard metadata schemes • Streamlined release management • Artifact-based programming concept is easier to implement • Easy packaging and deployments • Price – it is free!
  • 12. #YD19 Salesforce DX in practice – Why did we chose DX? • Will to learn and train the team about new paradigm • High number of dev team members • We wanted to give control to the team over their orgs • Because nowadays DX is hip (?)
  • 13. #YD19 Pros • Accelerates development knowledge gathering • Ability to copy things/update the xml • Scratch orgs to test things • The ability to extend it with your own/community code • Once you know the basics it is easy to progress
  • 14. #YD19 Manual or click? Manual changes – How to learn patience and understand that in the end the SF platform is just a set of <> lines with true/false values
  • 16. #YD19 Cons • “Disconnection” between people as everyone works in their instance (“weird, mine works fine”) • Some things aren’t possible to set via metadata when creating scratch org (should be changed by summer release) • Some things are hard/impossible to push through (entitlements, security settings, …) • Some errors are difficult to investigate due to relatively new concept without complete documentation and user cases • A bit complex in the beginning
  • 17. #YD19 Salesforce DX in practice – Initial Challenges • Lack of structure in terms of scratch org setup, no config, no features defined, no processes, no ownership • Problems with deployment • General lack of knowledge about the tool within the team. Quickly turning into large knowledge gap between experienced devs and beginners
  • 18. #YD19 Salesforce DX in practice – Initial Challenges – Solution Approach Introduce release/deployment manager full-time role RESPONSIBILITIES: Setup config for scratch orgs Create and refresh sandboxes Run deployments Support the Team Define and build deployment flow Configure Continuous Integration
  • 19. #YD19 Salesforce DX in practice – Challenges along the way • Some features need to be a manual pre-deployment step for scratch org • Scratch org is not retrieving full config for profiles • Manual hotfixes on “release train” orgs led to lack of single source of truth for configuration • Overwriting changes in git, confusion about the flow
  • 20. #YD19 Salesforce DX in practice – Challenges along the way – Solutions Rule no. 1 – „You always make changes to profiles manually!” Rule no. 2 – Rule no. 1 cannot be omitted In the end challenges happened to be a great catalyst for learning new things!
  • 22. #YD19 Git flow This whole git flow will confuse your consultants/admins continuously
  • 23. #YD19 What we can confirm The problem is that no matter how much you say that source control is the ultimate source of truth, if people can make changes on the org directly, the org ultimately represents the true picture of what’s going on. (https://bluecanvas.io/blog/2019-2-5-why-salesforce-dx-and-git-flow-dont-work-for-salesforce-teams)
  • 24. #YD19 Salesforce DX in practice - Team adoption • Most of the non-technical team members initially started on the very high left end of the rectangle, gradually moving towards center • Lot of complaints about git usage • Experienced users were unhappy having to support others apart from their tasks
  • 25. #YD19 Git flow On average day we know Git well and can use those 4 commands. And then there is that exception.
  • 26. #YD19 Code merging Merge conflict in a file you did nothing with? You have no idea what to accept, so you will take a guess.
  • 27. #YD19 Deployment flow Or deployment flow – it takes time to push anything through it.
  • 28. #YD19 Good practices • Use properly configured scratch orgs • Proper description in commits && their clever use • Have a set of sample data • Use .forceignore wisely and don’t be afraid of it • Code retrieve-convert speeds-up hotfixing and deployments • Naming conventions
  • 29. #YD19 Summary aka One best thing (Martin) force:org:open
  • 30. #YD19 Summary aka One best thing (Adam) force:mdapi:retrieve
  • 31. #YD19 What’s ahead of us? Packaging concepts Data setup using DX Org shapes and templates
  • 33. #YD19 Join us for drinks @18:00 sponsored by Community sponsors: What we can learn from you? NonProfit-track sponsor: