Development Lifecycle and deployment architect

Ace your homework & exams now with Quizwiz!

A source control system provides several benefits which are

- Real-time collaboration increases efficiency and drives consensus. - The team can work on the same files at the same time without fear of overwriting changes or losing work. - Revision history shows who made which changes. - You can revert to earlier versions of any file. It's like having your very own time machine where you can go back and save the universe from destruction. - When you save work you provide a commit description, which provides historical context for the work.

What is a release artifact?

A zip file that contains only the objects and components that are changing in this release (for org management model)

The Salesforce DX Project

Contains your source and salesforce DX configuration files

Once a project is underway, what important step must a developer do before making changes?

Deploy any changes from the repository into their developer sandbox

Use scratch orgs in the development process to

Perform declarative development and other tasks directly in an org

Tooling API

Use Tooling API to build custom development tools or apps for Lightning Platform applications. Tooling API's SOQL capabilities for many metadata types allow you to retrieve smaller pieces of metadata. Smaller retrieves improve performance, which makes Tooling API a better fit for developing interactive applications.Tooling API provides SOAP and REST interfaces.

What is the role of sandboxes in the package developmental model?

You use sandboxes for user acceptance testing and as a staging environment It's where you test your package during continuous delivery testing

Application Lifecycle Management (ALM)

defines the process of managing an app's development, from design to final release. ALM also establishes a framework for making app bug fixes and feature enhancements over time.

What is governance

governance is a framework for how organizations operate and make decisions. From your neighborhood homeowner's association to developing complex software applications, governance is all about the people and processes necessary to manage the organization and achieve good outcomes.

Negative testing

helps you know whether your code will do what it will do when things go wrong. Have you ever had an end user send you an error message when they were trying to do their job? Negative testing will help with that. Shows whether or not you made an adequate plan for your code to follow when it fails.

Meaningful negative tests should answer two questions:

how does my code behave when key pieces of my app or a particular process are missing or malformed? Can my code tell the difference between a big problem and a little problem?

Agile

innovation-based and iterative. That is, the final outcome is not always known in advance, and the path to get there is a work in progress. It's always a new adventure!

Salesforce DX project

is a local directory structure of your metadata in source format. It lets you develop and test with Salesforce DX tooling. It contains configuration files for creating scratch orgs. It can contain data to be loaded into orgs for development or testing. It also contains tests that you rely on to validate your package.

definition of done

is a set of guidelines that dictates everything a team is required to do before they can call the work truly done. Creating a standard for this is critical to upholding one of our core Salesforce values: trust.

scratch org

is a source-driven and disposable deployment of Salesforce code and metadata, made for developers and automation (CI/CD). A scratch org is fully configurable, allowing developers to emulate different Salesforce editions with different features and preferences

Template 2: One branch per environment, one feature branch per feature.

uat is deployed from uat branch and production is deployed from master branch. uat branch is a superset of master branch. This means uat contains everything in production plus pending changes to be coming to production. Following the sequence, users first commit to a feature branch based off master. Users then submit the first pull request against uat branch and wait for changes to be accepted in UAT before submitting the second pull request against master branch.

You have two ways of managing your scratch orgs

using CLI commands or the Salesforce graphical interface.

Developer Pro Sandbox

A Developer Pro sandbox is intended for development and testing in an isolated environment and can host larger data sets than a Developer sandbox. A Developer Pro sandbox includes a copy of your production org's configuration (metadata). Use a Developer Pro sandbox to handle more development and quality assurance tasks and for integration testing or user training. 1 day interval storage limit: 1 GB

Developer Sandbox

A Developer sandbox is intended for development and testing in an isolated environment. A Developer Sandbox includes a copy of your production org's configuration (metadata). 1 day refresh interval storage limit: 200 MB

Full Sandbox

