SlideShare a Scribd company logo
1 of 18
Download to read offline
9 Application
Architecture
Principles
for the
Salesforce Lightning platform
Dreamforce, 2019
Steven Herod
Steven Herod
Managing Director
Certified Technical Architect
@sherod
Where these principles fit in relative to others
The 9 Principles
Summary
Agenda
What are principles?
A fundamental truth or proposition
that serves as the foundation for a
system of belief or behaviour or
for a chain of reasoning.
Relative to other principles
Apex and Specific
Tech
Salesforce Application
Architecture
Enterprise IT Principles
YOU ARE
HERE
Principles
Principle 1: Licensing leads the way
Impact on Solutioning
Understand the licensing which has been purchased, this
drives the Macro and Micro choices in the architecture.
Identify the shortcomings in the licensing to understand
solution risks and trade offs and to clearly articulate them to
stakeholders.
Solutions options to incorrect licensing can run from sub-
optimal to fatally flawed.
Commercial solutions to licensing issues are preferable over
any technical solution.
Everything that is
delivered is shaped
positively or negatively
by the customers
licensed product set.
6
Put another way…
Bad Licensing
Building lots
of
compensation
More complex
answer
7
Principle 2: Internal Architecture is essential
Impact on Solutioning
The structure of an org should be broken down into separate
sub-systems with clear functional responsibilities.
This separation should flow into the structure of the design
and solution and then the structure of the team.
Fundamental to this is explicit definition of responsibilities with
an sub-system and interactions between sub-systems.
Every implementation
should have an explicit
application structure to
its components with
boundaries.
8
For example…
9
Community
Blogs Collaboration
Product
Management
Registration Gamification
Notifications
Principle 3: Start with the Data Model
Impact on Solutioning
Data model design is a trade off between Declarative
Functions, Security and Integration.
Where trade-offs have been made, they must be
documented.
Create and maintain a data dictionary and up to date ERD.
Have specific processes in place for managing identifying
‘hot objects’ (Shared objects/High Data volume
objects/Objects approaching limits/Objects with significant
automation/trigger activity.)
The data model will
enable or constrain all
security, declarative,
reporting and
API/Integration solutions.
Principle 4: Security from the Beginning
Impact on Solutioning
Start with a default view of Private as it is easier to open up
than close down.
When solving for Security issues, aim to reduce the number
of rules defined, relying on a natural flow:
Role Hierarchy then Groups
Sharing Rules then Apex Managed Sharing
Programmatic enforcement or override of the security model
should not occur.
Avoid manual sharing
The security model
cannot be ‘added in’
later, you should start
with it in mind.
Principle 5: Start with, and use the Product
Impact on Solutioning
Salesforce offers an extremely rapid development using its
natural feature set and ways of working. Many, if not most,
user requirements have a ‘standard’ way to address the
concern. User Stories or Requirements should be played
back or demonstrated using these capabilities before
development activities are considered, or consider such
extensions in later phases when the need is proven.
What can be used as
delivered by Salesforce,
should be used.
Principle 6: Configure, Extend, Enhance but rarely
Replace
Impact on Solutioning
Many conversations about Salesforce are driven into a
dichotomy of Configuration vs Customization. That
proposes an 'either/or' way of looking at solutions, and it is
usually used associated with "right" and "wrong". We
suggest a more nuanced way of thinking about things, using
the acronym CEER
If you were to take a list of User Stories or Requirements,
and for each of those items, mark them as Configure,
Extend, Enhance, Replace, then you would build a profile of
the nature of your Salesforce implementation and this will
help expectations be met.
Avoid the ‘Configuration
vs Customisation’ false
dichotomy
Principle 7: Code is not to be feared
Impact on Solutioning
Avoid ideological driven rules on code vs config and setting
fixed percentages of functions delivered by code. Consider
using the 'CEER' framework to reframe the conversation.
Recognise that quality code can dramatically improve a
complex declarative solution. In particular, you will need to
use code to bridge complexities in Data Model, to improve or
tailor the User Interface and to scale Process Automation, in
particular in relation to large data volume, or per-transaction
performance.
Code is a part of the
solution, a necessary
requirement for
performance or
simplicity.
Principle 8: Use the AppExchange with care
Impact on Solutioning
Care should be taken to make sure AppExchange products
are cleanly integrated using the vendor’s public interfaces.
Extension via ‘interception’ (Apex Triggers) and creativity is
fragile and should be avoided at all costs.
Keep in mind that limits are shared between your extensions
and AppExchange products, this must be considered when
planning solutions.
The AppExchange is
powerful, but it should be
used thoughtfully.
Principle 9: Adopt new features, retire old ones
Impact on Solutioning
Avoid adopting Pilot or Beta features outside of POC and
experimentation work as they are generally not functionally
ready for complex use.
Move to replace depreciated features with their newer
alternatives as soon as you can as reliance on them tends to
cause accumulated legacy.
Up to 5-10% percent of your ongoing operational effort could
be focused on uplift
To stay ready, keep an
eye on the seasonal
releases and know when
to move.
Summary
Decide and document your principles
• Via your governance processes
Distribute and explain your principles
• To those beyond the team who decided them
Debate the impact of decisions against them
• Only simple problems have unambiguous answers.
Document your decisions
• Referencing the principles for later discussion.
Revisit your principles when foundations change
9 Principles for Salesforce Application Architecture

