OnlycatchinggeneralException intry-catchExcessivelack of.startTest()and.stopTest()No flags todeactivatetrigger andvalidation rulesdeclarativelyExactly75% testcoverageCode intriggerinstead ofTriggerHandlerDMLsin loopNoassertionsin TestsSOQLswithoutWHERE orLIMIT outsideBatchPublicRead/WriteOWDsExcessiveamount ofSystem.Debug()Non‑descriptivevariable namesin FlowMissingbulk testsin testclassesMultipletriggerson onesObjectGiganticFlow insteadof multipleSubflowsHard-codedauthenticationinstead ofusing NamedCredentialsSOQLsin loopMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo testdatafactory orbuilderUsingProfilesinstead ofPermissionSetsGetting IDsby loopinstead ofMap(records)No FaultPaths inFlowsHard-codedIDCheckingcollectionemptinessbefore DMLAll classes inwithout sharingmodeOnlycatchinggeneralException intry-catchExcessivelack of.startTest()and.stopTest()No flags todeactivatetrigger andvalidation rulesdeclarativelyExactly75% testcoverageCode intriggerinstead ofTriggerHandlerDMLsin loopNoassertionsin TestsSOQLswithoutWHERE orLIMIT outsideBatchPublicRead/WriteOWDsExcessiveamount ofSystem.Debug()Non‑descriptivevariable namesin FlowMissingbulk testsin testclassesMultipletriggerson onesObjectGiganticFlow insteadof multipleSubflowsHard-codedauthenticationinstead ofusing NamedCredentialsSOQLsin loopMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo testdatafactory orbuilderUsingProfilesinstead ofPermissionSetsGetting IDsby loopinstead ofMap(records)No FaultPaths inFlowsHard-codedIDCheckingcollectionemptinessbefore DMLAll classes inwithout sharingmode

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