The need for a DevOps process in Salesforce development
As discussed in the previous chapter, we can apply DevOps practices in Salesforce projects to achieve faster delivery of applications. The question arises, Why do we need DevOps?
Let's discuss some normal development practices in Salesforce projects. In Salesforce, everything is on the cloud, you just need a browser and internet connection to start developing your application. But as the development team grows, the complexities of building different features and deploying them in a production environment also become difficult. Although we can use different types of sandbox according to our need, managing the deployment process is still a time-consuming task.
Given that multiple developers are working on different features in different sandbox environments, we need to cherry-pick some features from those environments and deploy them to a user acceptance testing (UAT) environment. This process is error-prone as it involves human interaction at various phases. Also we don't have any system for version control to manage changes done by developers.
Let's assume that somehow we managed to work with multiple developers with multiple sandbox environments and without managing the source code (that is just a hypothetical case but consider it is possible). What about testing new features in your application, and more importantly ensuring that nothing breaks in the previous application? Achieving this with manual testing would require a large number of testers and still we can't ensure that we have tested each and every feature right from login to some complex feature we just introduced in our application.
Why make such a mess when we can achieve more a streamlined delivery with the help of DevOps? DevOps reduces the time of delivery and makes the process less prone to errors; tracking applications becomes easier with a different set of open-source tools. We can improve the Salesforce application development process by integrating it with a DevOps toolset such as Git to maintain our source code version. We can integrate Jenkins for the deployment of Salesforce applications. We will see how to do this in more detail in Chapter 6, Continuous Integration.
DevOps helps applications in other stacks to get more productive and follow a faster delivery process. We can achieve fast delivery in Salesforce projects with some modifications to the development and delivery processes. DevOps will impact everyone who is involved in Salesforce application development, testing, and deployment directly or indirectly, along with other end users.