More Related Content

What's hot

Salesforce sales cloud solutions
Salesforce sales cloud solutionsSalesforce sales cloud solutions
Salesforce sales cloud solutionsJanBask LLC
 
Salesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightningSalesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightningsuresh
 
Best Practices with Apex in 2022.pdf
Best Practices with Apex in 2022.pdfBest Practices with Apex in 2022.pdf
Best Practices with Apex in 2022.pdfMohith Shrivastava
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platformJohn Stevenson
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsSalesforce Developers
 
Supercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and DashboardsSupercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and DashboardsNetStronghold
 
Introduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime PlatformIntroduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime PlatformSalesforce Developers
 
Single Sign-On and User Provisioning with Salesforce Identity
Single Sign-On and User Provisioning with Salesforce IdentitySingle Sign-On and User Provisioning with Salesforce Identity
Single Sign-On and User Provisioning with Salesforce IdentitySalesforce Developers
 
Salesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewSalesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewDhanik Sahni
 
Security and Your Salesforce Org
Security and Your Salesforce OrgSecurity and Your Salesforce Org
Security and Your Salesforce OrgSalesforce Admins
 
Salesforce Service Cloud - An overview
Salesforce Service Cloud - An overviewSalesforce Service Cloud - An overview
Salesforce Service Cloud - An overviewAjay Balakrishnan
 
Sap integration salesforce_presentation
Sap integration salesforce_presentationSap integration salesforce_presentation
Sap integration salesforce_presentationSalesforce Deutschland
 
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...Edureka!
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce IntroRich Helton
 
Salesforce for Marketing Overview Deck
Salesforce for Marketing Overview DeckSalesforce for Marketing Overview Deck
Salesforce for Marketing Overview DeckSylvia Wong ☁
 
Performing a successful technical debt assessment in Salesforce
Performing a successful technical debt assessment in SalesforcePerforming a successful technical debt assessment in Salesforce
Performing a successful technical debt assessment in SalesforceCoforge (Erstwhile WHISHWORKS)
 
Salesforce complete overview
Salesforce complete overviewSalesforce complete overview
Salesforce complete overviewNitesh Mishra ☁
 
Salesforce.com Training - navigation course
Salesforce.com Training - navigation courseSalesforce.com Training - navigation course
Salesforce.com Training - navigation courseMauroSFDC
 

What's hot (20)

Salesforce sales cloud solutions
Salesforce sales cloud solutionsSalesforce sales cloud solutions
Salesforce sales cloud solutions
 
Salesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightningSalesforce online training || Salesforce Integration | salesforce lightning
Salesforce online training || Salesforce Integration | salesforce lightning
 
Best Practices with Apex in 2022.pdf
Best Practices with Apex in 2022.pdfBest Practices with Apex in 2022.pdf
Best Practices with Apex in 2022.pdf
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
 
Supercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and DashboardsSupercharge your Salesforce Reports and Dashboards
Supercharge your Salesforce Reports and Dashboards
 
Introduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime PlatformIntroduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime Platform
 
Architecting Multi-Org Solutions
Architecting Multi-Org SolutionsArchitecting Multi-Org Solutions
Architecting Multi-Org Solutions
 
