Checkingcollectionemptinessbefore DMLNo flags todeactivatetrigger andvalidation rulesdeclarativelyNon‑descriptivevariable namesin FlowMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo FaultPaths inFlowsPublicRead/WriteOWDsUsingProfilesinstead ofPermissionSetsHard-codedauthenticationinstead ofusing NamedCredentialsCode intriggerinstead ofTriggerHandlerExcessiveamount ofSystem.Debug()Getting IDsby loopinstead ofMap(records)No testdatafactory orbuilderDMLsin loopHard-codedIDNoassertionsin TestsExactly75% testcoverageAll classes inwithout sharingmodeOnlycatchinggeneralException intry-catchGiganticFlow insteadof multipleSubflowsExcessivelack of.startTest()and.stopTest()Missingbulk testsin testclassesSOQLswithoutWHERE orLIMIT outsideBatchSOQLsin loopMultipletriggerson onesObjectCheckingcollectionemptinessbefore DMLNo flags todeactivatetrigger andvalidation rulesdeclarativelyNon‑descriptivevariable namesin FlowMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo FaultPaths inFlowsPublicRead/WriteOWDsUsingProfilesinstead ofPermissionSetsHard-codedauthenticationinstead ofusing NamedCredentialsCode intriggerinstead ofTriggerHandlerExcessiveamount ofSystem.Debug()Getting IDsby loopinstead ofMap(records)No testdatafactory orbuilderDMLsin loopHard-codedIDNoassertionsin TestsExactly75% testcoverageAll classes inwithout sharingmodeOnlycatchinggeneralException intry-catchGiganticFlow insteadof multipleSubflowsExcessivelack of.startTest()and.stopTest()Missingbulk testsin testclassesSOQLswithoutWHERE orLIMIT outsideBatchSOQLsin loopMultipletriggerson onesObject

Salesforce Development Practices Bingo - Call List

(Print) Use this randomly generated list as your call list when playing the game. There is no need to say the BINGO column name. Place some kind of mark (like an X, a checkmark, a dot, tally mark, etc) on each cell as you announce it, to keep track. You can also cut out each item, place them in a bag and pull words from the bag.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  1. Checking collection emptiness before DML
  2. No flags to deactivate trigger and validation rules declaratively
  3. Non‑descriptive variable names in Flow
  4. Multiple Record Triggered Flows on same OperationType on one sObject
  5. No Fault Paths in Flows
  6. Public Read/Write OWDs
  7. Using Profiles instead of Permission Sets
  8. Hard-coded authentication instead of using Named Credentials
  9. Code in trigger instead of Trigger Handler
  10. Excessive amount of System.Debug()
  11. Getting IDs by loop instead of Map(records)
  12. No test data factory or builder
  13. DMLs in loop
  14. Hard-coded ID
  15. No assertions in Tests
  16. Exactly 75% test coverage
  17. All classes in without sharing mode
  18. Only catching general Exception in try-catch
  19. Gigantic Flow instead of multiple Subflows
  20. Excessive lack of .startTest() and .stopTest()
  21. Missing bulk tests in test classes
  22. SOQLs without WHERE or LIMIT outside Batch
  23. SOQLs in loop
  24. Multiple triggers on one sObject