A Full sandbox is intended to be used as a testing environment. Only Full sandboxes support performance testing, load testing, and staging. Full sandboxes are a replica of your production org, including all data, such as object records and attachments, and metadata. The length of the refresh interval makes it difficult to use Full sandboxes for development. We recommend that you apply a sandbox template so that your sandbox contains only the records that you need for testing or other tasks. When you create a Full sandbox, you also have to decide how much field tracking history and Chatter activity to include. The default is to omit field tracking, but you can include up to 180 days of field tracking. If you track field history for many objects in your production org, specify fewer days to avoid generating an excessive amount of data. Chatter activity data can be extensive, which can add a significant amount of time to your Full sandbox copy. Limit the amount of field history that you copy, and copy your Chatter data only if you need it for your testing use cases. 29 day refresh data storage is the same as your production sandbox template is available

Partial Copy Sandbox

A Partial Copy sandbox is intended to be used as a testing environment. This environment includes a copy of your production org's configuration (metadata) and a sample of your production org's data as defined by a sandbox template. Use a Partial Copy sandbox for quality assurance tasks such as user acceptance testing, integration testing, and training. 5 days storage limit: 5 GB Sandbox template for data, required for data

Scratch Orgs Provide

A dedicated and disposable salesforce environment for a developer and their project

Centralized operating model

A single governance framework with a one set of processes and normally focused on a single solution, single business unit, or global processes. Generally the best option for smaller, single-org companies.

Ant Migration Tool

A toolkit that allows you to write an Apache Ant build script for migrating Lightning Platform components between a local file system and a Salesforce organization.

Universal Containers (UC) has a highly customized org. A Salesforce release is coming up soon, and UC has sandboxes that have already been upgraded to the next release. What two actions should UC take to ensure that their customizations are not affected by the new release? Choose two answers A. Execute all unit tests in the upgraded Sandbox to validate that code has not been affected. B. Review code in the upgraded Sandbox to ensure that no automatic updates were applied to the code. C. Testing is not necessary, because Salesforce tests all code and configuration before each upgrade. D. Review the updated features of the release, and perform functional testing to understand the impacts of updated features.

A. Execute all unit tests in the upgraded Sandbox to validate that code has not been affected. D. Review the updated features of the release, and perform functional testing to understand the impacts of updated features.

What consideration should an Architect take into account when asked for a recommendation of Agile vs. Waterfall? Choose one answer A. Rapidly changing business requirements. B. Project budget and timeframe. C. Number of stakeholders involved. D. Technical complexity of the project.

A. Rapidly changing business requirements.

Universal Containers (UC) has purchased a new application from a partner to enable advanced quoting. UC just hired a developer to help modify the application to meet their needs. Which two package types should the Architect recommend? Choose two answers A. Unmanaged package developed in a Partner Developer Edition org. B. Managed package developed in a Partner Developer Edition org. C. Unmanaged package developed in a Developer Edition org. D. Managed package developed in a Developer Edition org

A. Unmanaged package developed in a Partner Developer Edition org. C. Unmanaged package developed in a Developer Edition org.

Universal Containers is having problems with developers overwriting code and blaming each other for unit test failures. Because their Salesforce org produces financial reports, their legal counsel has also recommended that they begin auditing changes to the system for compliance reasons. What recommendation should a Technical Architect make to address both issues? Choose one answer A. Periodically export Salesforce system audit logs to an offline database. B. Implement a Source Control system and require developers to commit changes to source control. C. Require developers to work in separate sandboxes and periodically merge code into a single Software Integration sandbox. D. Implement a Requirements Traceability Matrix.

B. Implement a Source Control system and require developers to commit changes to source control.

Why should a business unit be responsible for the vision and strategy for a Salesforce project?

Business users and leaders are in the best position to articulate their needs and prioritize their requirements Technology teams are not subject matter experts on the various business processes that will be affected by the project

A Salesforce release is coming up soon, and Universal Containers (UC) has sandboxes that have already been upgraded to the next release. UC has been developing code in an upgraded Sandbox, and needs to deploy code to Production which is still on the previous release. What is required to deploy these changes to Production? Choose one answer A. No adjustments are necessary, because all metadata types will deploy normally to Production. B. It is not possible to deploy from an upgraded Sandbox to an older Production version. C. Versioned metadata needs to be downgraded to a previous API version before deployment. D. No adjustments are necessary, as long as the deployment is from a Full Sandbox.

