On the 27th of April this year, the Ebury Salesforce team attended DreamOlé; the biggest Salesforce event in Spain, with collaborators and speakers from around the world gathering to share their knowledge, skills and experience with the audience.
The important presentations from our perspective were…
From Zero to CI in 30 minutes by Christian Szandor Knapp
Christian talked about the benefits of Continuous Integration and how it can streamline our deployment flow and free up the team to work more on delivering functionality to the business. As everyone who works with Salesforce is aware, changesets are horrible and time-consuming to use but here we are in 2018 and a majority of us are still using them.
Salesforce DX was the first major step from Salesforce to close the deployment gap, taking the source code and metadata outside of a Salesforce org. We also got (quick to spin up) scratch orgs, a command-line interface and Heroku Flow’s integration with GitHub plus the ability to plug into 3rd party build and test automation tools. It was a good start.
Christian focussed on CircleCI in conjunction with Salesforce DX. He talked through the ease of setup, minimal variables needed and the power of parallelisation when deploying. This was then demonstrated in a live demo, and indeed the setup process does appear to be a strong point of the product. Here at Ebury we have spent some time looking at Copado, probably a more rounded solution at this time, we liked the product but in the end we decided not to proceed. However, CircleCI is something we will watch and see how it evolves.
….read more about CircleCI 2.0 here and Ebury’s experience on the Salesforce DX pilot here. Watch the DreamOlé session here and follow Christian Szandor Knapp (ch_sz_knapp) on Twitter here.
A quest to stop Salesforce mutants, a testing tale! by Sara Sali
The goal of mutation testing is the measurement and improvement of test quality. How? By performing small changes (on the mutants, which have undesired behaviours) in our code and if our tests fail with those changes, that means the test suite is doing a good job. But if our tests do not detect the added “bugs”, then adjustments are required. It could be that the mutation introduced is never actually executed (your code is dead) or that your test coverage is incomplete.
Sara has built a beta app that enables mutation testing in Salesforce, this is a first for the platform. The scores that Sara’s app produces once the tests are run enables you to focus in on the areas that need attention, plus if you are handing over to another developer or team then they can use these scores to give them confidence in the testing.
mutation score = killed mutants / all mutants
There can be issues with APEX tests, in that less conscientious developers can be focussed purely on playing the game rather than aiming for quality, and Sara has addressed this in her design. I think we would like to use something like this at Ebury so hopefully Sara and her company will decide to go the open source route. Either way, this was a great session from someone who really understands the subject very deeply.
You can watch Sara’s presentation here.
Platform Events and the Spanish Omelette by Jero Guerrero and Pedro M. Molina
A talk on Salesforce Platform Events, the enterprise messaging service that has now replaced the (push model) Streaming API. These Platform Events are mostly used to connect Salesforce with external systems through a pub/sub model and enable a highly distributed set of business applications to interact based on changes in the state of their customers, products, or anything at all that is meaningful to their organisation.
An Event driven approach is not new, but the challenge for Salesforce was to implement it in their metadata-driven, multi-tenant model. The usual approach would be to have a persistent queue for each subscriber, but with a huge amount of tenants each potentially having multiple subscribers this could be a stateful nightmare for Salesforce to handle.
What could we do with it? Well, imagine we were listening to our online platform and we have a customer who is logging in and getting quotes but not trading. When we hit a defined threshold of quotes without trades, we could throw an event and update their status to something like “churn risk” in Salesforce and create a callback for their account manager to follow up with them.
And the Spanish Omelette reference? Well, that referred to a demo showing an integration with Twitter and Salesforce showing how a poll conducted with hashtags could be pulled into Salesforce and used there. Watch the Platform Events session here.
We at Ebury would like to thank all the presenters and organisers for making this event so educational and we are all looking forward to the next DreamOlé event. You can find all the sessions, not just the ones I have mentioned, on the DreamOlé site here.