[SalesForce] How to refresh developer free edition from production org

My company has one production environment and just one sandbox. Please see the below screenshot:

enter image description here

Currently we are doing all the development in the only sandbox available and we requested for another developer sandbox and we were told that it would cost 12000$ a year.

So we are thinking of going for free developer edition and configure that to replicate our prod org.

Could somebody suggest if this is a good idea and what approach should I follow to configure my free developer edition to mirror the production org.

How do I get the different apps(like Docusign) installed in my prod to the developer free edition? Can I create a outbound change set from my prod to the free developer edition and send all the apps, customizations we have in prod environment?

For the data, I think i can export from prod and then import into developer edition. Is there better alternative for this?

Best Answer

A Developer Edition isn't linked to your production environment. This means that you have to really work to get things to and from production. That's not to say it's impossible, just a lot more effort than shelling out the money for a sandbox.

Instead of change sets, you'll almost certainly need to use a migration tool. The tool of choice would probably be Ant, but this requires some scripting (basic XML). It's not hard, but it's a bit time-consuming to set up. Once configured, though, it's as simple as running a shell script to move stuff around. Overall, it's not that bad.

Of course, the next step up from this would be to ask Jenkins to do it for you. Install Jenkins, set up your shell scripts and projects, and watch as Jenkins moves your changes back and forth between environments with minimal effort (assuming the scripts are complicated enough!).

The other method that you can use are called "packages," but these are highly problematic. For one, they require complete validation, meaning they'll include fields, objects, and so on that are already in production and just fail miserably. This technique might be okay for brand new functionality, but definitely not for patching.

Unless you're willing to make your package a "managed package," which allows upgrading but has severe limitations on what you're allowed to delete once uploaded. It's not for the faint of heart, and I'd strongly recommend you avoid it. It's necessarily complex and restrictive because it's for partners that want to sell apps to third parties. You don't need to use the package that way, but it's kind of shooting yourself in the foot if you don't prepare thoroughly beforehand.