C. Versioned metadata needs to be downgraded to a previous API version before deployment.

Hybrid operating model

Common governance framework with each business unit having its own autonomy. This approach is effective for larger companies that want to standardize their best practices and processes under a common framework, yet allow some amount of autonomy for their different divisions or geographies.

Salesforce Extensions for Visual Studio Code

Develop and deploy and retrieve Salesforce Extensions for VS Code is powered by Salesforce CLI and the Salesforce APIs. Together with Visual Studio Code, the Salesforce extension pack provides a robust development environment. Deploy to and retrieve from your sandboxes and other development orgs. Manage, push to, and pull from your scratch orgs. Write, debug, and refactor your org's code

Developer console

Develop and deploy apex The Developer Console is an integrated development environment with a collection of tools you can use to create, debug, and test applications in your Salesforce org.

Ant Migration Tool

Development projects where you need to populate a test environment with large amounts of setup changes Deployments where you need to change the contents of files between unrelated organizations Multi-stage release processes—a typical development process requires iterative building, testing, and staging before releasing to a production environment Repetitive deployment using the same parameters When migration from staging to production is done by highly technical resources

Given the project risk and customer requirements, explain how to assess the benefits and risks of the Change Set Developmental Model

Does the new Contact Type field conflict with customizations made by someone else? Does the Sales team know how to use the new field or do they need training? If the field is required, do any integrations or import processes need updating? Where does the field appear? On all page layouts? Which list views? Does it show up in any reports or dashboards? Should the field be on the Lead object as well? If so, does the Lead conversion process change? Is the field required for integrations with other systems? If so, you might need to change middleware, field mappings, endpoints, and so on.

Ant Migration Tool

Download the Ant Migration Tool if you want to perform a file-based deployment of metadata changes and Apex classes from a Developer Edition or sandbox org to a production org using Apache's Ant build tool.

Org Developmental Model

Externalizes changes in a source control repository to keep environments in sync

Decentralized operating model

Federated governance framework with independent governance frameworks and the possibility of different sets of processes for different business units. The decentralized model is used for organizations that have multiple Salesforce environments with highly autonomous business units or geographies.

PROS for Template 2: One branch per environment, one feature branch per feature.

Flexible. A feature can stay in UAT for as long as needed. Accepted features can move to master/production independently without being blocked. Deployment is fully automated. No human coordination is required. Deployment is predictable. Anything that is accepted and merged to master will get to production the next day. This consistency is a key driver in making your team completely in sync and enable business change to happen fast. Adding a new field? Get your change to master today and it will be in production tomorrow.

tooling api you can

For example, you can: Add features and functionality to your existing Lightning Platform tools. Build dynamic modules for Lightning Platform development into your enterprise integration tools. Build specialized development tools for a specific application or service.

Which is the best project vision statement?

Improve the customer experience by radically reducing average wait time to reach our customer service agents

Agile manifesto

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

Salesforce offers sandboxes and a set of deployment tools, so you can

Isolate customization and development work from your production environment until you're ready to deploy changes. Test changes against copies of your production data and users. Provide a training environment. Coordinate individual changes into one deployment to production.

What is one benefit of using a source control system with the org development model?

It allows developers to work on the same set of files at the same time

What is one way that a governance framework improves end user satisfaction?

It ensures that all stakeholders are represented in the implementation process so that the requirements are not missed

What is a benefit of implementing a governance framework?

It ensures that systems comply with necessary regulations and security requirements It gives technology teams the flexibility to focus on the right things at the right time

Which of the following apply to a good release management strategy?

It includes methods for identifying and handling conflicts between projects It's part of a larger governance effort at your company

Which of the following apply to an ideal structure for source control?

It makes it easy for teams to work together

template 3: one branch per environment, two feature branches per feature MORE

