Skip links

Salesforce: A Developers Perspective

Jump To Section

When an engineer is required to work on the Salesforce Platform, a typical reaction is a mixture of dread and confusion as to what Salesforce actually is.

Salesforce Development: When tasked with working on the Salesforce Platform, engineers often react with a mix of dread and confusion about what Salesforce truly entails. Historically, only SharePoint development has a worse reputation, as indicated by numerous Stack Overflow Surveys.

I have been working for a number of different clients on the platform since 2011 and witnessed firsthand how Salesforce has evolved over the years. I aim to show why Salesforce development can be agile, fast and even (whisper it) fun.

What is Salesforce?

From a product perspective, Salesforce is a Customer Relationship Management solution that focuses on areas such as sales, support and marketing.  From a developer perspective, Salesforce is all about data.

You create the data structures in the back end, control access to who has access to and can modify that data, build out business logic and integrations, and ensure that end users can interpret the data correctly through UI views, reporting and analytics.  Obviously there are a lot more bells and whistles, but that’s the gist.

Revitalizing UI: Salesforce’s Lightning Response

One of the classic criticisms of Salesforce was that its UI was tired and stuck in the late 2000s.  The company responded by launching the Lightning Platform, an app-centric platform that provides typical business flows out-the-box while allowing for the possibility of heavy customization where necessary.

Development has switched from the traditional JSF model (Visualforce) that required multiple round trips to the server to a component-based, lightweight framework (Lightning) that has more in common with React and Angular.  And the recent launch of Lightning Web Components makes this even better.

Easy to code, difficult to code well

Salesforce does a great job at abstracting away some of the boilerplate that’s required in other applications.  For those who don’t have a coding background, they can get far just by using point-and-click tools.

If you are a Java developer, you can get things working in Apex right away.  Want direct access to the database from the business layer? You got it. Want to update permissions directly in the environment without worrying about pesky things like change management and version control?  No problem.

However, when the application starts to mature and feature requests build up, this lack of separation of concerns will come back to bite you.  Likewise, if you don’t pay attention to governor limits, what works in your sandbox can suddenly start failing in a production org with more data.  If you don’t get things right from the beginning, fixing it later requires far more time and resources.

I’m not slacking, my code’s compiling!”

Writing code and pushing it to an environment where you could actually see it working used to be a painful process.  I can acutely remember the days when you hit save and had to wait for ages while the Eclipse plugin compiled and pushed your code.  Even worse was when you were sharing an environment with other developers or admins and had to worry about conflicts or replicating those changes in version control.

That’s why SalesforceDX was such a massive improvement when it launched a couple of years ago.  For the first time, you had a CI-friendly, CLI-driven development process that could spin up an environment in seconds, push the code from source control, and run unit tests and UI tests to ensure you haven’t broken anything with your changes.  Unlocked packages are a great way to modularize your code and explicitly specify dependencies.

All in all, developing on the platform has been completely transformed for the better!  Now I just need to remember to fill out that survey…

Picture of George Slater

George Slater

Latest Reads

Subscribe

Suggested Reading

Ready to Unlock Your Enterprise's Full Potential?

Adaptive Clinical Trial Designs: Modify trials based on interim results for faster identification of effective drugs.Identify effective drugs faster with data analytics and machine learning algorithms to analyze interim trial results and modify.
Real-World Evidence (RWE) Integration: Supplement trial data with real-world insights for drug effectiveness and safety.Supplement trial data with real-world insights for drug effectiveness and safety.
Biomarker Identification and Validation: Validate biomarkers predicting treatment response for targeted therapies.Utilize bioinformatics and computational biology to validate biomarkers predicting treatment response for targeted therapies.
Collaborative Clinical Research Networks: Establish networks for better patient recruitment and data sharing.Leverage cloud-based platforms and collaborative software to establish networks for better patient recruitment and data sharing.
Master Protocols and Basket Trials: Evaluate multiple drugs in one trial for efficient drug development.Implement electronic data capture systems and digital platforms to efficiently manage and evaluate multiple drugs or drug combinations within a single trial, enabling more streamlined drug development
Remote and Decentralized Trials: Embrace virtual trials for broader patient participation.Embrace telemedicine, virtual monitoring, and digital health tools to conduct remote and decentralized trials, allowing patients to participate from home and reducing the need for frequent in-person visits
Patient-Centric Trials: Design trials with patient needs in mind for better recruitment and retention.Develop patient-centric mobile apps and web portals that provide trial information, virtual support groups, and patient-reported outcome tracking to enhance patient engagement, recruitment, and retention
Regulatory Engagement and Expedited Review Pathways: Engage regulators early for faster approvals.Utilize digital communication tools to engage regulatory agencies early in the drug development process, enabling faster feedback and exploration of expedited review pathways for accelerated approvals
Companion Diagnostics Development: Develop diagnostics for targeted recruitment and personalized treatment.Implement bioinformatics and genomics technologies to develop companion diagnostics that can identify patient subpopulations likely to benefit from the drug, aiding in targeted recruitment and personalized treatment
Data Standardization and Interoperability: Ensure seamless data exchange among research sites.Utilize interoperable electronic health record systems and health data standards to ensure seamless data exchange among different research sites, promoting efficient data aggregation and analysis
Use of AI and Predictive Analytics: Apply AI for drug candidate identification and data analysis.Leverage AI algorithms and predictive analytics to analyze large datasets, identify potential drug candidates, optimize trial designs, and predict treatment outcomes, accelerating the drug development process
R&D Investments: Improve the drug or expand indicationsUtilize computational modelling and simulation techniques to accelerate drug discovery and optimize drug development processes