GiganticFlow insteadof multipleSubflowsHard-codedauthenticationinstead ofusing NamedCredentailNondescriptivevariablenames in FlowUnjustifiedbig numberof RecordFlows onone sObjectMethod with100s 'i++'lines for fakecodecoverageHard-codedIDDMLsin loopNoassertionsin TestsOnly catchinggeneralcatch(Exception)Excessivelack of.startTest()and.stopTest()Getting IDsby loopinstead ofMap(records)No checkingcollectionemptinessbefore DMLSOQLsin loopNo flags todeactivatetriggerdeclarativelyMultipletriggerson onesObjectPublicRead/WriteOWDsExcessiveamount ofSystem.Debug()No Test datafactory/builderHard-codingUI textinstead ofCustomLabelsSOQLwithoutWHERE orLIMIT outsideBatchCallingQueueable inloop withoutcontrolmechanism orloggingExactly75% testcoverageCode intriggerinstead ofTriggerHandlerNo FaultPaths inFlowsGiganticFlow insteadof multipleSubflowsHard-codedauthenticationinstead ofusing NamedCredentailNondescriptivevariablenames in FlowUnjustifiedbig numberof RecordFlows onone sObjectMethod with100s 'i++'lines for fakecodecoverageHard-codedIDDMLsin loopNoassertionsin TestsOnly catchinggeneralcatch(Exception)Excessivelack of.startTest()and.stopTest()Getting IDsby loopinstead ofMap(records)No checkingcollectionemptinessbefore DMLSOQLsin loopNo flags todeactivatetriggerdeclarativelyMultipletriggerson onesObjectPublicRead/WriteOWDsExcessiveamount ofSystem.Debug()No Test datafactory/builderHard-codingUI textinstead ofCustomLabelsSOQLwithoutWHERE orLIMIT outsideBatchCallingQueueable inloop withoutcontrolmechanism orloggingExactly75% testcoverageCode intriggerinstead ofTriggerHandlerNo FaultPaths inFlows

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