SlideShare a Scribd company logo
1 of 31
How do I architect?
Thinking about your Salesforce org from an Architectural perspective
About Me
I work for Cloud Sherpas as a
Technical Director (APJ).
@sherod on Twitter
http://limitexception.com
Topics
• What is good architecture?
• The building blocks
• Understanding your business
• Your IT Architecture
• A suitable Data Model
• Dealing with developers
• User Stories
• Mockups
• ‘Anti-patterns’
• Architectural fundamentalism
• Enterprise mentality!
• ‘You aren’t going to need it’
• ‘Don’t repeat yourself’
“Software architecture are those
decisions which are hard to
change”
- Martin Fowler
A Good Architecture
• Should tell a story where all the
pieces fit together.
• Some pieces may be easily
swappable with no effect.
• Some pieces may change the
shape of the puzzle
What is „Architecture‟
• Architecture is not one size fits all, there are consistent broad
practices but there is no 'right’ solution just solutions which are more
or less appropriate depending on:
• Your organisation’s capabilities
• Your organisation’s drivers and motivations
• Good Architecture is not everything!
• Only solving the Right Problems with Good Architecture and Quality
Execution = Great outcome
Forces at work
• Creating an Architecture will often involve making trade offs between
different elements
• Understanding the key constraints/drivers will inform your decision
making.
• E.g.
• “We only expect 50 of these to occur in the first year”
• Perhaps no automation?
• “This product is experimental, we want test the market”
• Fast delivery, will probably be discarded?
• “We’re going to have 80% growth in this in the next 3 months
• Time to Automate!
Assessing a solutions
• You will likely come up with multiple solutions
• For each solution:
• Is it a complete solution?
• Does it fulfil the requirement?
• Is it achievable given our internal constraints? (Time, money, skills)
• Is it achievable given any technology constraints?
• Does it add to our capability or restrict us in the future?
• Does it reduce or increase our risks?
Impact Analysis
• You have to weigh the ‘cost’ of a particular solution on benefit gained
• For instance: Salesforce limits are like money in the bank.
• Is it appropriate to ‘spend’ 100 custom fields on an object for an oddball
requirement?
• Would 50 lines of Apex stop you from consuming all the workflow rules on an
object?
• Does one solution offer a greater benefit for a lesser ‘cost’.
• Costs are likely to be weighted, that is, using all of an unextendable limit is a
greater cost than one that can be extended.
Governance!
• Central review and oversight to weave the growth of the org into a
coherent story
• Decides what the system will and won’t be responsible and the
compromises that are made to achieve a business goal
• This concept has various names:
• An ‘Architect’ or ‘A Product Owner’ or a ‘Champion’ or a ‘Governance Board’
or a ‘Business Owner’
• And various mechanisms
• Change Requests, Cases, ‘Sprints’, etc, etc.
Your IT Architecture
• Understanding the role of Salesforce inside your organisation
• Understanding the role and responsibility of other systems
• How they interact
• System’s of Record / Sources of Truth
Conceptual View
Shows how the functional responsibilities are
split across different systems and which
systems are linked with each other.
This is your ’30,000 foot view’
Logical View
Shows the specific IT systems and the data
flows between each system.
This is your ‘2000 foot view’.
(The Street Level view would include which
servers things run on and so forth)
Your Data Model
The role of the Data Model
• Good outcomes and bad outcomes start with the Data Model
• Starts as abstract concept and becomes more specific
• Conceptual > Logical > Physical
• Your Physical Data Model in Salesforce directly influences what is
possible with Declarative Features vs what requires Custom
Development, you must strike a balance between pragmatism and
idealism
Layers of data model
• What are the key entities make up the solution
and how do they related to one another?Conceptual
• What is the cardinality of the relationships (e.g.
1 to many)Logical
• Object names, Field names, exact data types
(date/numeric), Sizes (255 Chars)Physical
Conceptual
Account
Opportunity
Contact
Physical
Data model concepts
• Modifying your data model later can have a significant impact on your
solution.
• With Salesforce the more flexible your data model the more code you need
to write.
• Many to Many relationships = Custom UI to be used efficiently.
• What concepts is your data model capable of representing?
• Zero to Many
• Account Hierarchy
• One to Many
• Account + Contacts
• Many to Many
• Campaigns
Custom vs Standard Objects?
• Start with
• Understanding the Salesforce Standard Objects and fields and their ‘Special Features’
• If it walks like a duck and talks like a duck, its probably a Duck.
• If it’s called a Duck but it walks like a chicken and talks like a chicken, its
probably a Chicken.
• ‘We need to keep quotes, but we won’t be using Opportunities, or
Products or be sending Quote’s out of Salesforce’
• It’s probably not the Quote object
• ‘We need to track Jobs, with email interactions and pass it back and forth
between people ’
• I think you mean ‘Case’.
„Developers! Developers!
Developers!‟
-Steve Balmer
I.e. What not to do
Dealing with Developers
• Developers are people too.
• Helping them understand why you need something goes a long way
to improving outcomes.
• Your business, your motivations, your needs, your concerns
• Listening helps
• Developers may find logical flaws in your approach or flag risks
• Computers don’t handle concepts like ‘sometimes’ and ‘maybe’ which people are fond
of.
• Judging a developers progress
• “Show me”
• Walkthroughs, demos, iterative release. (Agile)
Good Practices
• Naming conventions will help you organise your org
• What you name something can live with you forever
• Remember to add Descriptions everywhere it is possible in order to
to self document your org
The User Story
• Are a good way of expressing a requirement in a way that provides
context and justification:
• Usually in a standard form:
• ‘As a <Job Role> I want to <some business process> so that I can <achieve
some outcome>’
• E.g.
• “As a Manager I want to be able to approve or deny an expense claim so that I
can enforce the companies standards for acceptable expenses”
Mockups/Storyboard
• Illustrate a flow
• Allow people to visualise the end to end process
• My Favorite tool:
• Balsamic Mockups
„Anti-Patterns‟
I.e. What not to do
“Cargo cult programming”
• Cargo cult programming can also refer to the results of applying
a design pattern or coding style blindly without understanding the
reasons behind that design principle. Examples are adding
unnecessary comments to self-explanatory code, adding deletion
code for objects that garbage collection would have collected
automatically with no problem, and creating factory objects to build
simple objects. It often happens when programmers are
inexperienced with the programming language, or simply
overzealous.
• Wikipedia
Architectural Fundamentalism
• “A idealist is one who, on learning a rose smells better than a
cabbage, concludes it will make a better soup”
• E.g.
• “We don’t use Flow”
• “All <problem > must be solved with <xx>, no exceptions”
• When you decree your standard tool is a hammer, you better hope
you only need to hit nails.
• Taking the long way around to solve a problem is not better.
Complexity = Enterprise = „Grown up”
• The more moving parts you have, the more things that can break.
• Adding complexity increases fragility
• KISS principle: Keep It Simple Stupid
“YAGNI: You aren‟t going to need it”
• Do Think/Plan ahead
• ‘Roadmap’
• ‘Strategy’
• ‘Mission statement’
• ‘Architectural principles’
• Don’t build it until you need it.
• An actual need > than an imagined need.
• Although you need to do a risk assessment on ignoring a need
“Stay DRY (Don‟t repeat yourself)”
• Single sources of truth
• At the Macro Level
• Duplicate Systems (Salesforce AND Zoho)
• At the Org level
• Duplicate managed packages (Docusign AND Echosign)
• Duplicate fields
• Duplicate objects
• Duplicate code.
• A good architecture avoids duplication at all levels.

