Top tools for effective Salesforce development

Salesforce offers basic development tools — Object Manager and Developer Console — built into every instance (or an “org” in Salesforce nomenclature). These are typically sufficient for maintaining a small CRM org with minor customizations like adding fields, validation rules or modifying layouts.

However, organizations that take full advantage of Salesforce with a lot of customizations and development (custom objects, developing APEX code, VisualForce pages, Lightning Components, integrations and others) require a more robust toolset.

Good tools are not only a convenience for developers — they can enable substantial savings on quicker development and shorter downtime/improved quality.

Over a few years of development at Nextian we’ve experimented with many development tools and would like to share which worked best for us.

Integrated development environment (IDE)

The choice of IDE is one of the most important ones, as this is where developers will spend most of their time. As of writing of this post, IntelliJ IDEA (Community Edition) with Illuminated Cloud plugin is our #1 choice. While the first one is free of charge, the other one is a subscription offering. Together they enable:

  • SOQL query completion with concurrent connections to multiple orgs
  • APEX with code completion (both anonymous and for writing classes) and syntax highlighting
  • Step through-debugging
  • Running tests from the IDE
  • File deployments from the IDE
  • Static code inspection
IntelliJ IDEA SOQL query auto-completion
IntelliJ IDEA SOQL query auto-completion

Maven Tools for Chrome is a free Google Chrome extension mimicking a simple IDE featuring an intelligent SOQL query editor, APEX code editor, object inspector, deployment tools, log browser and others. While not a replacement for a fully-blown IDE, it is a useful tool for troubleshooting, data migrations and small deployments.

Static code analysis

While the IDEA/Illuminated Cloud tandem offers good code analysis, it can be further enhanced by using PMD APEX (running from IDEA).

Static code analysis improves software quality and becomes especially important when building packages for AppExchange: PMD APEX can substantially reduce time spent passing scrutiny of the Force.com code scanner and Salesforce engineers.

PMD Apex with IntelliJ IDEA
PMD Apex with IntelliJ IDEA

Backup

Backup tools not only give recovery capability, but also help developers with:

  • Tracking metadata changes with diff comparisons and email alerts. This comes particularly handy if users apply changes on production without letting the development team know
  • Moving data (seeding) between orgs (e.g., copying production data to test sandboxes). This enables overcoming full sandbox limitations on refresh frequency, or getting rid of them altogether
  • Anonymizing data — useful when working with an outsourcing partner to limit access to live data, or to anonymize phone numbers or emails so real customer data is not used in automated process flows

An overview of Salesforce backup tools is provided here.

Development sandboxes

Just like in case of development in any other programming language, separate environments for development, production and testing are a must.

Salesforce offers additional separate orgs (“sandboxes”) of four types that can be purchased with a subscription: Developer, Developer Pro, Partial Sandbox and Full Sandbox (they can be managed via Setup → Environments → Sandboxes). The first two can be used for development, the latter two for testing.

A full sandbox is a 100% clone of production and can be especially useful for data migrations or testing on large sets of production data. It has some limitations though: it’s pretty expensive and has a limit on refresh frequency (30 days). A good backup tool can be used to refresh data more often.

Source code management (SCM)

Metadata is the “source code” for Salesforce. Since it is a collection of text files, it can be tracked in virtually any source code management system. Since we use Atlassian JIRA internally at Nextian we settled on Bitbucket with the Git front-end managed via SourceTree or IntelliJ IDEA. There is however plenty of choice: we’ve seen projects on GitHub and Microsoft VSTS as well.

The exchange of metadata files takes place between Salesforce and IntelliJ (a local filesystem). Therefore, the ultimate source of truth for metadata is Salesforce not the filesystem, but the SCM works off the later. This can lead to problems with many developers pushing changes in parallel.

For this reason, we recommend designating a single team member to push the code to the SCM.

Build & deployment automation

Access to Salesforce metadata is provided by the Metadata API.

Salesforce CLI (a.k.a. SFDXCLI) is a metadata API command line tool provided by Salesforce enabling:

  • Pulling sources (metadata) from orgs
  • Creating and managing new orgs
  • Pushing code to specified orgs
  • Executing tests
  • Creating and installing packages

Coupled with scripting and batch jobs, SDFDXCLI can be used to automate build, test, deploy cycle and run DevOps on Salesforce.

Web browser add-ons

Standard web development tools for JavaScript debugging & profiling come very handy for Lightning component development.

Also, a number of add-ons such as Better Formula Editor exist for improved syntax highlighting and auto-complete for Salesforce formulas.

Maven Tools for Chrome is an excellent, free Google Chrome extension for working with SOQL, APEX, objects and others from within the browser.

Test case management

Salesforce unit tests and coverage requirements help to improve quality, however in most cases they will have to be augmented by external, manual or automated test cases.

At Nextian we use QMetry for JIRA to track and execute manual test cases & plans (XRay is also a good package, however as of this writing it does not support JIRA next gen projects that we use).

It is a good practice to capture test cases along-with developing software functionality: ask developers to capture basic test case scenarios, so QA can provide the details and expand later on.
 

Lightning components debug mode

Debug mode is useful when developing custom components for the Salesforce Lightning Experience in JavaScript.

Salesforce Lightning components debug mode
Salesforce Lightning components debug mode

It disables caching and provides additional information to developers in the browser console.

To enable Lightning debug mode, go to:

Setup → Custom Code → Lightning Components → Debug Mode

Conclusions

A good development toolset is important as it can enable substantial savings on quicker development and lower cost of maintenance via improved code quality.

Nextian is a vendor of Quote-to-Cash (QTC) software for cloud and communications helping providers accelerate growth and increase customer lifetime value.

Contact us today to find out how we can help you!

Thank you for contacting Nextian. Your request was successfully submitted, we will get back to you within two working days.

BY INDUSTRY

Cloud Infrastructure Providers

Cloud Software Companies

Managed Service Providers

Communications Service Providers

BY ROLE

CEO / Owner

CRO / VP Sales

CFO / VP Finance

COO / VP Operations

CPO / VP Product

CIO / VP IT

Product Management

Plan, launch and manage your product offerings throughout their entire lifecycle.

CPQ & Sales

Quickly create accurate quotes for complex products, subscriptions and add-ons

Order Management

Ensure faster, consistent order delivery with tasks, workflows and automation

Service Management, Support & Monitoring

Retain and upsell customers with comprehensive account intelligence, support, monitoring, analytics

Customer Portal

Empower your customers with 24/7 self-service, support and on-line ordering

NEXTIAN PLATFORM

Platform Overview

Billing Integration

Network Monitoring Integration

Reporting & Analytics