SOQLsin loopExcessivelack of.startTest()and.stopTest()DMLsin loopNon‑descriptivevariable namesin FlowHard-codedIDNo testdatafactory orbuilderExcessiveamount ofSystem.Debug()All classes inwithout sharingmodeCode intriggerinstead ofTriggerHandlerGetting IDsby loopinstead ofMap(records)Missingbulk testsin testclassesNoassertionsin TestsHard-codedauthenticationinstead ofusing NamedCredentialsCheckingcollectionemptinessbefore DMLMultipletriggerson onesObjectMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectPublicRead/WriteOWDsSOQLswithoutWHERE orLIMIT outsideBatchNo FaultPaths inFlowsGiganticFlow insteadof multipleSubflowsUsingProfilesinstead ofPermissionSetsOnlycatchinggeneralException intry-catchNo flags todeactivatetrigger andvalidation rulesdeclarativelyExactly75% testcoverageSOQLsin loopExcessivelack of.startTest()and.stopTest()DMLsin loopNon‑descriptivevariable namesin FlowHard-codedIDNo testdatafactory orbuilderExcessiveamount ofSystem.Debug()All classes inwithout sharingmodeCode intriggerinstead ofTriggerHandlerGetting IDsby loopinstead ofMap(records)Missingbulk testsin testclassesNoassertionsin TestsHard-codedauthenticationinstead ofusing NamedCredentialsCheckingcollectionemptinessbefore DMLMultipletriggerson onesObjectMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectPublicRead/WriteOWDsSOQLswithoutWHERE orLIMIT outsideBatchNo FaultPaths inFlowsGiganticFlow insteadof multipleSubflowsUsingProfilesinstead ofPermissionSetsOnlycatchinggeneralException intry-catchNo flags todeactivatetrigger andvalidation rulesdeclarativelyExactly75% testcoverage

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