More Related Content

What's hot

Salesforce Mobile architecture introduction
Salesforce Mobile architecture introductionSalesforce Mobile architecture introduction
Salesforce Mobile architecture introductionDavid Scruggs
 
How Salesforce.com R&D Delivers the Cloud
How Salesforce.com R&D Delivers the CloudHow Salesforce.com R&D Delivers the Cloud
How Salesforce.com R&D Delivers the CloudSalesforce Developers
 
What is force.com?
What is force.com?What is force.com?
What is force.com?Roy Gilad
 
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Engineering
 
Integrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s GuideIntegrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s GuideSalesforce.org
 
Salesforce com-architecture
Salesforce com-architectureSalesforce com-architecture
Salesforce com-architecturedrewz lin
 
Salesforce1: Every Developer is a Mobile Developer
Salesforce1: Every Developer is a Mobile DeveloperSalesforce1: Every Developer is a Mobile Developer
Salesforce1: Every Developer is a Mobile DeveloperSalesforce Developers
 
Salesforce Integration Patterns
Salesforce Integration PatternsSalesforce Integration Patterns
Salesforce Integration Patternsusolutions
 
Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)Salesforce Developers
 
Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku
Reinvent your App Dev Lifecycle with Continuous Delivery on HerokuReinvent your App Dev Lifecycle with Continuous Delivery on Heroku
Reinvent your App Dev Lifecycle with Continuous Delivery on HerokuSalesforce Developers
 
Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comSalesforce Developers
 
Introduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - BasicIntroduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - Basicsanskriti agarwal
 
Lighting up the Bay, Real-World App Cloud
Lighting up the Bay, Real-World App CloudLighting up the Bay, Real-World App Cloud
Lighting up the Bay, Real-World App CloudSalesforce Developers
 
A Review on Salesforce Integration
A Review on Salesforce IntegrationA Review on Salesforce Integration
A Review on Salesforce Integrationijtsrd
 
Salesforce – The Future of CRM
Salesforce – The Future of CRMSalesforce – The Future of CRM
Salesforce – The Future of CRMijtsrd
 
Getting Started with Salesforce Admin and Developer Foundation
Getting Started with Salesforce Admin and Developer FoundationGetting Started with Salesforce Admin and Developer Foundation
Getting Started with Salesforce Admin and Developer FoundationEdureka!
 
How to Position Enterprise Architects in Today's Business
How to Position Enterprise Architects in Today's Business How to Position Enterprise Architects in Today's Business
How to Position Enterprise Architects in Today's Business Salesforce
 

What's hot (20)

Salesforce Mobile architecture introduction
Salesforce Mobile architecture introductionSalesforce Mobile architecture introduction
Salesforce Mobile architecture introduction
 
How Salesforce.com R&D Delivers the Cloud
How Salesforce.com R&D Delivers the CloudHow Salesforce.com R&D Delivers the Cloud
How Salesforce.com R&D Delivers the Cloud
 
What is force.com?
What is force.com?What is force.com?
What is force.com?
 
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
 
Integrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s GuideIntegrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s Guide
 
Salesforce com-architecture
Salesforce com-architectureSalesforce com-architecture
Salesforce com-architecture
 
Salesforce1: Every Developer is a Mobile Developer
Salesforce1: Every Developer is a Mobile DeveloperSalesforce1: Every Developer is a Mobile Developer
Salesforce1: Every Developer is a Mobile Developer
 
Salesforce Integration Patterns
Salesforce Integration PatternsSalesforce Integration Patterns
Salesforce Integration Patterns
 
Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)Webinar: Integrating Salesforce and Slack (05 12-16)
Webinar: Integrating Salesforce and Slack (05 12-16)
 
Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku
Reinvent your App Dev Lifecycle with Continuous Delivery on HerokuReinvent your App Dev Lifecycle with Continuous Delivery on Heroku
Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
 
Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.com
 
Introduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - BasicIntroduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - Basic
 
Lighting up the Bay, Real-World App Cloud
Lighting up the Bay, Real-World App CloudLighting up the Bay, Real-World App Cloud
Lighting up the Bay, Real-World App Cloud
 
Write bulletproof trigger code
Write bulletproof trigger codeWrite bulletproof trigger code
Write bulletproof trigger code
 
Introduction to salesforce ppt
Introduction to salesforce pptIntroduction to salesforce ppt
Introduction to salesforce ppt
 
A Review on Salesforce Integration
A Review on Salesforce IntegrationA Review on Salesforce Integration
A Review on Salesforce Integration
 
Salesforce – The Future of CRM
Salesforce – The Future of CRMSalesforce – The Future of CRM
Salesforce – The Future of CRM
 
Getting Started with Salesforce Admin and Developer Foundation
Getting Started with Salesforce Admin and Developer FoundationGetting Started with Salesforce Admin and Developer Foundation
Getting Started with Salesforce Admin and Developer Foundation
 
How to Position Enterprise Architects in Today's Business
How to Position Enterprise Architects in Today's Business How to Position Enterprise Architects in Today's Business
How to Position Enterprise Architects in Today's Business
 

Similar to "How do I Architect?" - Quick Introduction to Architecture for Salesforce Admins

Lean UX in an Agency Environment
Lean UX in an Agency EnvironmentLean UX in an Agency Environment
Lean UX in an Agency EnvironmentJef Bekes
 
Customer Development Fast Protyping
Customer Development Fast ProtypingCustomer Development Fast Protyping
Customer Development Fast ProtypingSerdar Temiz
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageBuiltvisible
 
How to build the perfect pattern library
How to build the perfect pattern libraryHow to build the perfect pattern library
How to build the perfect pattern libraryWolf Brüning
 
Design Operations mural - 8 mar 2017
Design Operations   mural - 8 mar 2017Design Operations   mural - 8 mar 2017
Design Operations mural - 8 mar 2017Dave Malouf
 
(PROJEKTURA) lean and agile for corporation @Cotrugli MBA
(PROJEKTURA) lean and agile for corporation @Cotrugli MBA(PROJEKTURA) lean and agile for corporation @Cotrugli MBA
(PROJEKTURA) lean and agile for corporation @Cotrugli MBARatko Mutavdzic
 
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
 
Analytics-Enabled Experiences: The New Secret Weapon
Analytics-Enabled Experiences: The New Secret WeaponAnalytics-Enabled Experiences: The New Secret Weapon
Analytics-Enabled Experiences: The New Secret WeaponDatabricks
 
Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)Robert Haines
 
Adventures in enterprise architecture
Adventures in enterprise architectureAdventures in enterprise architecture
Adventures in enterprise architectureJeff Bramwell
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation ProjectsAmazon Web Services
 
Fast prototypes and customer development for start ups
Fast prototypes and customer development for start upsFast prototypes and customer development for start ups
Fast prototypes and customer development for start upsSerdar Temiz
 
Scaling agile without the scaling framework
Scaling agile without the scaling frameworkScaling agile without the scaling framework
Scaling agile without the scaling frameworkagilebydesign
 
Validating Ideas Through Prototyping
Validating Ideas Through PrototypingValidating Ideas Through Prototyping
Validating Ideas Through PrototypingChris Risdon
 
Become Efficient or Die: The Story of BackType
Become Efficient or Die: The Story of BackTypeBecome Efficient or Die: The Story of BackType
Become Efficient or Die: The Story of BackTypenathanmarz
 
How to Add Intelligence to Your Product Design
How to Add Intelligence to Your Product DesignHow to Add Intelligence to Your Product Design
How to Add Intelligence to Your Product DesignSalesforce Developers
 

Similar to "How do I Architect?" - Quick Introduction to Architecture for Salesforce Admins (20)

Lean UX in an Agency Environment
Lean UX in an Agency EnvironmentLean UX in an Agency Environment
Lean UX in an Agency Environment
 
Customer Development Fast Protyping
Customer Development Fast ProtypingCustomer Development Fast Protyping
Customer Development Fast Protyping
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs language
 
How to build the perfect pattern library
How to build the perfect pattern libraryHow to build the perfect pattern library
How to build the perfect pattern library
 
Design Operations mural - 8 mar 2017
Design Operations   mural - 8 mar 2017Design Operations   mural - 8 mar 2017
Design Operations mural - 8 mar 2017
 
(PROJEKTURA) lean and agile for corporation @Cotrugli MBA
(PROJEKTURA) lean and agile for corporation @Cotrugli MBA(PROJEKTURA) lean and agile for corporation @Cotrugli MBA
(PROJEKTURA) lean and agile for corporation @Cotrugli MBA
 
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
 
Analytics-Enabled Experiences: The New Secret Weapon
Analytics-Enabled Experiences: The New Secret WeaponAnalytics-Enabled Experiences: The New Secret Weapon
Analytics-Enabled Experiences: The New Secret Weapon
 
Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)
 
Adventures in enterprise architecture
Adventures in enterprise architectureAdventures in enterprise architecture
Adventures in enterprise architecture
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Designing for efficiency.pdf
Designing for efficiency.pdfDesigning for efficiency.pdf
Designing for efficiency.pdf
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
A Career in SharePoint
A Career in SharePointA Career in SharePoint
A Career in SharePoint
 
Fast prototypes and customer development for start ups
Fast prototypes and customer development for start upsFast prototypes and customer development for start ups
Fast prototypes and customer development for start ups
 
