James Simone is a Senior Software Engineer here at Salesforce. He has done a lot of work around engineering for Agile teams which we are talking about today. Specifically, James and his team develop applications on the Salesforce platform with the goal of increasing the Agile health of software development teams.| developer.salesforce.com
I was on the Salesforce developer podcast talking about speed versus quality (https://developer.salesforce.com/podcast/2023/03/episode-167-move-fast-dont-break-things-with-james-simone) a few weeks ago, and I'd encourage you to give that conversation a listen if you haven't already because it sets the stage nicely for this article. The theory that baking quality in from the get-go begets speed was the basic premise, but I've seen the opposite of that play out over and over again in software e...| www.jamessimone.net
Open source work is an incredible way to build up a corpus of referenceable work when applying to jobs, but there are other reasons you might want to build up a portfolio of Apex-related code. Learning how to package and distribute code, for example, or giving yourself the chance to show off a piece of functionality you're particularly proud of.| www.jamessimone.net
I decided to open source my Salesforce round robin assigner because I know how difficult it is to get the edge cases right when building something like this, and I wanted to create an easier way to hook into round robin-style assignments for both Flow and Apex developers. I'll walk a little bit through the changes I made prior to packaging up this functionality, and hopefully leave you with another great free tool.| www.jamessimone.net
At the end of 2020, I decided to take 2 weeks off of work at the end of the year. I was very fortunate to be able to do so, and I found myself in the position of wanting to give back. I'd had to replace DLRS within the org for the consulting company I was working for several months previously, and the idea of creating a more performant rollup engine was an alluring way to do so. The simple `RollupCalculator` class I'd made seemed just a _few_ lines away from a much simpler implementation than...| www.jamessimone.net
A few months ago I was tasked with replacing Declarative Lookup Rollup Summaries (DLRS) in an org suffering from frequent deadlocks. Rollup summary fields in Salesforce are plagued by severe limitations -- only being available on master-detail relationships being just the start of the list. Read on to learn about how I built Rollup to assist in orgs looking for DLRS-like flexibility with a much smaller performance overhead, complete with elastic scaling (go fast when you need to, slow when th...| www.jamessimone.net
So-called Lazy evaluated functions have their actual execution delayed until a terminator function is called. It's common for lazy functions to be chained together using fluent interfaces, culminating with actions being performed when the terminator function is called. What can Salesforce developers writing Apex code stand to gain by learning more about lazy functions? Fluent interfaces -- or objects that return themselves during function calls -- also tend to satisfy one of the prerequisites...| www.jamessimone.net
Learn how to use Repositories to protect your SOQL usage and easily swap implementations in unit tests| www.jamessimone.net
Cover the basics of mocking DML operations through the use of a DML class that can be swapped in unit tests.| www.jamessimone.net