Single Sign-On and User Provisioning with Salesforce Identity
Single Sign-On and User Provisioning with Salesforce IdentitySingle Sign-On and User Provisioning with Salesforce Identity
Single Sign-On and User Provisioning with Salesforce Identity
 
Salesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewSalesforce Integration Pattern Overview
Salesforce Integration Pattern Overview
 
Security and Your Salesforce Org
Security and Your Salesforce OrgSecurity and Your Salesforce Org
Security and Your Salesforce Org
 
Deep Dive into Apex Triggers
Deep Dive into Apex TriggersDeep Dive into Apex Triggers
Deep Dive into Apex Triggers
 
Salesforce Service Cloud - An overview
Salesforce Service Cloud - An overviewSalesforce Service Cloud - An overview
Salesforce Service Cloud - An overview
 
Sap integration salesforce_presentation
Sap integration salesforce_presentationSap integration salesforce_presentation
Sap integration salesforce_presentation
 
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
Salesforce Training For Beginners | Salesforce Tutorial | Salesforce Training...
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
 
Salesforce for Marketing Overview Deck
Salesforce for Marketing Overview DeckSalesforce for Marketing Overview Deck
Salesforce for Marketing Overview Deck
 
Performing a successful technical debt assessment in Salesforce
Performing a successful technical debt assessment in SalesforcePerforming a successful technical debt assessment in Salesforce
Performing a successful technical debt assessment in Salesforce
 
Salesforce complete overview
Salesforce complete overviewSalesforce complete overview
Salesforce complete overview
 
Salesforce.com Training - navigation course
Salesforce.com Training - navigation courseSalesforce.com Training - navigation course
Salesforce.com Training - navigation course
 

Similar to 9 Principles for Salesforce Application Architecture

A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guideTriet Ho
 
Erp presentation
Erp presentationErp presentation
Erp presentationjan aljan
 
A comprehensive guide to Salesforce Org Strategy
A comprehensive guide to Salesforce Org StrategyA comprehensive guide to Salesforce Org Strategy
A comprehensive guide to Salesforce Org StrategyGaytri khandelwal
 
Dsg best practice guide for net suite implementation success
Dsg best practice guide for net suite implementation successDsg best practice guide for net suite implementation success
Dsg best practice guide for net suite implementation successBootstrap Marketing
 
The app trail how ideas move out of the drawing board onto the app store
The app trail how ideas move out of the drawing board onto the app storeThe app trail how ideas move out of the drawing board onto the app store
The app trail how ideas move out of the drawing board onto the app storeBitMin Infosystems Pvt. Ltd
 
Managing model-driven applications
Managing model-driven applicationsManaging model-driven applications
Managing model-driven applicationsThei Geurts
 
Pega robotics best practices building solutions (1)
Pega robotics best practices   building solutions (1)Pega robotics best practices   building solutions (1)
Pega robotics best practices building solutions (1)KPMG US
 
Pega Robotics Training @Phno: whatsapp @8142976573.
Pega Robotics Training @Phno: whatsapp @8142976573.Pega Robotics Training @Phno: whatsapp @8142976573.
Pega Robotics Training @Phno: whatsapp @8142976573.Santhoo Vardan
 
NONPROFIT INSIGHTS
NONPROFIT INSIGHTSNONPROFIT INSIGHTS
NONPROFIT INSIGHTSlescar123
 
Enterprise Software Implementation
Enterprise Software ImplementationEnterprise Software Implementation
Enterprise Software Implementationbrh184
 
The Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application ArchitectureThe Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application ArchitectureTechAhead
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure rupeshchanchal
 
Overcoming problems implementing cloud based dev ops for distributed agile pr...
Overcoming problems implementing cloud based dev ops for distributed agile pr...Overcoming problems implementing cloud based dev ops for distributed agile pr...
Overcoming problems implementing cloud based dev ops for distributed agile pr...Tom Stiehm
 
