Salesforce Development Models
Salesforce Developer Experience (DX) is a way to manage and develop apps on the Lightning Platform across their entire lifecycle. It enables source-driven development, team collaboration with governance, and new levels of agility for custom app development on Salesforce.
Salesforce DX supports Org Development and Package Development models to authorize, create, and deploy code in your project. Both models work with a source control repository to store changes and project files. The models differ in the way that you deploy, test, and release code. Controlling change is a significant deal in software development, and you can choose the development model that best suits your situation if you understand your options.
- Org Development Model: Allows you to work with orgs that don’t have source tracking, such as non-source tracked sandboxes, Developer Edition (DE) orgs, Trailhead Playgrounds, or even a production org to retrieve and deploy code directly.
- Package Development Model: Allows you to create self-contained applications or libraries that are deployed to your org as a single package. These packages are typically developed against source-tracked orgs, such as scratch orgs. This development model uses source tracking, and continuous integration and deployment.
Choosing which model works for you depends on a number of factors:
- The complexity of the change.
- The size of the team involved in development and their skill level.
- The metadata you work on.
The choice of Development model determines your path from development to deployment. Each development model has its pros, cons, and limitations. In choosing which option to use for a specific deployment, weigh your objectives, your team’s skills, and limitations in Salesforce. You can use different approaches for different projects, or even blend approaches on a single project.