Courses

Live, Instructor-Guided Online Courses


TDD-01-1: Getting Started with TDD (Time: 3 hours live, about 30 minutes independent preparation)
For Software Developers. Prerequisite: Working knowledge of a programming language. Developers new to test-driven development will learn when to use TDD; where TDD fits in software development; the basic mechanics of the TDD cycle; the benefits of TDD from the developer’s point of view; and the difference between implementation-aware and behavior-oriented test cases. This course provides a hands-on “taste” of TDD under the guidance of an experienced instructor. Participants collaborate on the class project using remote Mob Programming. Look for the next course date/time.


TDD-01-2: Classic-style TDD (Time: 3 hours live, about 30 minutes independent preparation)
For Software Developers. Prerequisite: Completion of TDD-01-1: Getting Started with TDD or equivalent knowledge/experience. Developers get a deeper dive into the “why” of TDD as well as the underlying mindset of the technique, focusing on the classic style or “Detroit school” of TDD. The course covers the idea of Bug Zero; the structure and styles of unit tests; the code transformations that complement the TDD approach; how to practice a code kata to maximize learning; common misconceptions about TDD; and an overview of complementary development practices that enhance the value-add of TDD. This is a practical, hands-on course guided by an experienced instructor. Participants collaborate on the class project using remote Mob Programming. Look for the next course date/time.


TDD-01-3: Emergent Design / Organizing and Naming Test Cases (Time: 3 hours live, about 30 minutes independent preparation)
For Software Developers. Prerequisite: Completion of TDD-01-2: Classic-style TDD or equivalent knowledge/experience. Emergent design can be a useful development technique, and it’s a natural fit for TDD. We also cover the topic of test suite organization and test case naming in this class. This is a practical, hands-on course guided by an experienced instructor. Participants collaborate on the class project using remote Mob Programming. Look for the next course date/time.


TDD-01-4: Code Isolation and External Dependencies (Time: 3 hours live, about 30 minutes independent preparation)
For Software Developers. Prerequisite: Completion of TDD-01-2: Classic-style TDD or equivalent knowledge/experience. Modular code that is well isolated and loosely coupled tends to support generally-accepted software design principles naturally. It turns out that crafting code for testability tends to lead to well-isolated, modular designs. This course focuses on code isolation and on how to handle external dependencies of the code under test. This is a practical, hands-on course guided by an experienced instructor. Participants collaborate on the class project using remote Mob Programming. Look for the next course date/time.


TDD-01-5: Fundamentals of Refactoring (Time: 3 hours live, about 30 minutes independent preparation)
For Software Developers. Prerequisite: Completion of TDD-01-2: Classic-style TDD or equivalent knowledge/experience. Although “write the test first” is the most-often-heard mantra about TDD, in reality it’s the refactor step in the TDD cycle that brings the most value. Most of our work deals with existing code, and refactoring is the technique for improving the design of existing code. This course is a deep dive into software design principles, code smells, and refactorings. This is a practical, hands-on course guided by an experienced instructor. Participants collaborate on the class project using remote Mob Programming. Look for the next course date/time.