Hard-codedIDDMLsin loopNoassertionsin TestsOnly catchinggeneralcatch(Exception)SOQLwithoutWHERE orLIMIT outsideBatchNo flags todeactivatetriggerdeclarativelyHard-codingUI textinstead ofCustomLabelsMethod with100s 'i++'lines for fakecodecoverageExcessivelack of.startTest()and.stopTest()GiganticFlow insteadof multipleSubflowsNo checkingcollectionemptinessbefore DMLMultipletriggerson onesObjectHard-codedauthenticationinstead ofusing NamedCredentailNondescriptivevariablenames in FlowPublicRead/WriteOWDsExactly75% testcoverageCode intriggerinstead ofTriggerHandlerNo Test datafactory/builderCallingQueueable inloop withoutcontrolmechanism orloggingGetting IDsby loopinstead ofMap(records)No FaultPaths inFlowsExcessiveamount ofSystem.Debug()SOQLsin loopUnjustifiedbig numberof RecordFlows onone sObjectHard-codedIDDMLsin loopNoassertionsin TestsOnly catchinggeneralcatch(Exception)SOQLwithoutWHERE orLIMIT outsideBatchNo flags todeactivatetriggerdeclarativelyHard-codingUI textinstead ofCustomLabelsMethod with100s 'i++'lines for fakecodecoverageExcessivelack of.startTest()and.stopTest()GiganticFlow insteadof multipleSubflowsNo checkingcollectionemptinessbefore DMLMultipletriggerson onesObjectHard-codedauthenticationinstead ofusing NamedCredentailNondescriptivevariablenames in FlowPublicRead/WriteOWDsExactly75% testcoverageCode intriggerinstead ofTriggerHandlerNo Test datafactory/builderCallingQueueable inloop withoutcontrolmechanism orloggingGetting IDsby loopinstead ofMap(records)No FaultPaths inFlowsExcessiveamount ofSystem.Debug()SOQLsin loopUnjustifiedbig numberof RecordFlows onone sObject

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. Hard-coded ID
  2. DMLs in loop
  3. No assertions in Tests
  4. Only catching general catch(Exception)
  5. SOQL without WHERE or LIMIT outside Batch
  6. No flags to deactivate trigger declaratively
  7. Hard-coding UI text instead of Custom Labels
  8. Method with 100s 'i++' lines for fake code coverage
  9. Excessive lack of .startTest() and .stopTest()
  10. Gigantic Flow instead of multiple Subflows
  11. No checking collection emptiness before DML
  12. Multiple triggers on one sObject
  13. Hard-coded authentication instead of using Named Credentail
  14. Nondescriptive variable names in Flow
  15. Public Read/Write OWDs
  16. Exactly 75% test coverage
  17. Code in trigger instead of Trigger Handler
  18. No Test data factory/builder
  19. Calling Queueable in loop without control mechanism or logging
  20. Getting IDs by loop instead of Map(records)
  21. No Fault Paths in Flows
  22. Excessive amount of System.Debug()
  23. SOQLs in loop
  24. Unjustified big number of Record Flows on one sObject