Dreamforce 2017: Demystifying the developer forest
It’s the end of Day 3 of Dreamforce 2017, and I feel like I barely covered half of what I set out to accomplish with this event! Of course, it didn’t help that I fell ill on Day 2 and had to stay in bed the whole day. But seriously, this event is huge, and it seems to get even bigger every year.
This year, the event spanned over 16 locations, including the entire Moscone Center, which in itself contain over 700,000 square of exhibit space, up to 106 meeting rooms, and nearly 123,000 square feet of prefunction lobbies. And this is not even including the ad-hoc locations for the multitude of evening events scattered throughout downtown San Francisco as well as spin-off events hosted by sponsors and partners.
There are more than 3200 sessions spanning from topics for the technical support team, sales team, partners, kids coding sessions, talks on current issues such as equality and women in tech, and even hour-long zen mindfulness sessions for those who wish to escape the stress of Dreamforce!
Dreamforce from developer’s PoV
I covered mostly sessions for developers. There are many exciting features for developers in place, the key takeaway for me being the Salesforce Developer Experience, or Salesforce DX.
Currently, the tools for developers include development with the Force.com IDE (or other Open Source tools such as Maven/Sublime, etc), debugging with the Salesforce Developer Console, and deployment with changesets or with the Metadata API via ant scripts. Salesforce DX expands that with a command-line interface (CLI) that allows developers to use any IDE or text editor, scratch orgs that can be created and deleted quickly and as many times as needed, and an updated Eclipse plugin for DX accelerated app development.
This is a huge improvement to the developer experience, especially when it comes to testing and deployment. The introduction of scratch orgs will expedite testing as developers can use these throwaway orgs to create and test code changes or maybe even features, rather than having to worry about “ruining a stable build”.
Also, Salesforce DX contains features for better logging of changes, so developers do not have to jot down every change made to every element in Notepad. The Stub API will help with more efficient unit testing, and the Metadata API with Salesforce CLI will hopefully make tedious checking of hundreds of changeset checkboxes a thing of the past!
Another topic that I covered was Heroku development. New features for Heroku include the Heroku CI for running tests, and Heroku Shield for apps that requires regulatory and compliance complexities. This is mainly targeted at the medical and healthcare professionals where compliance is a huge part of their application systems and data sets.
There’s also an update to Heroku Connect to enable bulk processing which speeds up processing up to 5x in performance. This will allow developers to offset much of their bulk processing to Heroku to avoid the dreaded “Apex CPU limits exceeded” errors.
Other interesting stuff
On top of that, other cool new or updated developer tools include:
- Apex Stub API – This is Salesforce’s version of a mocking framework, which allows creation of “stub” versions of apex methods for unit testing. However, it excludes so many types of Apex elements that I wonder if it would be useful at all. It excludes static methods, future methods, private methods, getters and setters, triggers, inner classes, system types, Batchable classes, and it cannot take in or return iterators.
- Platform Events – This is a new type of object (such as custom objects or custom settings) which are event messages used by Apex or any API. The API names of Platform Event objects end in __e. They can only be published. They cannot be queried with SOQL, rolled back, updated or deleted, and they have no page layouts.
- Salesforce Optimizer – This tool will run an analysis on a Salesforce org, and email a PDF report with an evaluation, including recommendations for improvements. It does not evaluate all features. Features evaluated includes storage limits, custom fields, objects, apex code, page layouts, reports and dashboards, validation/sharing/workflow rules, users and profiles, Chatter, Salesforce1, and Sales Cloud adoption.
- Admin App – This is a mobile app for Salesforce admin users. This should help admin users better do their work without the need for a computer.
Dreamforce keeps getting better
This is my third Dreamforce attendance, and my last attendance was back in 2011. Overall, I think there is a huge improvement from the last time I attended. Firstly, there is much less sales pitching in the breakout sessions hosted by third parties. In the past, the breakout sessions that were not hosted directly by Salesforce employees were not really worth attending unless you wanted to sit through 30 minutes of a canned demo of a product that may or may not exist, and listening to a sales pitch of how great some product is. This year, all of the sessions I attended provided live demos and concrete steps to reproduce the tech that was being presented. Secondly, there is also a noticeable difference in diversity of the presenters, as there were equally as many men, women, and minorities doing the presentations.
Lastly, Dreamforce has completely done away with the Hackathon event (I think, since 2014?). If you are not familiar with the Dreamforce Hackathon, it is an event within Dreamforce where developers would learn a new tech skill and write an app on the spot. The best three apps would then win prizes such as laptops or even a million dollars. However, the event was often hijacked by developers with pre-written apps who uses the time to promote their product instead. This defeats the nature of the learning experience and discouraged amateurs from participating in the Hackathon.
In place of the Hackathon is now the “MiniHacks”, where everyone is given an equal opportunity to complete 10 technical challenges of varying difficulty, and those willing to learn a new skill has an equal opportunity to earn awesome swag!
Salesforce continues to innovate with new solutions to ease working on their platform, and Dreamforce 17 successfully exemplifies this. I am thrilled to be a part of this experience, and I look forward to seeing more new ideas from Salesforce.