Treat yourself - A tale about dog training and test-driven development
What can dog training teach us about writing software? Discover how positive reinforcement and TDD create a powerful feedback loop that leads to cleaner, more reliable code.
#1about 3 minutes
Connecting dog training principles to software testing
The speaker's background as a dog trainer provides a unique perspective on the principles behind test-driven development.
#2about 6 minutes
Applying positive reinforcement and small steps in training
Effective dog training focuses on reinforcing desired behaviors in small, achievable steps, similar to writing user stories and iterating.
#3about 3 minutes
Understanding the red-green-refactor cycle of TDD
TDD is a programmer-driven technique that follows a red-green-refactor cycle, writing a failing test before writing any implementation code.
#4about 4 minutes
How TDD builds a strong foundation of unit tests
TDD primarily generates fast and reliable unit tests, forming the stable base of the testing pyramid essential for agile development.
#5about 6 minutes
Building a dog training simulator with TDD
A practical coding example begins by writing the first failing tests to initialize a `Dog` class and assign it a name in JavaScript.
#6about 7 minutes
Using TDD to implement logic and catch bugs early
The TDD cycle helps catch a logical bug early when implementing rewards, demonstrating its value in preventing errors from reaching users.
#7about 4 minutes
Refactoring implementation and test code with confidence
With a suite of passing tests in place, the implementation and test code can be safely refactored to be more maintainable and less repetitive.
#8about 6 minutes
Simulating the learning process with a counter
A counter is added to track rewarded behaviors, allowing the dog to "learn" a command after a set number of successful repetitions.
#9about 4 minutes
Adopting TDD as a design tool, not just a testing method
TDD should be viewed as a code design strategy that promotes focus and clean architecture, but it's important to apply it pragmatically rather than dogmatically.
Related jobs
Jobs that call for the skills explored in this talk.
Dev Digest 197: Dunning–Kruger Steroids, State of Cloud Security, Puppies > BeerInside last week’s Dev Digest 197 .
💪 LLMs are steroids for Dunning-Kruger
☁️ The state of cloud security
🟨 JavaScript for Django developers
🔀 Redirects hurt your page rank
🤔 Is your node setup vulnerable?
💿 Meta data on audio CDs
🐶 OSS: More puppie...
Daniel Cranney
Dev Digest 213: Petrol Prices, Agentic Workflows, AI Skills and CODE100!Inside last week’s Dev Digest 213 .
🤫 Don’t tell your LLM that it is an expert
👻 AI generated code is invisible
🔄 Learn about agentic workflows
🛡️ Linux Foundation sponsors fight against AI slop
🦠 1M users infected by Chrome extension
🫃 The why of J...
Daniel Cranney, Chris Heilmann
Dev Digest 215: Agent Memory, JS2026, Googlebot Analysis & Canvas❤️HTMLInside last week’s Dev Digest 215 .
🗿 Make AI talk like a caveman
🧠 A guide to context engineering for LLMs
🤖 Simon Willison on agentic engineering
🔐 Axios supply chain attack post mortem
🛡️ Designing AI agents to resist prompt injection
🎨 HTML in c...
Benjamin Ruschin
What Developers Really Need to Create Great Code DemosEvery developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
From learning to earning
Jobs that call for the skills explored in this talk.