Multipletriggerson onesObjectNoassertionsin TestsExcessiveamount ofSystem.Debug()GiganticFlow insteadof multipleSubflowsDMLsin loopNo testdatafactory orbuilderCheckingcollectionemptinessbefore DMLCode intriggerinstead ofTriggerHandlerGetting IDsby loopinstead ofMap(records)UsingProfilesinstead ofPermissionSetsAll classes inwithout sharingmodeHard-codedauthenticationinstead ofusing NamedCredentialsMissingbulk testsin testclassesOnlycatchinggeneralException intry-catchNon‑descriptivevariable namesin FlowSOQLswithoutWHERE orLIMIT outsideBatchSOQLsin loopExactly75% testcoverageMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo FaultPaths inFlowsHard-codedIDPublicRead/WriteOWDsNo flags todeactivatetrigger andvalidation rulesdeclarativelyExcessivelack of.startTest()and.stopTest()Multipletriggerson onesObjectNoassertionsin TestsExcessiveamount ofSystem.Debug()GiganticFlow insteadof multipleSubflowsDMLsin loopNo testdatafactory orbuilderCheckingcollectionemptinessbefore DMLCode intriggerinstead ofTriggerHandlerGetting IDsby loopinstead ofMap(records)UsingProfilesinstead ofPermissionSetsAll classes inwithout sharingmodeHard-codedauthenticationinstead ofusing NamedCredentialsMissingbulk testsin testclassesOnlycatchinggeneralException intry-catchNon‑descriptivevariable namesin FlowSOQLswithoutWHERE orLIMIT outsideBatchSOQLsin loopExactly75% testcoverageMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo FaultPaths inFlowsHard-codedIDPublicRead/WriteOWDsNo flags todeactivatetrigger andvalidation rulesdeclarativelyExcessivelack of.startTest()and.stopTest()

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