Multiple RecordTriggeredFlows on sameOperationTypeon one sObjectUsingProfilesinstead ofPermissionSetsDMLsin loopGiganticFlow insteadof multipleSubflowsExactly75% testcoverageNo testdatafactory orbuilderCheckingcollectionemptinessbefore DMLPublicRead/WriteOWDsNo flags todeactivatetrigger andvalidation rulesdeclarativelyExcessivelack of.startTest()and.stopTest()No FaultPaths inFlowsMissingbulk testsin testclassesSOQLswithoutWHERE orLIMIT outsideBatchHard-codedIDAll classes inwithout sharingmodeMultipletriggerson onesObjectNon‑descriptivevariable namesin FlowSOQLsin loopCode intriggerinstead ofTriggerHandlerHard-codedauthenticationinstead ofusing NamedCredentialsOnlycatchinggeneralException intry-catchGetting IDsby loopinstead ofMap(records)Excessiveamount ofSystem.Debug()Noassertionsin TestsMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectUsingProfilesinstead ofPermissionSetsDMLsin loopGiganticFlow insteadof multipleSubflowsExactly75% testcoverageNo testdatafactory orbuilderCheckingcollectionemptinessbefore DMLPublicRead/WriteOWDsNo flags todeactivatetrigger andvalidation rulesdeclarativelyExcessivelack of.startTest()and.stopTest()No FaultPaths inFlowsMissingbulk testsin testclassesSOQLswithoutWHERE orLIMIT outsideBatchHard-codedIDAll classes inwithout sharingmodeMultipletriggerson onesObjectNon‑descriptivevariable namesin FlowSOQLsin loopCode intriggerinstead ofTriggerHandlerHard-codedauthenticationinstead ofusing NamedCredentialsOnlycatchinggeneralException intry-catchGetting IDsby loopinstead ofMap(records)Excessiveamount ofSystem.Debug()Noassertionsin Tests

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