It is quite a complex process to implement various software development methodologies since we all know that software development process is rather difficult. Cloud solutions have become so widespread nowadays and captured our minds. That is why development of a cloud-based system in a cloud ecosystem is becoming another challenge for specialists. Specifically, the lifecycle of Salesforce App development is represented as a software which is developed, tested and deployed within a cloud-based environment.
Force.com is well known as the environment for Salesforce development. Since it is built with help of Eclipse it might be easily integrated with plugin use. Such tools as Apex, Visualforce and metadata components is a strong equipment that allows us to develop Force.com Apps. Local file system stores the data, meanwhile, developers used to transfer these files to the source control repository where they make changes and load them into the system once again. Developers usually use Git or SVN for source control.
A number of people of various specialists are involved in a software development process who handle each separate aspect of development. Here is the most common list of professionals who are involved in this cycle:
- Product Manager is taking responsibility for business requirements confirmation.
- Release Manager has to coordinate the date of release.
- Those who do the coding and produce deliverables are the salesforce developer or administrator.
- The quality assurance specialist would test the product on various bugs presence.
- Salesforce consultant offers a solution for how to build business processes and optimize them.
Further steps are represented and clearly, demonstrate the whole Salesforce App Development Lifecycle.
Set up Source Control Repository. From a developer’s point of view, it is very important and advantageous as well to have a separate Git repository with a default master branch for each project. This is very much applicable to the production metadata storing in the master’s branch.
As we mentioned before, a number of specialists are involved in the Salesforce development process. Release Manager is responsible for creating completely different branches according to different features, moreover, it is supposed to be handled by particular developers. Further, this specialist also provides assistance in creating a package.xml manifest with populating the master branch with metadata and using Force.com Migration to transfer the data.
Development stage begins with coding in sandboxes. Salesforce has a concept of sandboxes, which is completely separated from the Salesforce production. This presumes that the performed operations in your sandbox would not influence your Salesforce production enterprise and another way around.
In order to retrieve the metadata from sandbox to the IDE developers use Force.com IDE and connect their sandbox. They do necessary coding and commit the code to the Git repository but before that, they perform the initial level of testing the unit.
The committed fresh code is transferred to their sandboxes for further development and finally, they finish it in the repository. But before committing the code developers have to make sure nobody else is involved in coding at the same time in order to avoid any possible conflicts.
After development process testing is the next stage. QA engineers exactly like developers usually create their own sandboxes and transfer the code there from the repository. Once in a while, QA specialist is assigned to test only one distinct feature apart from the whole code then Partial Copy Sandboxes are used and selected features are deployed in this case.
Depending on the workflow pattern QA specialist may also share their sandbox with other colleagues for more thorough testing of vital features. However, in case of revealing any crucial mistakes, developers get back to the very beginning.
The final level of testing is destined for users’ acceptance. Release managers and project managers create partial sandboxes and carry out additional testing. Afterward, they prepare the product for the presentation to the customers. Once again if there any changes proposed, it takes everybody to the first stage of the development process.
When we finally get to the product release, it is all about performance testing. This stage is represented on the intermediate sandbox which has very common features of the app, unlike partial sandboxes. Rigorous and regression testing is happening and in case all the stages of testing are successful, the product is deployed in the production.
Hopefully, this article was informative and useful. We would be happy to answer all questions so please write your comments below or send us an email to firstname.lastname@example.org