A talk for the Admin Theatre at Sydney World Tour March 2017. 

This page is available at bit.ly/ClicksCode

When embarking on the journey of transforming your business by using Salesforce you will need to customise Salesforce to work for you. There aren't that many businesses out there that are all about selling Widgets to B2B customers using a model sales process, and it's not like Salesforce is just about CRM and sales anyway - it's to run your whole business (almost).

With customisation, there are two broad choices, and a multitude of choices within those two areas - Clicks or Code. Clicks are using the declarative tools including Workflow, Process Builder and Flow. Code is diving into Triggers, Apex Classes and custom Lightning Components. As with anything worth doing, there are choices and trade-offs between the two, and people will argue black and blue that you should never touch Flows or Process Builder - but then they are probably developers. On top of this, before you delve into spending a heap of money on code always think of the code that others have already built and put on the Appexchange. Do not reinvent the wheel. 

The worst thing any organisation starting on Salesforce can do is to either dive into only Clicks or only Code. (Well clicks only may be a great idea for a very simple business, but only code is never a good option). Organisations that have a few C# or Java developers and send them along to a Salesforce Developer training course for 5 days and expect them to transform their new Salesforce purchase into a workable solution (yes, I have seen this, and no, it doesn't work). 

There is a definite need for a balance between Clicks and Code - but where is the line? As with most complex problems, the answer is - it depends. 

Declarative Options

When you have a very good understanding of a business problem to solve, it can be a great idea to build out that solution using declarative tools so you can refine the scope to give to the developer. You will most likely find that there are complexities that you had not thought through. After doing this process, you may keep the declarative customisations or use this as the basis of a scope for coding the solution to solidify it in the org. 

Building solutions in declarative tools can help you build up your knowledge and vocabulary to work with developers in a much more collaborative way. It's not us vs them, it's us all working together to develop a solution for the business need. 

If you have a good developer they should know enough about declarative tools to push back on you and say, I don't need to code that, you can do that in Process Builder. Or you together might come up with a process plus some invocable apex to do the job. But both of you need to understand that there are apps or patterns or blog posts out there that can maybe do what you want to do without reinventing the wheel. Eg take a look at the Declarative Lookup Rollup Summaries tool or Process Builder Blocks - a sample of invocable processes that can be called by Process Builder. 

Process Builder Issues

Ways to Avoid Issues

Code

If you are going to do code you have to commit to it, commit to maintaining it; 3 times per year, as new features and ways of coding are released. (Well, it is similar for declarative options too. New features will come out that will mean there are better ways to do things). Code written 5 years ago is probably not written to coding standards we have today, but it probably still works.

The Rules

I've broken all these rules, so now it's time for me to write them down so I don't break them again.

When to use declarative development options:

When to use a combination of clicks and code:

Some additional notes:

The Line

So where to draw the line between Clicks and Code. Well that is up to you, and depends on your business and what sort of budget you have to implement the system that is going to transform your business. There is no definitive right way, Start with Clicks, but know that you may want to move to Code when Salesforce becomes more of a mission critical part of your business. I would say never start with Code because if you are just starting with Salesforce you will never know enough about how you and your business will use Salesforce to get the benefit out of spending that money up front. 

Remember, this advice is aimed squarely at small to medium businesses or NFP that does not have a team of dedicated, experienced Salesforce developers on staff.