Scaling agile without the scaling framework
Scaling agile without the scaling frameworkScaling agile without the scaling framework
Scaling agile without the scaling framework
 
Lean Analytics: How to get more out of your data science team
Lean Analytics: How to get more out of your data science teamLean Analytics: How to get more out of your data science team
Lean Analytics: How to get more out of your data science team
 
Validating Ideas Through Prototyping
Validating Ideas Through PrototypingValidating Ideas Through Prototyping
Validating Ideas Through Prototyping
 
Become Efficient or Die: The Story of BackType
Become Efficient or Die: The Story of BackTypeBecome Efficient or Die: The Story of BackType
Become Efficient or Die: The Story of BackType
 
How to Add Intelligence to Your Product Design
How to Add Intelligence to Your Product DesignHow to Add Intelligence to Your Product Design
How to Add Intelligence to Your Product Design
 

More from Steven Herod

9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application ArchitectureSteven 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
 
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
 
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 (9)

9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture9 Principles for Salesforce Application Architecture
9 Principles for Salesforce Application Architecture
 
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
 
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
 
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

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

"How do I Architect?" - Quick Introduction to Architecture for Salesforce Admins

  • 1. How do I architect? Thinking about your Salesforce org from an Architectural perspective
  • 2. About Me I work for Cloud Sherpas as a Technical Director (APJ). @sherod on Twitter http://limitexception.com
  • 3. Topics • What is good architecture? • The building blocks • Understanding your business • Your IT Architecture • A suitable Data Model • Dealing with developers • User Stories • Mockups • ‘Anti-patterns’ • Architectural fundamentalism • Enterprise mentality! • ‘You aren’t going to need it’ • ‘Don’t repeat yourself’
  • 4. “Software architecture are those decisions which are hard to change” - Martin Fowler
  • 5. A Good Architecture • Should tell a story where all the pieces fit together. • Some pieces may be easily swappable with no effect. • Some pieces may change the shape of the puzzle
  • 6. What is „Architecture‟ • Architecture is not one size fits all, there are consistent broad practices but there is no 'right’ solution just solutions which are more or less appropriate depending on: • Your organisation’s capabilities • Your organisation’s drivers and motivations • Good Architecture is not everything! • Only solving the Right Problems with Good Architecture and Quality Execution = Great outcome
  • 7. Forces at work • Creating an Architecture will often involve making trade offs between different elements • Understanding the key constraints/drivers will inform your decision making. • E.g. • “We only expect 50 of these to occur in the first year” • Perhaps no automation? • “This product is experimental, we want test the market” • Fast delivery, will probably be discarded? • “We’re going to have 80% growth in this in the next 3 months • Time to Automate!
  • 8. Assessing a solutions • You will likely come up with multiple solutions • For each solution: • Is it a complete solution? • Does it fulfil the requirement? • Is it achievable given our internal constraints? (Time, money, skills) • Is it achievable given any technology constraints? • Does it add to our capability or restrict us in the future? • Does it reduce or increase our risks?
  • 9. Impact Analysis • You have to weigh the ‘cost’ of a particular solution on benefit gained • For instance: Salesforce limits are like money in the bank. • Is it appropriate to ‘spend’ 100 custom fields on an object for an oddball requirement? • Would 50 lines of Apex stop you from consuming all the workflow rules on an object? • Does one solution offer a greater benefit for a lesser ‘cost’. • Costs are likely to be weighted, that is, using all of an unextendable limit is a greater cost than one that can be extended.
  • 10. Governance! • Central review and oversight to weave the growth of the org into a coherent story • Decides what the system will and won’t be responsible and the compromises that are made to achieve a business goal • This concept has various names: • An ‘Architect’ or ‘A Product Owner’ or a ‘Champion’ or a ‘Governance Board’ or a ‘Business Owner’ • And various mechanisms • Change Requests, Cases, ‘Sprints’, etc, etc.
  • 11. Your IT Architecture • Understanding the role of Salesforce inside your organisation • Understanding the role and responsibility of other systems • How they interact • System’s of Record / Sources of Truth
  • 12. Conceptual View Shows how the functional responsibilities are split across different systems and which systems are linked with each other. This is your ’30,000 foot view’
  • 13. Logical View Shows the specific IT systems and the data flows between each system. This is your ‘2000 foot view’. (The Street Level view would include which servers things run on and so forth)
  • 15. The role of the Data Model • Good outcomes and bad outcomes start with the Data Model • Starts as abstract concept and becomes more specific • Conceptual > Logical > Physical • Your Physical Data Model in Salesforce directly influences what is possible with Declarative Features vs what requires Custom Development, you must strike a balance between pragmatism and idealism
  • 16. Layers of data model • What are the key entities make up the solution and how do they related to one another?Conceptual • What is the cardinality of the relationships (e.g. 1 to many)Logical • Object names, Field names, exact data types (date/numeric), Sizes (255 Chars)Physical
  • 19. Data model concepts • Modifying your data model later can have a significant impact on your solution. • With Salesforce the more flexible your data model the more code you need to write. • Many to Many relationships = Custom UI to be used efficiently. • What concepts is your data model capable of representing? • Zero to Many • Account Hierarchy • One to Many • Account + Contacts • Many to Many • Campaigns
  • 20. Custom vs Standard Objects? • Start with • Understanding the Salesforce Standard Objects and fields and their ‘Special Features’ • If it walks like a duck and talks like a duck, its probably a Duck. • If it’s called a Duck but it walks like a chicken and talks like a chicken, its probably a Chicken. • ‘We need to keep quotes, but we won’t be using Opportunities, or Products or be sending Quote’s out of Salesforce’ • It’s probably not the Quote object • ‘We need to track Jobs, with email interactions and pass it back and forth between people ’ • I think you mean ‘Case’.
  • 22. Dealing with Developers • Developers are people too. • Helping them understand why you need something goes a long way to improving outcomes. • Your business, your motivations, your needs, your concerns • Listening helps • Developers may find logical flaws in your approach or flag risks • Computers don’t handle concepts like ‘sometimes’ and ‘maybe’ which people are fond of. • Judging a developers progress • “Show me” • Walkthroughs, demos, iterative release. (Agile)
  • 23. Good Practices • Naming conventions will help you organise your org • What you name something can live with you forever • Remember to add Descriptions everywhere it is possible in order to to self document your org
  • 24. The User Story • Are a good way of expressing a requirement in a way that provides context and justification: • Usually in a standard form: • ‘As a <Job Role> I want to <some business process> so that I can <achieve some outcome>’ • E.g. • “As a Manager I want to be able to approve or deny an expense claim so that I can enforce the companies standards for acceptable expenses”
  • 25. Mockups/Storyboard • Illustrate a flow • Allow people to visualise the end to end process • My Favorite tool: • Balsamic Mockups
  • 27. “Cargo cult programming” • Cargo cult programming can also refer to the results of applying a design pattern or coding style blindly without understanding the reasons behind that design principle. Examples are adding unnecessary comments to self-explanatory code, adding deletion code for objects that garbage collection would have collected automatically with no problem, and creating factory objects to build simple objects. It often happens when programmers are inexperienced with the programming language, or simply overzealous. • Wikipedia
  • 28. Architectural Fundamentalism • “A idealist is one who, on learning a rose smells better than a cabbage, concludes it will make a better soup” • E.g. • “We don’t use Flow” • “All <problem > must be solved with <xx>, no exceptions” • When you decree your standard tool is a hammer, you better hope you only need to hit nails. • Taking the long way around to solve a problem is not better.
  • 29. Complexity = Enterprise = „Grown up” • The more moving parts you have, the more things that can break. • Adding complexity increases fragility • KISS principle: Keep It Simple Stupid
  • 30. “YAGNI: You aren‟t going to need it” • Do Think/Plan ahead • ‘Roadmap’ • ‘Strategy’ • ‘Mission statement’ • ‘Architectural principles’ • Don’t build it until you need it. • An actual need > than an imagined need. • Although you need to do a risk assessment on ignoring a need
  • 31. “Stay DRY (Don‟t repeat yourself)” • Single sources of truth • At the Macro Level • Duplicate Systems (Salesforce AND Zoho) • At the Org level • Duplicate managed packages (Docusign AND Echosign) • Duplicate fields • Duplicate objects • Duplicate code. • A good architecture avoids duplication at all levels.