No flags todeactivatetrigger andvalidation rulesdeclarativelyDMLsin loopGetting IDsby loopinstead ofMap(records)Hard-codedIDExactly75% testcoverageMissingbulk testsin testclassesNon‑descriptivevariable namesin FlowExcessivelack of.startTest()and.stopTest()SOQLswithoutWHERE orLIMIT outsideBatchNo FaultPaths inFlowsMultipletriggerson onesObjectPublicRead/WriteOWDsGiganticFlow insteadof multipleSubflowsNo testdatafactory orbuilderHard-codedauthenticationinstead ofusing NamedCredentialsOnlycatchinggeneralException intry-catchCheckingcollectionemptinessbefore DMLUsingProfilesinstead ofPermissionSetsMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectCode intriggerinstead ofTriggerHandlerExcessiveamount ofSystem.Debug()Noassertionsin TestsSOQLsin loopAll classes inwithout sharingmodeNo flags todeactivatetrigger andvalidation rulesdeclarativelyDMLsin loopGetting IDsby loopinstead ofMap(records)Hard-codedIDExactly75% testcoverageMissingbulk testsin testclassesNon‑descriptivevariable namesin FlowExcessivelack of.startTest()and.stopTest()SOQLswithoutWHERE orLIMIT outsideBatchNo FaultPaths inFlowsMultipletriggerson onesObjectPublicRead/WriteOWDsGiganticFlow insteadof multipleSubflowsNo testdatafactory orbuilderHard-codedauthenticationinstead ofusing NamedCredentialsOnlycatchinggeneralException intry-catchCheckingcollectionemptinessbefore DMLUsingProfilesinstead ofPermissionSetsMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectCode intriggerinstead ofTriggerHandlerExcessiveamount ofSystem.Debug()Noassertionsin TestsSOQLsin loopAll 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. No flags to deactivate trigger and validation rules declaratively
  2. DMLs in loop
  3. Getting IDs by loop instead of Map(records)
  4. Hard-coded ID
  5. Exactly 75% test coverage
  6. Missing bulk tests in test classes
  7. Non‑descriptive variable names in Flow
  8. Excessive lack of .startTest() and .stopTest()
  9. SOQLs without WHERE or LIMIT outside Batch
  10. No Fault Paths in Flows
  11. Multiple triggers on one sObject
  12. Public Read/Write OWDs
  13. Gigantic Flow instead of multiple Subflows
  14. No test data factory or builder
  15. Hard-coded authentication instead of using Named Credentials
  16. Only catching general Exception in try-catch
  17. Checking collection emptiness before DML
  18. Using Profiles instead of Permission Sets
  19. Multiple Record Triggered Flows on same OperationType on one sObject
  20. Code in trigger instead of Trigger Handler
  21. Excessive amount of System.Debug()
  22. No assertions in Tests
  23. SOQLs in loop
  24. All classes in without sharing mode