Pipeline
What's all this now?
- Out-of-the-box, a Salesforce packaging org provides all the tools that you need to develop and distribute a managed package.
- It is entirely possible to do everything you need to do in the packaging org. It's just a question whether you want to.
- The purpose of the DreamOps Experience is to supplement the packaging process so that Force.com works equally well for larger teams with larger codebases.
- Many people start by developing directly in the packaging org, and then add version control, Trialforce, and other features slowly, as the package grows and matures.
- The role of this guide is to help teams accelerate the growth process by sharing practices that others have found effective.
The pipeline is presented in two forms, "Minimal" and "Optimal".
- To remain effective, most enterprise teams should work to implement at least the Minimal form – or its equivalent.
- Once the Minimal form is in place, you may wish to increase value by implementing the Optimal form over time.
- Depending on your situation, you may need only a subset of the pipeline items.
UNDER CONSTRUCTION – We are what we repeatedly do – The Force.com platform has all the components we need to build an efficient deployment pipeline and support continuous delivery of enterprise-grade managed packages. The goal of continuous delivery is to increase customer satisfaction by being able to distribute an updated release at any time. The DreamOps Experience extends the base components with other capabilities that all devops professionals should want in their toolbelt.
A typical devops pipeline
Each stage in a pipeline is a unit of work. A stage's work must be fully complete before the result flows to the next stage. Given sufficient resources, stages can operate in parallel. Ideally, the stages and resources are balanced so that work moves through the pipeline at a steady, consistent rate.
DreamOps Delivery Cycle
To complete the Application Lifecycle Loop, the Monitor and Optimize and Plan and Measure stages (not shown) create new product backlog items as input to the Develop and Test and Deploy and Release stages.
This page provides a top-level overview of the DreamOps Experience. See Roles for more about the steps taken by individual team members.
Develop and Test
Create Change - Daily
One ideal development day per task.
Task - Minimal / Optimal | Checklist | Setup | ||
---|---|---|---|---|
1 | A Developer can be a Coder, Admin, or any other team member. Minimal
Optimal
| (In Progress) | ||
2 | Minimal Build (via Signup Request and Proxy Signup)
Optimal
| ![]() | ||
3 | Minimal Coders or Admins make point-and-click or code-based changes.
Developer adds any new components to the unmanaged version of the package, using the Salesforce UI. Optimal
| |||
4 | Minimal
Developer moves task to Code Review column, and signs up for another task, by working the board right to left. Optimal
|
Verify Change - Daily
One ideal development day or less per task
Task | Checklist | Setup | ||
---|---|---|---|---|
1 | Minimal Peer reviewer approves pull request and submits task for embedded testing.
Optimal
| Develop Task Checklist | ||
2 | Minimal Embedded Tester uses the task org to explore the completed work through the user interface.
Optimal
| Develop Task Checklist | ||
3 | Minimal When testing completes, and pull request is fully approved, Developer merges pull request.
| |||
4 | Minimal Build deploys updated develop to source org. Optimal Build also updates a
Build updates
| |||
5 | Minimal
Optimal
|
Release and Deploy and Release
These tasks provide continuous delivery of a package to staging sandboxes and then to production orgs in an efficient, rigorous manner.
Create and Verify Version - Per sprint task
One ideal development hour per sprint/version.
Steps | Checklist | Setup | ||
---|---|---|---|---|
1 | Minimal
Optimal
| |||
2 | Minimal
Optimal
| |||
3 | Minimal LMA updates version reference, which presents on the Org Details object in the business org. Optimal Build installs new package versions to a series of internal orgs for verification.
If deployment or tests fail for one internal org, the remaining orgs are not updated. | |||
4 | Optimal
IDs from GA TSO are captured but held. |
Validate Version Stage - Per sprint
One sprint or less per milestone version.
Steps | Checklist | Setup | ||
---|---|---|---|---|
1 | Minimal Writers provision trials to compete help topics and tutorials, via Request Form.
Testers provision trials for exploratory and user acceptance, via Request Form. Optimal
| /wiki/spaces/GUIDE/pages/3440831 /wiki/spaces/GUIDE/pages/3440878 | ||
2 | Optimal Developer automates or streamlines mandatory metadata upgrade steps. As needed, Writers and Testers flip configuration toggles that enable net-new features through custom settings, permission sets, and metadata changes. If warranted by the change set, Testers may also provision sample-data developer sandboxes for selected customer orgs. | |||
3 | Minimal Gathering feedback from Coders, Writers, and Testers, Owner certifies version for release to customers, or deems it unsuitable for customer use. When version is certified, Developer registers the Trialforce template for use with the Visualforce Request form. Optimal (TBD) When version is certified, Developer releases the Trialforce template, via ChatOps or directly from the build server.
|
Deploy Milestone Version - Per sprint
Steps | Checklist | Setup | ||
---|---|---|---|---|
1 | Minimal Developer announces staging and production releases for the preview channel.
Optimal Developer uses push major upgrades to distribute milestone, with automated smoked tests. |
customer staging and schedules production release.
Rollout Seasonal Release - Per season
Steps | Checklist | Setup | ||
---|---|---|---|---|
1 | Minimal
Optimal Developer manages Seasonal rollouts via a Salesforce app (TBD). |
Deploy Maintenance Version - As needed
Steps | Checklist | Setup | ||
---|---|---|---|---|
1 | Minimal
Optimal
| Maintenance Version Checklist |
Launch Implementation - As needed
Steps | Checklist | Setup | ||
---|---|---|---|---|
1 | Minimal
Optimal
| Implementation Checklist |