Although test-driven development has been around for now 20 years, it remains a controversial programming technique. Part of the problem is that it is still not well-understood. When you walk out of this workshop, you will understand the true power of TDD as an evolutionary design technique. Your questions will be answered and your doubts will disappear.
Bring a computer ready to write code in a brand new project in whatever programming language you choose. Version control is highly recommended. Install your favorite testing library. If you can run a single failing test in your new project, then your development environment is ready to use.
J. B. Rainsberger is one of the Second Wave of TDD practitioners, who learned his craft directly from pioneers like Kent Beck and Bob Martin. His book, JUnit Recipes, remains “The JUnit bible”. He has taught TDD as an evolutionary design technique to thousands of programmers. Read his work at http://blog.jbrains.ca and http://blog.thecodewhisperer.com.
In this course, we iterate through theory, demonstrations, practice, and questions. Your questions will drive the content, so please ask! You will choose the specific topics that matter most to you. Some key topics: | |
+ TDD as an evolutionary design technique | |
+ TDD as a way to learn the secrets of effective design | |
The detailed schedule proposed here is based on general patterns of how this course usually proceeds. |
October 19, 2017, 9:00AM, 60 minutes
+ Before we start: gathering your questions | |
+ What is TDD? | |
+ What really are the key benefits of TDD? (and why this seems to confuse so many people!) | |
+ The three “stages” of learning and practising TDD | |
+ TDD is simple, but not easy | |
+ Questions and answers |
October 19, 2017, 10:30AM, 90 minutes
+ A demonstration of emergent design | |
+ Some key microtechniques for writing good tests | |
+ Some key microtechniques for building good programming habits | |
+ Practice time, questions and answers |
October 19, 2017, 1:00PM, 60 minutes
Practice time, followed by questions and answers.
October 19, 2017, 2:30PM, 90 minutes
+ The trouble with clusters of objects | |
+ The value of test doubles (also called “mock objects”) | |
+ Using test doubles as design tools and not just for testing | |
+ A demonstration of the Client-First Design strategy | |
+ Questions and answers |
October 20, 2017, 9:00AM, 90 minutes
Practice time, followed by questions and answers.
October 20, 2017, 11:00AM, 90 minutes
We will iterate through theory/demonstration, practice, and questions until we run out of time. | |
The specific topics will depend on your questions and my observations of your work. The topics usually include things like: | |
+ How do I test X? (database, network, REST API, …) | |
+ How do I begin to rescue legacy code? | |
+ How do I convince my colleagues to improve their work habits? | |
+ What happens when my manager sees me refactoring? |
October 20, 2017, 1:30PM, 90 minutes
Continued from previous sessions…
October 20, 2017, 3:30PM, 90 minutes
Continued from previous sessions… and closing questions and answers.
Flyer available here: https://github.com/jbrainstour/2017/blob/master/Flyer-JBrains.jpg
Want to get involved and help support Evolutionary Design Workshop with @jbrains? We'd love to hear from you.