Enrico Murru Salesforce Developer Hacks

Are you looking for ways to become a more efficient Salesforce Developer? In this article, Salesforce MVP Enrico Murru takes us through seven tools, behaviors, and professional habits that will streamline your development efforts.

I’m lazy. Most developers are! This is not necessarily a bad thing, and Bill Gates summarizes this concept easily by saying “I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it“.

Don’t misunderstand this statement—laziness is not staying on your couch the whole day and all of Game of Thrones in one sitting. It’s a different kind of being lazy.

The lazy developer is the one that, in order to avoid doing anything more than once, tries to automate it or knows exactly when that line of code is stored (they may actually not be able to write it themselves and thus have to Google for it).

That’s exactly what I saw in my own 12 years of work experience: the best developer is not the one who knows exactly which Apex function has which parameters (if you can, well… congratulations!), but the one who quickly knows how to solve a problem and where to look to maximize productivity (and happiness for the project manager or the customer).

Here is a list of tools, behaviors, and professional habits that may speed up your dev work and increase your productivity.

Search online

More than ten years ago, in one of the first interviews I did, the lead developer asked me “if you face a problem, what do you do at first if you don’t know how to solve it?”.

What I answered back? “Stack Overflow and Google”.

That’s it! It seems obvious right now (there is a huge “literature” of Stack Overflow memes out there) but it wasn’t at that time (at least on my local dev community).

I still see people (usually juniors) stuck while coding and answering a “no” when I ask them “have you checked online?”.

The online community is your best resource. Your problems have been someone’s problems in the past—they may have asked the community, and someone may have provided a solution.

Here are some pointers:

Personal Knowledge

What’s the purpose of searching online if you can’t remember where you found something or how that piece of code is shaped?

That’s where the personal knowledge comes.

It’s basically a library of content you can quickly search when needed: you put any reference (blog, site, official doc, twitter post), a brief description and a snippet of code (if needed) and voilà you have a powerful knowledge base.

How to start to build it?

Some devs use one or more text files (with a custom formatting), some use Markdown syntax (if you use this format you’ll be able to create html files with a good rendering if you share to someone).

If you want to be more organized you can build up your own knowledge using a Salesforce Developer Org with Salesforce Knowledge activated.

You can archive it on your local machine if you want to use text files, but I suggest using a cloud storage solution (Google Drive, Dropbox or OneDrive are all for free and highly reliable).

The next step is to use an online service to store your knowledge (again, we have a great choice online, I fell in love with Nuclino but also Quip is amazing!) with collaborative features.


From Salesforce Developer to Architect - the complete journey Luke Freeland

 

Looking to take the next step in your career?

Read this guide by 12x certified Salesforce Architect Luke Freeland on how to progress from Salesforce Developer to Architect.

Workbench

Now that you’re a knowledge master, let’s talk about tools to speed up your dev productivity.

One of the tools that any Salesforce developer should at least be aware of is the Workbench.

Salesforce Workbench is an opensource PHP tool that is accessible as SaaS and on-premise (you can even quickly create a new Heroku build on the fly).

What you can do with it? Well a huge amount of cool things.

  • SObject inspection and metadata listing, aka what’s in your Org and how it is shaped
  • Data inspection: SOQL queries, SOSL queries, Async SQOL query and Streaming APIs
  • Data management: CRUD on objects (the Smart lookup is a really valuable feature to set a lookup without using Salesforce IDs)
  • Metadata deploy and retrieve
  • REST API explorer and Apex Execute anonymous

To play with the Workbench have a look at its wiki.

Browser extensions

Choose your browser companions for Chrome and Firefox: having quick tools right in your browser window can boost your productivity.

What you can do with them?

  • Credentials storage
  • Quick describe of your objects
  • Change sets tools
  • Developer tools right into your tabs
  • SOQL/SOSL queries
  • Records inspection

You can find multi-purpose extensions or single-featured ones, it is up to you how you combine your tools.

Salesforce CLI

As the official guide says, the Salesforce CLI is a powerful command line interface that simplifies development and build automation when working with your Salesforce org. Use it to:

  • Aggregate all the tools you need to develop with and perform commands against your Salesforce org
  • Synchronize source to and from Salesforce DX scratch orgs
  • Create and manage orgs
  • Import and export data
  • Create and execute tests
  • Create and install packages

The cool thing about the Salesforce CLI is that you can create plugins that enrich and extend the number of commands available.

There’s a cool Trailhead project where the Salesforce CLI is used along with Visual Studio Code to build a new app.

Create your own Apex scripts

Once tools are selected, it’s time for the developer to act as a developer.

Have you ever been asked to cleanse some records that have 3 levels of children objects? Did they tell you that you can run only a piece of a trigger because a user somehow used a layout misconfiguration to mess your data model? How can I make a cross object query that cannot be run in a report but needs to be run daily?

Anonymous Apex scripts can be a solution to some of your problems, but great power comes with great responsibilities: run your scripts when you’re absolutely sure you aren’t making it worse than the problem you’re trying to solve!

The first time I used anonymous Apex was in my early days as a developer, when I had to cleanse thousands of records because of a buggy batch job that should not run until a specific date/time (some of my colleagues still remember the terror in my eyes when I discovered that production was not a joke).

An example of this approach is the Anonymous Batch I posted some time ago: this class is capable of executing a dynamic Apex script on need inside a batch job, and this can save you time and for recurring custom scripts executions.

Build your own tools

The next level of a sleek developer is building personalized tools.

My favorite combination is NodeJS and Heroku, but you can choose whatever language and container you like and feel more comfortable.

The power of this is that you empower your skill set by experiencing new frameworks while digging into Salesforce APIs and, why not, delivering the next Salesforce killer app: a win-win!


About the author

Enrico Murru Nerd@Work

Enrico Murru is a 19x certified Salesforce MVP and editor at the blog Nerd @ Work. As well as sharing his knowledge with the Salesforce ecosystem, Enrico is the organizer of the Milan and Cagliari Salesforce Developer user groups.