Despite all its good attributes, Salesforce has never been able to satisfy developers because of its less user-friendly nature. Developers have to spend long hours when working with Salesforce and there is much room for improving the productivity. The biggest challenge that developers face is in setting up the appropriate environment for development with Salesforce. Setting up sandboxes consumes too much time even if it is partial copy sandboxes, not to talk about full copy sandboxes. The worst part is that you cannot set up a sandbox environment by using some program, which is so essential for Continuous Integration set up. Even if you can get through it, there is no way that you can load data on the environment that you create.
All these shortcomings of Salesforce have inspired the development of Salesforce DX, the new version of Salesforce that would look after the interest of developers in a much better way. The new tool promises developers of more ease in using the platform that could help them utilize their creative abilities better and make the process of app and software development much faster. Team collaboration would be possible, change management would be more sophisticated, and there will be support available for open source tools.
Emulating the Docker experience
Docker is a tool in software development that allows quick spin up of small virtual containers instead of cumbersome and slow full virtual machines that perfectly serves the CI. Developers find Docker very useful, and the new version of Salesforce captures this aspect by using Scratch Orgs that is capable of performing similarly. Scratch Orgs are one of the most eye-catching features of the new Salesforce platform that would meet the expectations of developers and provide better user experience.
Scratch Orgs – What is it?
Developers find much comfort with the CI experience derived from Docker when they build with Rails, Node or Django. They would expect a similar experience from Salesforce, but since it is not compatible for Docker, it was not possible to achieve it. The shortcoming of Salesforce is well addressed by the new version that uses Scratch Orgs to perform same functions as Docker. You can spin up containers almost instantly and discard it without a second thought because creation is so easy. The longevity of a Scratch Org could vary between one day and a fortnight.
You can use the command line interface (CLI) to create Scratch Orgs, and this helps its integration with a CI pipeline by using Bamboo or Jenkins. The most important aspect is that you can spin it off very quickly and consistently. Uploading data on Scratch orgs is also easier by creating scripts to populate data automatically for every new environment that you create. This is another step in enabling Continuous Integration.
What we know so far is just the tip of the iceberg, as Salesforce has to give answers to many more questions. However, from what we can understand, there are more good things in store.