Customer Discovery - Implementation Lifecycle Flashcards
Implementation Lifecycle Phases
Analyze, Build, Deliver, Operate
Rapid Application Development
Application development model focused on Speed, User Strategy, and Prototyping
Application Lifecycle Management
3 development models:
change set
org development
package development
Analyze phase
gather requirements
org impact analysis
process mapping
formulate user stories
build phase
configuration
development
org documentation
testing
building release
testing release
deliver phase
securing backup
deployment
data imports
actual release
operate phase
monitor
feedback
support
restoring data
compliance
Application Lifecycle Management Steps
- Plan Release
- Develop
- Test
- Build Release
- Test Release
- Release
release management categories
patch bugs and simple changes
- reports, dashboards, list views, email templates
minor changes with limited impact
- changes in automation, change management and thorough testing not required
major changes with significant impact
- changes with one or more dependencies. Requires thorough testing and organized change management
Rapid Application Development info
developers work directly with focus groups
method is opposite of linear waterfall method
no-code and low code solutions to reduce development time
Change Sets
Manage app using declarative toold
ORG Development
Salesforce CLI is used to extract metadata from development env. and integrate with version control system
Package Development
Different customizations managed as separate packages. Source of truth in metadata.
Release type - Patch bug fixes and simple changes
reports, dashboards, list views, email templates
release type - minor changes with limited impact
new trigger impacting a single business process. Requires a little testing but no training
release type - major changes with significant impact
changes with one or more dependencies
testing, training
change set development
change and update metadata
what gets released is only metadata that has changed
change set is the set of metadata to be changed
must track changes that are not available in the metadata AI. Will have to manually change them
change sets can ADD but can’t delete fields
using change sets, can accidentally overwrite someone else’s change set.
org development model
use the salesforce CLI (command line interface) to extract metadata from development environment to integrate with a version control system
using a VCS, customization conflicts can be tracked
can make CLI script to automate tasks
package development model
manage different customizations as different packages, can be on own release schedule, not as one big release to changes in the org
each package includes all of the metadata - changed AND unchanged relevant components
SOURCE OF TRUTH IN THE METADATA
separate release schedules for each package
change set development source of truth
metadata already in the environment and last build of change set. On its own, a change set doesn’t present the complete picture because it contains only what’s changed.
Scratch orgs
Package development - empty orgs (no metadata or data) that are easy to create and dispose of as needed
You can configure scratch orgs to be different Salesforce editions with different features and preferences. What’s more, you can re-use and share the scratch org definition file with other team members, because it’s part of the project integrated into the VCS
how to use scratch orgs for development?
first push the source from your project in the VCS to sync the scratch org with the same metadata.
what is package dependency?
A metadata component can be in only one package at a time.
If more than one package needs the same component, you can devise a modular package strategy for that component.
A package containing one or more metadata components shared by multiple packages is a package dependency.
When using the package development model, which metadata changes do you need to track manually?
changes to components not yet supported by source tracking
key benefit of scratch org
you can share its definition file with others
what is safe to change in a production org?
customizations that don’t affect data (dashboards, reports, email templates)
Can you write apex code in a production org?
No, only development
what is application lifecycle management?
defines steps of managing app development process.
Also defines steps for application updating process (bug fixes, new features)
what is salesforce CLI
used in org development process
Command line interface - useful to:
extract metadata from a development environment to integrate with a version control system (VCS)
script routine tasks and boost the productivity
when to move from change sets development to package development model?
When releases become so complex that it makes sense to manage the org as multiple containers
what is a package version, and what does it allow you to do?
A package version is a fixed snapshot of the package contents and related metadata.
The package version lets you manage what’s different each time you release or deploy a specific set of changes added to a package.
If you’re introducing metadata changes to an already deployed package, you upgrade from the current package version to the newer package version.