Let's evaluate the above templates against the following criteria: Process should enable business to move fast without bottleneck. Frequent (daily is best) release and small drops to production. As little human coordination as possible. Automate as much as possible. Process step should be done in a declarative fashion so that less technical users (admin, business analyst, product managers) can participate without waiting on dev-ops engineers.

CONS for Template 2: One branch per environment, one feature branch per feature.

Master branch and uat branch will eventually deviate. uat branch and uat environment will need to be refreshed from master and production occasionally (monthly or quarterly) Pull request PR1 is highly vulnerable to merge conflicts because we are merging from different baselines (feature_x_from_master branch merged on to uat branch). This is, however, isn't a problem with the second pull request PR2. It is a trade off in keeping master branch clean as the expense of convoluting uat branch.

Metadata API

Metadata is data that describes other data. Salesforce metadata describes the schema, process, presentation, authorization, and general configuration of your Salesforce org. metadata can also include PII(personal identifiable information), such as custom object names, report names, etc. Salesforce metadata also describes your org's general configuration. For example, you can configure Chatter to block emoticons in posts.

Permission-based testing

Permission-based testing can be the most complex testing pattern of all. In part, that's because permissions can be confusing, and in part it's because a good set of permissions tests uses both positive and negative test patterns.

Branching strategy Template 1: single master branch for all environments

Pro: Less branches to manage. Team spends less time on merge & conflicts. Production is well reflected of UAT since they are both deployed from the same branch. Cons: Inflexible. All features have to be accepted in UAT and moved to Production all at once. You cannot pick and choose features. This means production deployment can be blocked if there is a feature prolonged in UAT. Require significant human coordination effort since you have to continuously evaluate release candidate in UAT and block your development pipeline closer to a production release. Production release has to be done manually since there is no reliable automation trigger (because it is a business decision when to deploy)

After a developer makes a change in a sandbox org, what step is required to share it with others?

Retrieve the changes from their sandbox to the project in the source repository

Command Line Interface (CLI)

Salesforce CLI is a powerful command-line interface that you can use for every phase of the org development lifecycle. It improves productivity by providing a single interface for all your development, test, and automation use cases. You can: Authorize sandboxes (headless or web flow) Create and manage DX projects Import and export test data Retrieve and deploy metadata Run and automate tests

People in which of the following roles should earn a Salesforce Certification credential?

System administrator

Use Sandboxes for continuous delivery and user acceptance testing to:

Test the same process you'll use to deploy and release to the production org

People on the Business Unit side of things have to own the project vision and strategy.

The business teams are also responsible for things such as: Gathering end-user feedback Onboarding users Owning and managing the budget Designating a product owner

You can move metadata with one of two ways.

The first method is with Metadata API deploy() and retrieve() calls. Admins often use the deploy() and retrieve() calls to move the full metadata model. These calls are best fit for the final stages of development, such as deploying tested customizations to the production org. The second method is source push and pull commands that move only changes in metadata. These commands use source tracking, which makes them friendlier for developers and better for intermediary stages of development.

Given the project risk and customer requirements, explain how to assess the benefits and risks of the Package Developmental Model. 3 pros

The package development model streamlines the entire development lifecycle, with benefits like: Improving team development and collaboration. Modular development process with specification of dependencies among packages. Versioning to help with change management Facilitating automated testing and continuous integration. Making the release cycle more efficient and agile. Improved version control system (VCS) synchronization through change-tracking of Setup features More fine-grained visibility and clarity into the change management of your production org

Project Management Committee

This group manages the day-to-day details of all major projects. This team should meet once per week with representatives from all key stakeholders in attendance. Suggested agenda: Update on actions from the last meeting. Review of the project(s) overall health and KPIs. Project resources and team skill requirements. Review of project risk register. Discuss any other competent business.

Executive Steering Committee

