Dreamforce ‘16 is over, and what a week it was! Before the show, Alex shared his thoughts about Salesforce’s “most dreaded technology” moniker in a guest post on Salesforce Ben titled “Is Salesforce Really the Worst Development Platform?”.
The article referenced the now infamous 2015 Stack Overflow Survey that singled out Salesforce as the “most dreaded” software development platform, leading Visual Basic and Wordpress, amongst others. Though we feel that this isn’t an entirely fair assessment, we think that there are some key issues that need addressing – particularly the areas of continuous delivery and source control – to allow Salesforce Developers to work faster and be confident about making and tracking changes to their code.
A day after Salesforce Ben posted our treatise, Dreamforce kicked off and we got a sneak peak at Salesforce’s new vision for developers: Salesforce DX.
What is Salesforce DX?
DX stands for “Developer Experience” and Salesforce DX is the company’s effort to improve the process that Salesforce Developers and Admins go through to deliver great apps.
Salesforce DX attempts to address several key areas of concern on the Salesforce platform:
After years of focusing on GUI-driven development and declarative changes through the point-and-click web interface, Salesforce finally embraces a simple fact: Most developers like to code! Coding bootcamps are ubiquitous, computer science education starts earlier than ever, and enterprises invest heavily to allow business users to customize their apps with custom analytics and extended functionality. The results you can achieve with GUI-driven customizations become severely limited once you read a certain threshold. At that point, it becomes faster and more intuitive to just switch code directly. There’s a learning curve, but with good tooling, the barriers to entry are lower than ever.
However, one will make mistakes, and that’s why source control and change histories are important. With DX, Salesforce is encouraging developers to use tools like GitHub to manage their source code. It is refreshing to hear Salesforce discuss this openly as the lack of source control has been a major concern for developers, admins and architects for years.
At Blue Canvas, we wholeheartedly agree: source control through Git is key for any Salesforce Developer and Salesforce Admin.
Continuous Delivery and Integration
For many organizations, Continuous Delivery has become the standard way to build and deliver high quality software. Because integration and testing is automatic and happens so frequently, the chance of discovering errors late in the release process is reduced dramatically. The shortened periods between introducing a bug and noticing it make is radically simpler to find and fix a problem. Not only can developers now focus on building stuff, it also eliminates the time wasted on manual testing or waiting for deployments to finish.
Salesforce DX aims to make continuous integration and delivery a real possibility for Salesforce developers. They are doing this by adding the ability to spin up Scratch Orgs which are optimized development Orgs that let you test your code more quickly as you develop. Scratch Orgs can be launched via API or CLI and initialized using a new JSON based configuration format. They start out empty, and only contain content you have under source control.
At Blue Canvas, we saw the excitement first hand: Today, deployments take too long. It easily takes hours or longer to get your code into a UAT environment and then out to production. This prevents developers from running frequent and automated tests and deployments. Scratch Orgs will make it faster to try out deployments and encourage developers to use source control. From what we understand, the pilot is still a few months out, but we are looking forward to see more of it.
New Command Line Interface (CLI)
DX comes with a new command line interface that developers can use instead of the old-school Ant tools. The CLI allows you to programmatically spin up environments, retrieve and deploy source code, execute Apex unit tests, and more. Interestingly, the new tool leverages the highly popular Heroku Toolbelt, an installable utility written in Node.js.
At Blue Canvas, it’s all about API-first and CLI-first. Ultimately, it’s better to build a GUI around a good API than it is the other way around. Just like source-driven development, offering a powerful CLI is a serious sign of respect to developers and a welcome announcement for the Salesforce developer community. This is big news.
Salesforce DX moves in the direction of a more open attitude towards tooling. DX is geared towards tools like Selenium for testing, Git for Source Control, and offers IDE vendors a consistent set of tools to integrate in different editors. There is rumor that much of what we see will be made available as open source. This is very nice to see, because it encourages a strong and lively ecosystem in the long term.
Our Thoughts on Salesforce DX
We are thrilled to see Salesforce DX announced. It shows that Salesforce cares about their developer experience and has listened more closely than ever to their core developer community. It’s refreshing to see the company’s leadership provide a roadmap for what they see as the next generation of the platform!
Every Salesforce employee that we talked to at Dreamforce about DX was awesome. You could see how excited they were about these new changes and we left with the distinct impression that they genuinely want to hear and incorporate more developer feedback into their roadmap going forward.
We also love the message of building API-driven, command-line-heavy tools. Developers have become very comfortable with APIs and the command over the years and we think that DX is a great move towards empowering developers to do the work that they love quickly and painlessly.
We love the concept behind Scratch Orgs and think it will make development a lot nicer.
For years it has been clear that Salesforce needs better tooling for developers and we believe that Salesforce DX is a step in the right direction. We are excited to see DX unfold and take shape over the next few years and eagerly await the pilot scheduled to come out next summer!
Special thanks to @andyinthecloud for providing feedback on this post.