3

Clicks AND Code

 3 years ago
source link: https://medium.com/slalom-technology/clicks-and-code-c1e3390b9122
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Clicks AND Code

Image for post
Image for post

Clicks, not Code. If you have been involved in the Salesforce industry, you have probably heard this mantra. If you have not heard it before, what it means is to build applications using point and click development, rather than writing code. Salesforce, as a company, pushes it and you hear it from industry professionals as well for good reason. Salesforce provides a wealth of avenues to accomplish complex work without code. As a 14X Certified Salesforce professional who has been in the industry for several years, I can speak from experience that options exist for most scenarios to use point-and-click development. That said, there are situations in which custom code is useful and even preferred to point-and-click development. In those times, it is important to understand the underlying meaning of “Clicks, not Code”. If we do that, then we can take those lessons and apply them to our development, in order to bring the best of both worlds. The result is it becomes not “Clicks, not Code”, but “Clicks and Code”, in order to bring the best possible solutions to our work.

Before getting into “Clicks and Code”, it is worth understanding the benefits of a “Clicks, not Code” approach. Let’s look at a few of the key benefits of using Clicks instead of Code:

Key Benefits of using Clicks over Code:

1. Availability of Options without Code — Part of the reason for the “Clicks, not Code” mantra is the availability of options without code for Salesforce development. Within Salesforce, there are options like Workflow Rules, Process Builders, and Flows to handle situations where you want to accomplish common business requirements for automation and interfaces. Even without choosing between clicks or code, there are a ton of items that should be handled using point-and-click development. One common one is to customize the view of information using Record Types and Page Layouts. Record Types and Page Layouts can be a great way to customize those views for users when looking at different types of information on the same object, like Accounts.

2. Simplicity of Salesforce Customization — Some requirements are best handled without code. Creating different views of segmented Accounts using Record Types and Page Layouts is a clear example. While you could handle it via Code, it will take far less time to manage and implement those different views using Page Layouts and Record Types.

3. Development Time — At any point, there are tons of different needs for ways in which Salesforce could better serve a business, from several different stakeholders. The time allotted to accomplish something via code will almost always take more time than a similar task via point-and-click development. The time saved could be used to complete a separate, high priority item.

4. Long-Lasting Maintenance — This lesson is huge, especially for those working with clients in a consulting role. For any project, there will always be an end date. At that point, someone at the client will have to take over the maintenance of the system, debugging issues that come up and introducing enhancements as the needs of the business change. When those times arise, it is vital whoever is working on the system can understand the system and accomplish those tasks. If they cannot, even if the solution may have solved the original problem, it can become an even bigger issue than what previously existed.

After seeing the key benefits of using Clicks over Code, you might be wondering why would anyone use custom code? Let’s look at the below reasons for using Code:

Key Benefits of using Code over Clicks:

1. Bulk Situations — From a bulk perspective, if data may be consistently loaded in at mass quantities and complex processing on that data is needed to occur, especially in concert with other data in the system, it may be best to introduce custom code to help handle some of the processing.

2. Complex Logic Scenarios — There are some complex logic scenarios that are not able to be handled, or should be handled, without custom code at this time. Depending on the way users gain access to a Salesforce, there may need to be some custom code in place to ensure that the user has a seamless experience when accessing the system. A good example of this is Just-in-Time provisioning. This is how some clients manage provisioning access to Salesforce, and it involves provisioning a user’s access at the moment they attempt to access the system. At that moment, there is some code that will set up the user to access the system in that instance, but not prior to this. In this way, the resources for the different users accessing the system are not allocated until they are needed, thus saving resources that could be allocated somewhere else. Additionally, this saves time of the administrators who would normally be setting up users, to accomplish other key tasks.

3. Specific needs or requests for Custom Interface — Custom interfaces can be crucial for the successful adoption of any new technology. When a user is using any system, it is important to ensure they are not frustrated when attempting to accomplish what they need to do. We all have interacted with those systems where you cannot find what is needed or where it feels impossible to access that key piece of information you need. Especially for a time sensitive task that could involve some complex needs, it is important to provide an experience that is easy to use and makes the end user’s life simpler.

The answer to building the best solution for your Salesforce environment, is to combine Clicks AND Code based on your business needs. By using “Clicks and Code”, you can ensure that the custom code satisfies the requirement presented, but also that clicks can be used to maintain and enhance the functionality the code is providing. In this way, the final solution can be more time efficient in the long run, is more maintainable and best meets the existing and future needs of the business.

When you find gaps between clicks or code, there are a couple of solutions to consider:

Custom Labels, Custom Metadata Types, Custom Settings, and Design Attributes

Custom Labels are static labels that can be maintained by Administrators in Salesforce that can be referenced throughout the system as needed.

Custom Metadata Types and Custom Settings are similar but allow for information to be document in more specific, related ways, to model the way that certain pieces information may relate to one another for processing purposes.

Design Attributes allow certain aspects of a component to be set via an Administrator when adding a component to a page, in order allow for customization in that for that specific scenarios. All four can be updated via point-and-click development and can be leveraged by custom code in order to best handle scenarios where there are different business needs of how the custom code should work.

Custom Objects

Custom Objects are normally used for housing groups of data together not already handled by Salesforce in order to meet the business’ needs. If there are situations where there are so many of a type of business rule that other options would not suffice, a Custom Object may best manage the housing the logic involved. In this way, access to the Custom Object that houses these business rules can be managed via point-and-click development, in order to ensure that the system is set up by those who know it best. The custom code can use the business rules in the Custom Object to power the custom interface or back-end automation needed.

Now, let’s examine some real-life examples of how to use Clicks and Code:

Translation of Customer Communication — The request was to send system generated communications to different customers in their preferred language, in order to properly communicate the status of a support request and other key notifications. To solve this need, the decision of the language used in the email and the translation for the email is handled via custom code. However, the wording involved in the communication, the translations themselves and the logic of knowing when to send an email are all handled via point-and-click development. In this way, if there is a need to update any of the messages in any of the languages involved in these communications or to introduce another type of notification, this would all be able to happen without needing the skills of a developer.

Business Rule Accommodation — The second situation involves the health insurance industry and the assortment of business rules associated. For those not involved in the insurance industry, the amount of different ways in which the processing of charges and how to determine who is responsible for how much payment to collect can seem astronomical. There is a need for a system that can take all the information coming in, whether it is about the patient, where the care was administered, how the care was administered, what insurance company is involved and any other important factors to determine the costs and payers involved for an interaction. Additionally, as the contracts between insurance companies and providers change regularly, there is a need to constantly update the rules in the system to ensure that each party is paying what has been previously agreed upon. In this way, we leveraged Custom Objects and Custom Metadata Types to allow the updating and maintaining of these business rules in a way that enhanced the experience for those who worked in the system and saved valuable time and money in the long run for the client.

In any situation, there is a need to properly assess the options available and determine the best possible choice. Developing technological solutions, especially Salesforce development, is no different. With each release, Salesforce provides additional options to develop our solutions. Additionally, there are constantly different options being developed by groups available on the App-Exchange, Salesforce marketplace for free and paid packaged applications and components, and outside of the App-Exchange to be leveraged for developments. That is why it is important to, when each new situation arises, to understand the benefits of the options available. “Clicks, not Code” is a great motto. It highlights the key point of how, when possible, clicks are a great option to be used for meeting a need in Salesforce. However, point-and-click development cannot always, or sometimes should not be, used to solve the business requirement. When those situations arise, it is important to truly understand why “Clicks, not Code” exists and with it, to develop the best possible solution using not just one of the options but using both “Clicks and Code”.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK