Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TDD Is My Shame

TDD Is My Shame

"I don't do as much Test-Driven Development as I should; it's my shame."

The more time I spend at recent development conferences, the more I see this sentiment echoed. Developers get the impression that they *should* do TDD, but they don't.

Sometimes they don't know how to do it effectively, so it ends up a mess.
Sometimes they don't know when they should do it, so it ends up being overapplied.
Sometimes they don't really know what it is, so they end up treating it in odd ways.

In this talk, you'll get answers for all of the above and more. You'll understand TDD better, you'll understand how to be more effective, and you'll learn to let go of that little voice that says you should do more.

garyfleming

March 04, 2020
Tweet

More Decks by garyfleming

Other Decks in Technology

Transcript

  1. "I'm a little ashamed, but I don't TDD as much

    as I think I should." @garyfleming
  2. WHAT IS SHAME? > Self-awareness > Self-blame > Standards >

    Personal trait > Self-esteem > ... and more @garyfleming
  3. "Shame, for women, is this web of unobtainable, conflicting, competing

    expectations about who we're supposed to be. And it's a straight-jacket. " - Brené Brown @garyfleming
  4. > Testing practice... Not really > Design Strategy... Maybe >

    Development practice... Probably @garyfleming
  5. UNIT TESTS > No Database > No network > No

    Filesystem > Must be Parallelisable > Can't have any weird environment set-up @garyfleming
  6. RON JEFFRIES DOESN'T TDD WHEN... > ...It's simple/throwaway > ...There

    isn't a decent tool at hand > ...The output is visual > ...He can't think how to test something @garyfleming
  7. RON JEFFRIES DOESN'T TDD WHEN... > ...It's simple/throwaway > ...There

    isn't a decent tool at hand > ...The output is visual > ...He can't think how to test something @garyfleming
  8. RON JEFFRIES DOESN'T TDD WHEN... > ...It's simple/throwaway > ...There

    isn't a decent tool at hand > ...The output is visual > ...He can't think how to test something @garyfleming
  9. RON JEFFRIES DOESN'T TDD WHEN... > ...It's simple/throwaway > ...There

    isn't a decent tool at hand > ...The output is visual > ...He can't think how to test something @garyfleming
  10. OTHER REASONS TO NOT... > ...You prefer larger methods, with

    less focus > ...You don't know how to keep the test loop small > ...You don't know how your system should behave @garyfleming
  11. BECK'S FOUR ELEMENTS OF SIMPLE DESIGN > Passes The Tests

    > Reveals Intention > No Duplication > Fewest Elements @garyfleming
  12. WHAT DOES THIS ACTUALLY DO? > Passes The Tests >

    Reveals Intention > No Duplication > Fewest Elements @garyfleming
  13. GOOD NAMES > ...avoid unnecessary ambiguity > ...are just concise

    enough to convey the relavent info and no more > ...use the shared domain language as much as possible. @garyfleming