[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...
[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...
[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...WSO2
 
Le cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenaires
Le cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenairesLe cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenaires
Le cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenairesClub Alliances
 

Similar to 9 Principles for Salesforce Application Architecture (20)

A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
 
Erp presentation
Erp presentationErp presentation
Erp presentation
 
A comprehensive guide to Salesforce Org Strategy
A comprehensive guide to Salesforce Org StrategyA comprehensive guide to Salesforce Org Strategy
A comprehensive guide to Salesforce Org Strategy
 
Dsg best practice guide for net suite implementation success
Dsg best practice guide for net suite implementation successDsg best practice guide for net suite implementation success
Dsg best practice guide for net suite implementation success
 
The app trail how ideas move out of the drawing board onto the app store
The app trail how ideas move out of the drawing board onto the app storeThe app trail how ideas move out of the drawing board onto the app store
The app trail how ideas move out of the drawing board onto the app store
 
Managing model-driven applications
Managing model-driven applicationsManaging model-driven applications
Managing model-driven applications
 
Pega robotics best practices building solutions (1)
Pega robotics best practices   building solutions (1)Pega robotics best practices   building solutions (1)
Pega robotics best practices building solutions (1)
 
Pega Robotics Training @Phno: whatsapp @8142976573.
Pega Robotics Training @Phno: whatsapp @8142976573.Pega Robotics Training @Phno: whatsapp @8142976573.
Pega Robotics Training @Phno: whatsapp @8142976573.
 
NONPROFIT INSIGHTS
NONPROFIT INSIGHTSNONPROFIT INSIGHTS
NONPROFIT INSIGHTS
 
5020
50205020
5020
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Zen Of Oracle Erp
Zen Of Oracle ErpZen Of Oracle Erp
Zen Of Oracle Erp
 
Enterprise Software Implementation
Enterprise Software ImplementationEnterprise Software Implementation
Enterprise Software Implementation
 
The Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application ArchitectureThe Eight Building Blocks of Enterprise Application Architecture
The Eight Building Blocks of Enterprise Application Architecture
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
Overcoming problems implementing cloud based dev ops for distributed agile pr...
Overcoming problems implementing cloud based dev ops for distributed agile pr...Overcoming problems implementing cloud based dev ops for distributed agile pr...
Overcoming problems implementing cloud based dev ops for distributed agile pr...
 
Sap implementation
Sap implementationSap implementation
Sap implementation
 
[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...
[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...
[WSO2 API Day Chicago 2019] Pace Layering to Prioritize Business Initiatives ...
 
About Corelynx
About Corelynx About Corelynx
About Corelynx
 
Le cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenaires
Le cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenairesLe cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenaires
Le cloudvupardesexperts 9pov-curationparloicsimon-clubclouddespartenaires
 

More from Steven Herod

How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019Steven Herod
 
Super Secret Salesforce
Super Secret SalesforceSuper Secret Salesforce
Super Secret SalesforceSteven Herod
 
Perspectives on salesforce architecture Forcelandia talk 2017
Perspectives on salesforce architecture   Forcelandia talk 2017Perspectives on salesforce architecture   Forcelandia talk 2017
Perspectives on salesforce architecture Forcelandia talk 2017Steven Herod
 
The dreamforce 2018 wrap final
The dreamforce 2018 wrap finalThe dreamforce 2018 wrap final
The dreamforce 2018 wrap finalSteven Herod
 
Sydney salesforce developer group talker tips
Sydney salesforce developer group   talker tipsSydney salesforce developer group   talker tips
Sydney salesforce developer group talker tipsSteven Herod
 
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad..."How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...Steven Herod
 
Designing custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comDesigning custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comSteven Herod
 
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)Steven Herod
 
Force.com Canvas - a Quick Introduction
Force.com Canvas - a Quick IntroductionForce.com Canvas - a Quick Introduction
Force.com Canvas - a Quick IntroductionSteven Herod
 
Twitter bootstrap force.com site and responsive design
Twitter bootstrap   force.com site and responsive designTwitter bootstrap   force.com site and responsive design
Twitter bootstrap force.com site and responsive designSteven Herod
 
Becoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical ArchitectBecoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical ArchitectSteven Herod
 

More from Steven Herod (11)

How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
 
Super Secret Salesforce
Super Secret SalesforceSuper Secret Salesforce
Super Secret Salesforce
 
Perspectives on salesforce architecture Forcelandia talk 2017
Perspectives on salesforce architecture   Forcelandia talk 2017Perspectives on salesforce architecture   Forcelandia talk 2017
Perspectives on salesforce architecture Forcelandia talk 2017
 
The dreamforce 2018 wrap final
The dreamforce 2018 wrap finalThe dreamforce 2018 wrap final
The dreamforce 2018 wrap final
 
Sydney salesforce developer group talker tips
Sydney salesforce developer group   talker tipsSydney salesforce developer group   talker tips
Sydney salesforce developer group talker tips
 
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad..."How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
 
Designing custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comDesigning custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.com
 
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
Dreamforce 2013 for Developers (Sydney Salesforce Developer User Group)
 
Force.com Canvas - a Quick Introduction
Force.com Canvas - a Quick IntroductionForce.com Canvas - a Quick Introduction
Force.com Canvas - a Quick Introduction
 
Twitter bootstrap force.com site and responsive design
Twitter bootstrap   force.com site and responsive designTwitter bootstrap   force.com site and responsive design
Twitter bootstrap force.com site and responsive design
 
Becoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical ArchitectBecoming a Salesforce.com Technical Architect
Becoming a Salesforce.com Technical Architect
 

Recently uploaded

Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 

Recently uploaded (20)

Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 

9 Principles for Salesforce Application Architecture

  • 1. 9 Application Architecture Principles for the Salesforce Lightning platform Dreamforce, 2019 Steven Herod
  • 2. Steven Herod Managing Director Certified Technical Architect @sherod
  • 3. Where these principles fit in relative to others The 9 Principles Summary Agenda
  • 4. What are principles? A fundamental truth or proposition that serves as the foundation for a system of belief or behaviour or for a chain of reasoning.
  • 5. Relative to other principles Apex and Specific Tech Salesforce Application Architecture Enterprise IT Principles YOU ARE HERE Principles
  • 6. Principle 1: Licensing leads the way Impact on Solutioning Understand the licensing which has been purchased, this drives the Macro and Micro choices in the architecture. Identify the shortcomings in the licensing to understand solution risks and trade offs and to clearly articulate them to stakeholders. Solutions options to incorrect licensing can run from sub- optimal to fatally flawed. Commercial solutions to licensing issues are preferable over any technical solution. Everything that is delivered is shaped positively or negatively by the customers licensed product set. 6
  • 7. Put another way… Bad Licensing Building lots of compensation More complex answer 7
  • 8. Principle 2: Internal Architecture is essential Impact on Solutioning The structure of an org should be broken down into separate sub-systems with clear functional responsibilities. This separation should flow into the structure of the design and solution and then the structure of the team. Fundamental to this is explicit definition of responsibilities with an sub-system and interactions between sub-systems. Every implementation should have an explicit application structure to its components with boundaries. 8
  • 10. Principle 3: Start with the Data Model Impact on Solutioning Data model design is a trade off between Declarative Functions, Security and Integration. Where trade-offs have been made, they must be documented. Create and maintain a data dictionary and up to date ERD. Have specific processes in place for managing identifying ‘hot objects’ (Shared objects/High Data volume objects/Objects approaching limits/Objects with significant automation/trigger activity.) The data model will enable or constrain all security, declarative, reporting and API/Integration solutions.
  • 11. Principle 4: Security from the Beginning Impact on Solutioning Start with a default view of Private as it is easier to open up than close down. When solving for Security issues, aim to reduce the number of rules defined, relying on a natural flow: Role Hierarchy then Groups Sharing Rules then Apex Managed Sharing Programmatic enforcement or override of the security model should not occur. Avoid manual sharing The security model cannot be ‘added in’ later, you should start with it in mind.
  • 12. Principle 5: Start with, and use the Product Impact on Solutioning Salesforce offers an extremely rapid development using its natural feature set and ways of working. Many, if not most, user requirements have a ‘standard’ way to address the concern. User Stories or Requirements should be played back or demonstrated using these capabilities before development activities are considered, or consider such extensions in later phases when the need is proven. What can be used as delivered by Salesforce, should be used.
  • 13. Principle 6: Configure, Extend, Enhance but rarely Replace Impact on Solutioning Many conversations about Salesforce are driven into a dichotomy of Configuration vs Customization. That proposes an 'either/or' way of looking at solutions, and it is usually used associated with "right" and "wrong". We suggest a more nuanced way of thinking about things, using the acronym CEER If you were to take a list of User Stories or Requirements, and for each of those items, mark them as Configure, Extend, Enhance, Replace, then you would build a profile of the nature of your Salesforce implementation and this will help expectations be met. Avoid the ‘Configuration vs Customisation’ false dichotomy
  • 14. Principle 7: Code is not to be feared Impact on Solutioning Avoid ideological driven rules on code vs config and setting fixed percentages of functions delivered by code. Consider using the 'CEER' framework to reframe the conversation. Recognise that quality code can dramatically improve a complex declarative solution. In particular, you will need to use code to bridge complexities in Data Model, to improve or tailor the User Interface and to scale Process Automation, in particular in relation to large data volume, or per-transaction performance. Code is a part of the solution, a necessary requirement for performance or simplicity.
  • 15. Principle 8: Use the AppExchange with care Impact on Solutioning Care should be taken to make sure AppExchange products are cleanly integrated using the vendor’s public interfaces. Extension via ‘interception’ (Apex Triggers) and creativity is fragile and should be avoided at all costs. Keep in mind that limits are shared between your extensions and AppExchange products, this must be considered when planning solutions. The AppExchange is powerful, but it should be used thoughtfully.
  • 16. Principle 9: Adopt new features, retire old ones Impact on Solutioning Avoid adopting Pilot or Beta features outside of POC and experimentation work as they are generally not functionally ready for complex use. Move to replace depreciated features with their newer alternatives as soon as you can as reliance on them tends to cause accumulated legacy. Up to 5-10% percent of your ongoing operational effort could be focused on uplift To stay ready, keep an eye on the seasonal releases and know when to move.
  • 17. Summary Decide and document your principles • Via your governance processes Distribute and explain your principles • To those beyond the team who decided them Debate the impact of decisions against them • Only simple problems have unambiguous answers. Document your decisions • Referencing the principles for later discussion. Revisit your principles when foundations change

Editor's Notes

  1. Explanation Salesforce licensing establishes the broad boundaries of the achievable Application Architecture.. Choosing correct license is the key decision to be taken for designing any solution in salesforce. It’s essential that the high level capabilities required of the solution fit well with the licensing acquired as it drives solution to use of more native features, more secure and performant solution and lower code. When a sub-optimal license is chosen, solutions can be deeply compromised. This manifests itself in two ways: An overly optimistic selection of a ‘Limited Use’ license where the actual need exceeds the expectation of ‘limited use’ A conscious choice to avoid a license set to ‘build out’ the capability in custom development. Licensing work arounds manifest themselves as: Excessive code, as standard functionality is replaced with custom functionality. Excessive consumption of limits, as available functions are ‘overloaded’ with additional responsibilites. Compromised security, as security model features which are not available, are worked around (Communities)
  2. Explanation In most occurrences, a Salesforce solution is deployed to a single production instance or ‘org’. Whilst progress has been made with modular packaging, Salesforce lacks native support for namespaces or modularisation to enforce the separation of concerns between sub-systems. Thus, whilst the solution may logically be considered to have separate sub-systems when described conceptually, its runtime implementation can often lack a recognisable structure within metadata and code. As a result Application Architects must impose structure using design and convention with particular attention at understanding the points at which sub-systems interact. Specifically: Ensure your solution has an identifiable structure with clearly defined responsibilities which build a coherent picture. Ensure this structure is reflected in documentation, sub-system naming conventions and a clear understanding of boundaries and interactions between sub-systems. Recognise that design can emerge, and that refactoring will be a natural part of the design process, albeit one which can often be difficult to justify in cost/time constrained situations.
  3. Explanation Good outcomes and bad outcomes start with the logical data model for a system and the physical representation within a Salesforce Org. This physical data model in Salesforce will either enable declarative features e.g Cases or require custom development e.g. Role. In design you must strike a balance between pragmatism and idealism. In general, adapt more general logical/objects models must be tailored to the specific capabilities and constraints of Salesforce. Specifically: An emphasis on Parent/Child relationships. A smaller number of ‘wider’ objects (More denormalization) Use of Record Types to provide polymorphism within an object. Use of Picklists for Enumerations rather than lookup tables. Careful use of Many-to-Many relationship which impact declarative UI capabilities Avoid all forms of duplication, in either objects or fields, except where explicitly chosen to mitigate performance issues. Use Master-Detail relationships only when specific requirements drive the need and data volumes/locking concerns are mitigated. Governance of this data model and its measured change is key to success.  These issues is not a technical problem, but organisational.
  4. Explanation Security has fundamental impact on the behaviour of the system and the security model should be well understood with choices explicitly made and documented. Poorly understood security models result in potential disclosure of sensitive information, missing functions/fields or performance issues. At its core, the Security model fundamentals starts with the Licensing. Once this is understood the Profile/Permission Set model is the next major area. Use Profiles sparingly, and only for the functionality which is required (i.e. 1 per licnese type). Favour Permission Sets for their abilities to support Packaging and Deployment and for their ability to be layered. Structure Permission Sets by functional capability and not be Job Role. Prefer Private or Public Read Only sharing models over Public Read/Write. Remember the Role Heirarchy and Organisational Wide Defaults are only applicable to Private/Public Read Only and extremely difficult to reverse apply to an existing system. The Role Heirarchy should reflect the data access model and not the companies organisation model. Recall that recalculating of Sharing, as occurring during mass data changes, ownership changes or role changes is a time consuming
  5. Explanation Salesforce is both a Product which provides solutions and a Platform on which solutions can be built. In both cases its out of the box capabilities provide the basis of any solution. Whilst the conscious choice to replace functionality can be valid, it should be secondary to knowing of and using Standard functionality. Check release notes and use product specialists to understand system capabilities and verify them using short proof of concepts. Remember that standard Salesforce objects such as Account, Lead, Contact, Opportunity, Case have special behaviours which cannot be replicated in Custom objects. These objects are also most commonly relied on by AppExchange products for extension or integration. When extending these objects or integrating with Standard objects, take special care to ensure you are preserving capability. In general, avoid repurposing Standard Objects for ‘other means’ (For instance, making the Case object a ‘Work Order’), as more general use of them in subsequent phases will be difficult. Custom Objects have little to no cost but avoid excessive numbers by making use of record types to collapse many similar objects to a single Custom Object.   Avoid using this approach to collapse significantly different objects.   Use the demand to reduce customisation to drive conversation and solutions back to standard functionality and consider alternatives only if the integrity of outcome is at risk.
  6. CEER Configure The functionality is supported using ‘no logic’ setup of Salesforce, such as default lead owner, page layouts, field level security, lighting apps. Extend Logic processing functionality, such as Process builder, Workflow rules, Lightning Components and Apex Code Enhance The introduction of managed packages and third-party solutions to add net new functionality.  Such as Conga, CloudSense, Vlocity,  Replace The wilful replacement of any out of the box functionality with development work.  Such as:  Building your own workflow processing engine, Page Layout editor,  UI Framework, Security Model implementation.   Replace is the category of change that should be avoided unless it is acknowledged as a Replacement and formally accepted as a design choice. For example: Most Configure/Some Extend  Standard Salesforce implementation using Sales or Service Cloud. Some Configure, Most Extend Integration with external systems, migration of internal Applications into Salesforce. Most Enhance, Some Configure and Extend Deployment of a Managed Package which is providing most of what the client wanted to do. Some Enhance but much Extend A poorly fitting Managed Package, do you have the right product? Much Replace Has the client understood the platform?
  7. Explanation Many customers object to code on principle, shaped by experiences on traditional ERP platforms where code means lock-in or by overly optimistic marketing from Salesforce.    The reality is that developing extensions to Salesforce in code (Apex/Visualforce/Lightning) does not have the same impact, in particular, it does not prohibit upgrades of the core functionality.  Seek the simplest solution for a problem, that is consistent with the patterns already established, and in line with the non-functional requirements (volume, performance) and based on your available skillsets, not on the expectation that ‘clicks’ are easier than code.   
  8. Explanation AppExchange products enhance Salesforce’s capabilities by adding either specific point functionality (such as document generation or e-signature) or by tailoring Salesforce to domain-specific needs (Such as Insurance Claim system).  AppExchange products can be simple and low impact or have a significant footprint across an entire solution.  Understand that different, complex, managed packages often have conflicting points of view on data model usage (For instance, on how Account/Contact is used) and can duplicate functional areas (i.e. UI frameworks or Business Process Management/Workflow capabilities).   It's essential you verify that products can co-exist both logically (they use standard Salesforce features the same way) and physically (they do not, collectively, consume all available capacity.
  9. Explanation Salesforce is one of the few platforms that automatically improves in capability 3 times a year.  This means that a continued eye must be kept on taking advantage of new capabilities and opportunities. New features may render previous Extensions/Configuration no longer necessary, meaning that bespoke work can be removed and replaced with out of the box features. In limited cases, some features may become retired/depreciated.