# App Development Lifecycle

The app development lifecycle includes planning and gathering requirements, creating the app, testing the app, making iterative changes to fix issues, and performing user-acceptance testing as a final test. The final step for an app developed in-house is the app’s release to production. The final step for an app developed by a Salesforce partner is app distribution to other Data 360 customers who purchase the app.

![App development lifecycle](https://a.sfdcstatic.com/developer-website/sfdocs/data-cloud/media/data-cloud-dev/AppDevLifecycle.png)

If you’re a Salesforce partner, the development lifecycle also includes distributing, marketing, selling, and supporting your app.

![App development lifecycle for Salesforce partners](https://a.sfdcstatic.com/developer-website/sfdocs/data-cloud/media/data-cloud-dev/AppDevLifecycle-Partner.png)

For more information about the Salesforce partner program, check out the [Build Apps as an AppExchange Partner](https://trailhead.salesforce.com/content/learn/trails/isv_developer_beginner) trail. This trail is intended for development on the Salesforce platform and isn’t customized for Data 360, but it contains some useful information about the program.

## Buying vs Building an App

We encourage customers to purchase apps from Salesforce partners rather than building them themselves. Installing and using apps from AppExchange ensures that the app is maintained regularly and meets quality and security standards. In addition, AppExchange apps save customers time and resources.

Third-party apps that are available on AppExchange are for data activation and data enrichment. To find AppExchange apps AppExchange for Data 360, see [Data 360 product collection](https://appexchange.salesforce.com/mktcollections/cloud-collections/customerdataplatform) on AppExchange.

## App Development Lifecycle Model for Salesforce Partners

If you’re a Salesforce partner, you’re familiar with the package development workflow, and you know that the workflows and tools for developing a first-generation managed package and second-generation managed package are distinct.

To learn about building apps on AppExchange, check out these resources.

- *[First-Generation Managed Packaging Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.pkg1\_dev.meta/pkg1\_dev/sharing_apps.htm)*
- *[Second-Generation Managed Packaging Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.pkg2\_dev.meta/pkg2\_dev/sfdx_dev_dev2gp.htm)*
- *[ISVforce Guide](https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/packaging_intro.htm)*
- *Salesforce Help:* [*Build and Share Data 360 Functionality*](https://help.salesforce.com/s/articleView?id=data.c360\_a_build_and_share_functionality.htm\&type=5)
- *Trailmix*: [Building Data Cloud Activation Platform Apps for ISVs](https://trailhead.salesforce.com/users/isv-platform-experts/trailmixes/building-activation-platform-apps-for-isvs)

## App Development Lifecycle Model for Customer Developers

Customer developers who develop an app in-house for their own org can use a separate test org for creating and testing their apps. You can use a sandbox org with Data 360 (beta) for testing, or you can use a test org. The Data 360 test org is also a production org, and service usage results in billing charges the same way as on the production org. See [Cost and Usage](/docs/data/data-cloud-dev/guide/dc-cost-usage.md). To request a Data 360 test org, contact your Account team.

The app development lifecycle model described in this section uses an org dedicated for development and testing and the Data 360 production org. In this model, you develop and test the app on one Data 360 org and release it to production. You migrate the app and configuration settings to the production org using unmanaged packaged, data kits, or Metadata API.

![App development lifecycle for customer developers](https://a.sfdcstatic.com/developer-website/sfdocs/data-cloud/media/data-cloud-dev/DataCloud_AppDevelopmentFlowChart.png)

**See Also**

- [Packages and Data Kits](/docs/data/data-cloud-dev/guide/packages-data-kits.md)
- [Metadata API](/docs/data/data-cloud-dev/guide/custom-app-dev.md#metadata-api)
- [*Salesforce Help*: Data Cloud in a Sandbox (Beta)](https://help.salesforce.com/s/articleView?id=data.c360\_a_data_cloud_sandbox.htm\&type=5)
