---
schema_version: "1"
id: c23f21af7136d97e51ad192604b3ea0f13af599dc951098ab4fb8c45f31059a2
title: Apex Development Process
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/apex_dev_process_chapter.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_process_chapter.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: f19fc19a625905e3e2f82a28d3bdfc85ed409b4c7a4739beeb6895bb5cdece53
description: In this chapter, you’ll learn about the Apex development lifecycle, and which organization and tools to use to develop Apex. You’ll also learn about testing and deploying Apex code.
---
# Apex Development Process

In this chapter, you’ll learn about the Apex development lifecycle, and which organization and tools to use to develop Apex. You’ll also learn about testing and deploying Apex code.

- **[What is the Apex Development Process?](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_development_process.htm)**  
    To develop Apex, get a Developer Edition account, write and test your code, then deploy your code.
- **[Choose a Salesforce Org for Apex Development](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_get_dev_account.htm)**  
    You can develop Apex in a sandbox, scratch org, or Developer Edition org, but not directly in a production org. With so many choices, here’s some help to determine which org type is right for you and how to create it.
- **[Choose a Development Environment for Writing Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_writing_apex.htm)**  
    There are several development environments for developing Apex code. Choose the environment that meets your needs.
- **[Learning Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_learning_apex.htm)**  
    After you have your developer account, there are many resources available to you for learning about Apex
- **[Writing Tests](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_writing_tests.htm)**  
    Testing is the key to successful long-term development and is a critical component of the development process. We strongly recommend that you use a test-driven development process, that is, test development that occurs at the same time as code development.
- **[Deploying Apex to a Sandbox Organization](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_deploying_to_sandbox.htm)**  
    Sandboxes create copies of your Salesforce org in separate environments. Use them for development, testing, and training without compromising the data and applications in your production org. Sandboxes are isolated from your production org, so operations that you perform in your sandboxes don’t affect your production org.
- **[Deploy Apex to a Salesforce Production Organization](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_deploying_to_production.htm)**  
    After you’ve finished all of your unit tests and verified that your Apex code is executing properly, the final step is deploying Apex to your Salesforce production organization.
- **[Adding Apex Code to a AppExchange App](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_intro_AppExchange.htm)**  
    You can include an Apex class or trigger in an app that you’re creating for AppExchange.