Why Salesforce DX is Not Enough
How Flosum improves upon Salesforce DX to boost your DevOps efficiency in 2021 multifold?
Although Salesforce provides a sufficient cloud platform, they are dedicated to improving the developer experience which is what lead to the creation of Salesforce DX. The Salesforce platform does not have a built-in version control system which is why Salesforce DX was introduced.
Why Salesforce DX?
With Salesforce DX’s accessible and useful tools, development teams can easily work with command line interfaces (CLIs) or integrated development environments (IDEs) to create and manage Salesforce apps. It helps enhance productivity levels with better control and improved collaboration. With the version control feature, developers can manage the auditing and testing process more efficiently. By blending automatic functions and manual actions, Salesforce DX improves developer productivity through increased flexibility with additional tool offerings to create simple workflows in a short span of time with minimal risk.
Why Salesforce DX is not Enough?
But the Salesforce DX tools do not use a point-and-click interface, which can be a challenge for some. These tools are available within a CLI or IDE, which is a skill set that some teams do not have. Indeed, Salesforce DX is an initiative to promote the best practices for application development and aims to improve developer productivity by offering the same tools that other technology providers supply to their developers.
But despite its best intentions, Salesforce DX doesn’t quite support that kind of development primarily because it seeks to apply things that work on other platforms onto Salesforce without addressing the core differences that actually exist between the Salesforce platform and others.
Why Salesforce DX Presents A Challenge?
They introduced Salesforce DX to modernize the way Salesforce teams do software development and offered a paradigm shift for Salesforce developers to consider source control as a source of truth rather than the Salesforce org itself. While the intention is truly laudable, and the idea initially looked promising given the source driven development within the lightweight virtual environment of Scratch Orgs, it is alone not sufficient in quite a lot of ways.
- Scratch Orgs: Limited Functionality
Firstly, the scratch orgs are too limited in their functionality and don’t complement well with traditional sandboxes and orgs. Moreover, they require a new directory format which makes Salesforce DX’s scratch org incompatible with sandboxes, thus making a smooth transition a challenge for enterprises that have years of legacy code and metadata. Further, the scratch org requires a lot of manual steps during its creation which is way too much trouble than creating its traditional counterpart sandboxes. It is simply too much to ask from Salesforce developers and admins as it requires them to abandon their ways of working and adopt a confusing command line-based flow.
Equally cumbersome is the amount of manual effort that scratch org demands against the convenience it offers. Since the increased limits on your production org do not reflect on your scratch org, developers have to manually change the metadata saved in the version control before letting them proceed to scratch orgs.
- Time Consuming
Similarly, the package installation has to be done manually prior to pushing the metadata in the scratch org and since only incremental changes in the profile can be pulled or checked, it makes a comparison of incremental changes with overall profile changes a time-consuming process.
- High Maintenance Costs
Even if a Salesforce team persists and does get Salesforce DX to work, the problem is that the maintenance costs are too high as against the benefits that you gain. It can take 3 to 7 months of investment of time and resources, which steals away the focus on actually delivering value to the customer. Additionally, once the process is in place, it will require a full-time DevOps resource to support and maintain such a system. The cost of training your team to use the processes and tools that are both difficult to use as well as not the best fit can be a major revenue leakage for your organization.
And you certainly don’t want to spend a significant amount of time, effort and money yet end up with poor workflow and an inefficient Salesforce DevOps process. In fact, working with Salesforce DX gives a sense of déjà vu of sorts just as when working with GIT and Jenkins, which are equally difficult to use.
- Release Management Continues to be a Challenge
Although Salesforce DX helps addresses common challenges faced by developers, allowing them to manage the source of truth and lifecycle for the org, it doesn’t quite succeed in taking the pain away of having to track the different items a developer has modified during the development journey. It also has much ground to cover in integrating all efficiency improvement tools in release management such as version control, CI/CD pipelines, and advanced IDEs.
So even as Salesforce teams have adopted Salesforce DX, presently most are at a standstill, trying to figure out whether to continue using sandboxes or to migrate to using SFDX completely although there have not been any major improvements on this front.
How Flosum helps release higher-quality code faster?
As an all in one DevOps solution for Salesforce with full native release management and version control system, Flosum solves the fundamental problem by not just tightly integrating with Salesforce DX, the tools, and features but going above and beyond as a complete end to end DevOps solution, including built-in merge tools, version control, continuous deployments, static code analysis, user story management & regression testing tools.
Even as it is fully integrated with GIT, it offers its own native version control to smoothly handle the merging of declarative, programmatic, and complex components. It offers you the best of Salesforce by being 100% native Salesforce app as well as extending and leveraging Salesforce’s integration capabilities, including integration with Jira, Azure DevOps, Selenium, and many other tools that clients require.