Metazoa has released a great new FREE application on the AppExchange! Cascade can deploy metadata between any Salesforce Org, local project folder, or remote Git Repository. Cascade also supports collaborative Sprints and User Stories that streamline Org Management for teams of developers and administrators. Unlike other solutions, that can take months to configure and implement, Cascade works immediately with any Org, there is no package to install. Cascade is a desktop application that communicates directly from your personal computer to your Salesforce account, and because of this, Cascade is an inherently secure solution that never compromises your Salesforce credentials, data, or metadata. Let’s take a look at Cascade!
When you launch Cascade the first time you will need to select an Installation Org. This is where Cascade finds administrators and developers for your team. Any user with administrative credentials will be available as a team member. Cascade also uses this Org to store deployment history, user stories, and other information. The first time you login, some custom objects with the prefix “metazoa” will be added to the Org. These objects are easy to remove if you ever need to uninstall Cascade.
Next, Cascade presents options to select a metadata source and a metadata destination. The source and the destination can be any Salesforce Org, local project folder, or Git Repository. Simple click the buttons to select a Salesforce Org or Developer Project.
If you select a Salesforce Org, Cascade prompts you for the org credentials. You can authenticate with any kind of Salesforce Org. Cascade has full support for Scratch Orgs, OAuth, Custom Domains, Developer Orgs, and Sandboxes. The next screen prompts you to Take a Snapshot. This will download all Org metadata to your client computer. Cascade can retrieve all of the metadata from even the largest Salesforce Orgs! If necessary, Cascade will conduct multiple retrieve operations simultaneously and reassemble all of the metadata at the client. Don’t worry, all of this is handled automatically for you!
The other option is to retrieve source or destination metadata from a Developer Project. This option allows you to select either a local project folder or a remote repository. The folder or repository can be in either Metadata API, Eclipse, or Salesforce DX format. For example, if you have a Salesforce DX project on your computer, all you have to do is select that folder. If you have a Git Repository that you want to use, then enter the credentials to the repo and test the connection with the Clone Repository button. The next tab allows you to Take a Snapshot, and this will create a new metadata source or destination.
By the way, on the main screen there are some handy menu options under the source and destination buttons. These include:
- Open Salesforce Browser
- Open Local Project Folder
- Open SFDX Command Line
- Open Repository Browser
- Import Metadata Snapshot
- Export Metadata Snapshot
All of these options operate on the current source or destination. Cascade makes it super easy to work with your selected metadata! Once the source and destination are set up, you can start performing the main Cascade Activities listed in the center of the Welcome Screen. The first two options provide powerful capabilities for DevOps: deploying and comparing metadata.
The Deploy Metadata interface allows you to move any number of metadata assets from the source to the destination. All 200 metadata types are supported. The basic idea here is to build up a Create and Delete Job List of the assets that you want to move. The user interface is very rich, and lots of information is displayed. For example, you can see if each asset is the same or different on the current source and destination. The XML or textual differences are also displayed. The picture below shows the process of building a Create Job List.
When you have all of your selected assets ready to go, the last screen presents state of the art deployment tools for moving the assets from source to destination. You can manage your job lists, import and export package.xml files, test code quality, run code coverage, transform XML data, remove bad references, and fix problems with sparse profiles. Remember, the source and destination can be a Salesforce Org, local project folder, or Git Repository in any file format. Because of this, the metadata deployment interface is an incredibly flexible way to move any type of metadata to any destination!
Cascade also provides an amazing XML comparison report. This is useful any time you want to be sure what the metadata source or destination look like, or what the differences are. You can select any metadata type and see what assets are the same, somewhat different, very different, missing on the source, or missing on the destination. You can click the checkbox to the left of any metadata type and it will be included in the Display Report which is available on the last tab. The Display Report can be exported as HTML, CSV, PDF, or in Native Excel format for distribution to team members. You can also archive these reports for compliance.
Sprints and User Stories
Cascade provides three additional capabilities that streamline Org Management for administrators and developers. These options are visible on the main screen: Manage Sprints, Update User Story, and Deploy User Stories.
Project managers can use the Manage Sprints interface to create new Sprints and assign out User Stories to team members. Team members such as Salesforce administrators and developers can use the Update User Stories interface to add manual setup tasks and metadata assets to their stories. Lastly, release managers can choose the Deploy User Stories interface to select multiple stories for deployment, merge the stories, compare them against the destination, and then begin the deployment process. Let’s take a look at the Sprint and User Story management capabilities in Cascade!
Project managers can use the Manage Sprints interface to create new Sprints and assign out User Stories to team members. There are options to create, manage, duplicate, and delete Sprints and User Stories. Every story is associated with a Kanban Stage. These stages help organize the sprint from beginning to end. The available Kanban Stages are:
Every Sprint has options to broadcast email notifications to the owner of the User Story when things change. These notification help provide a collaborative backbone for the Sprint. The available notifications are:
- Sprints Created or Deleted
- User Story Created or Deleted
- Sprint and User Story Deployment
- User Story Kanban Stage Changes
- Pull Request for User Story
Sprints can be managed in multiple ways. On the main screen, you can work with the selected Sprint as a linear To-Do list and filter by the current Kanban Stage.
Sprints can also be managed with a Kanban Board. The board shows team members down the left-hand side and Kanban Stages across the top. User Stories are shown as cards on the board. The total number of items in any column is displayed to prevent bottlenecks. You can drag and drop any User Story to reassign the story owner or change the Kanban Stage.
Sprints can also be managed as interactive Gantt Charts. This is a good option for longer and more complex projects where some User Stories depend on the completion of others. Each User Story is displayed as a task bar on the chart. The Gantt Chart will display the projected start and finish dates of all of the User Stories, as well as the percent complete.
Lastly, the Manage Sprints interface will automatically calculate a Burndown Graph for the entire Sprint. This shows the actual progress of the Sprint compared to linear progress. If the red area appears to the upper right of the diagonal line, that is a sign that the project is behind schedule. If the red area appears to the lower left of the diagonal line, that is a sign that the project is ahead of schedule.
Update User Story
Individual team members such as administrators and developers can use the Update User Story interface to add manual setup tasks and metadata assets to their User Stories. Metadata assets can be selected and added to the story with a Create or Delete Job List. Manual setup tasks represent various activities that need to be completed before or after the actual deployment. Examples include manual operations with the Setup Menu, user acceptance testing, corporate notifications, and institutional security requirements.
The first screen shows each team member the Sprints and User Stories that they have been assigned to. They can select any story, and the next tab allows them to select manual tasks that need to be completed before deployment. They can create task templates for common manual tasks that are used over and over again. After that, the selected task can be customized if necessary. Each task has the ability to execute a command line argument, or launch a Salesforce browser window for the source or destination Org.
The next tab allows the team member to build a Create Job List for metadata assets that should be captured and included in the User Story. All of the interfaces show Overlap Awareness. If any other team member is using the same asset in their story, then these assets are shown in red. The tool tip will display the story name, story owner and email address so that the two team members can coordinate their development activities.
After this, the team member can select assets to add to the Delete Job List. After that, manual tasks that need to be completed after deployment can be added to the story. The final tab allows the team member to save their User Story. When this happens, all of the before tasks, created assets, deleted assets, and after tasks are saved to the User Story. This information is stored in one of the custom objects in the Cascade Installation org.
The team member can choose at this point to return to the first screen and click the Pull Request button. This moves their User Story into the Kanban Stage for Deployment and sends an email to the Sprint Owner that work on the story has been completed.
Deploy User Stories
Release managers can choose the Deploy User Stories interface to select multiple stories for deployment, merge any conflicts, compare against the destination, and then start the deployment process. First the release manager will need to select a Sprint. Then they can select any number of User Stories for deployment.
The next tab presents powerful tools to resolve any merge conflicts in the selected User Stories. All overlaps and conflicts are presented side by side and the release manager can choose to accept one of the assets or merge multiple XML documents as necessary. If there is uncertainty about the correct way to resolve a conflict, then the release manager can choose to send an email to the developers with the relevant metadata assets as an attachment. There is also a button to Accept Everything, and in this case, Cascade merges the stories in the most intelligent manner.
After all conflicts are merged, the selected User Stories form a new metadata source that can be deployed to any destination. The next tab allows the merged stories to be compared against the metadata destination. If everything looks correct, the deployment process can begin.
First, the merged before task checklist must be completed. These tasks can run command lines and launch Salesforce browsers as needed. When the tasks are completed, the actual merged metadata from the User Stories must be deployed to the destination. Lastly, the after deployment task checklist must be completed.
Each metadata deployment will be added to the Sprint’s deployment history. This information is available in the Manage Sprints interface. By the way, there is also a checkbox to Archive the Sprint. An archived Sprint and the related User Stories cannot be altered in any way, but archived Sprints can still be deployed.
That’s a quick overview of what Cascade can do! Let us know about your challenges and how we can help. Also, please take a look at our Snapshot for Org Management product available on the AppExchange. Snapshot provides powerful tools that help Salesforce Administrators manage the change and release process, visualize and reduce complexity, improve security and compliance, and lower the total cost of org ownership.