# Best Practices For Using Environments
WHO CAN USE THIS FEATURE?
This guide is applicable to accounts with the Environments feature enabled.
In this guide, we'll give you some tips on the following topics when working with Environments:
# Asset Organization
We recommend organizing assets that you want to release together - such as recipes and connections - together into projects.
As it's only possible to deploy a single project at a time, this approach reduces the likelihood of missing dependencies.
Check out the Recipe Functions (Dependency) Management section for guidance on managing reusable recipe dependencies.
# Connection Management
When working in development and test environments, we strongly recommend using a sandbox version of your applications to create connections. Using a sandbox ensures that live data isn't altered by accident.
Workato keeps recipe logic intact between environments even after deployment. When you deploy a connection to an environment for the first time or when the connection changes, you'll be prompted to re-connect the connection in the environment.
This allows you to use test data for development and testing, ensuring production data is touched after recipes have been vetted.
# Collaborator Access
One of the key benefits of environments is that it securely enables collaboration while ensuring mission-critical recipes don't change without notice.
To get this benefit, we recommend a tiered approach to collaborator access:
- DEV access for all collaborators
- TEST access for some collaborators
- PROD access for a few collaborators
By limiting access, you can allow your team to build and collaborate without risking accidental changes to production.
Refer to the Managing Environment access guide for more info about granting environment access.
# Recipe Function (Dependency) Management
While we recommend organizing assets as a unit into top-level projects, you can still develop recipes that use re-use recipes with some best practices.
If using Recipe functions, we recommend organizing the recipes into their own project. This approach to organization allows you to easily manage the lifecycle of these recipes independent of the recipes that depend on them.
To deploy these assets, you can:
Create a project to contain all Recipe functions.
Build and develop Recipe functions within this project.
Deploy the Recipe functions project to the target environment.
Deploy the dependent projects to the same target environment. Once the dependent projects are deployed, errors from missing dependencies will be automatically resolved.