This group owns the overall vision and strategy, sets the priorities and oversees the overall project budget. It also acts as the final escalation point for disagreements that the project teams are unable to resolve. Membership should include key executive leaders across the impacted business units, IT, and the project management team. The committee should meet at least quarterly or more often, depending on the release cadence. Here's a typical agenda for the steering committee. Update on actions from the last meeting. Review of the project(s) overall health and KPIs. Review and update the vision and strategy if required. Review of the overall project(s) budgets. Review of project risk register. Discuss any other competent business.

Technology Team responsibilities:

This is the group that actually builds and maintains the system. The Salesforce technology team is also responsible for providing accurate estimates of effort for the functionality the business needs. Here are a few other key aspects in a lean governance framework that the Salesforce technology team needs to own. Defining the release schedule System testing System support

Template 3: One branch per environment, two feature branches per feature.

This template is almost the same as template #2. The only difference is that we are using two feature branches per feature instead of one. While this looks complicated as first, it is actually more manageable in the long run because pull requests are least vulnerable to merge conflicts since we are merging feature branches against the same baselines (feature_x_from_master to master, feature_x_from_uat to uat).

Why does the org development model use 'force:mdapi:deploy' to deploy changes to staging and production?

To deploy all components in the artifact in a single transaction

Metadata api

Use Metadata API to retrieve, deploy, create, update or delete customization information, such as custom object definitions and page layouts, for your org. This API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself.

Metadata api

Use Metadata API to retrieve, deploy, create, update, or delete customizations for your organization. The most common use is to migrate changes from a sandbox or testing organization to your production environment. Metadata API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself. The easiest way to access the functionality in Metadata API is to use the Force.com IDE or Force.com Migration Tool. Both tools are built on top of Metadata API and use the standard Eclipse and Ant tools respectively to simplify working with Metadata API. Force.com IDE is built on the Eclipse platform, for programmers familiar with integrated development environments. Code, compile, test, and deploy from within the IDE. The Force.com Migration Tool is ideal if you use a script or the command line for moving metadata between a local directory and a Salesforce organization.

At Salesforce, we use a lightweight governance structure to develop, implement, and manage new technology—we call it lean governance. What does this lightweight and agile framework look like? It includes five key processes.

Vision and strategy Business backlog Software development lifecycle Data strategy, architecture, and management Communication strategy

What is a key responsibility of the executive steering committee?

Vision and strategy Project budget

How do we facilitate change tracking? for package developmental model

We track changes you make both locally AND in your scratch org We transform large source files into smaller files, which provide more project flexibility and reduce merge conflicts

In what scenario do you need to be careful when creating projects? for package development model

When projects share metadata components

Lightning Test Service provides: The utility $T object AND a way to execute javascript-based lightning component tests

When writing javascript unit tests for Lightning components, the utility $T object : creates and modifies instances of your lightning components

Given the project risk and customer requirements, explain how to assess the benefits and risks of the Org Developmental Model

With multiple developers and admins contributing to a release, the team agrees they need a new development model. Enter org development, a model that uses some different tools that provide 1) greater flexibility and scalability, 2) new ways to track and manage change, 3) a different method of deployment.

How does salesforce CLI improve your productivity?

You can create scripts for repetitive tasks, for build automation, or to run tests

Change sets

You can deploy workflows, rules, Apex classes and triggers, and other customization from a sandbox org to your production org. You can create an outbound change set in the Salesforce user interface and add the components that you want to upload and deploy to the target org.

How do scratch orgs support testing and continuous integration?

You can spin a new scratch org specifically for testing and CI

What use cases are ideal for shifting to a modular package-based approach?

You're deploying a distinct application You want multiple development teams to work independently and deploy changes on their own release cycles

The Metadata API provides access to (3 general aspects):

Your data model (including database schema) Business logic (including Apex code) User Interface (including Visualforce pages)

Continuous integration (CI) is about

automating consistent test runs against every set of changes merged to your application (2). This important process ensures application quality before any corrupt change can get into your source repository.


Related study sets

Quizzes from chapters 15, 16 & 17

View Set

ch.43 liver, pancreas, and biliary tract problems

View Set

Vet Tech Vocab - Dissect and Define

View Set

PrepU Chapter 35: Bowel Elimination

View Set