Course Objectives

This three-day course for software developers provides hands-on experience with the techniques of Test-Driven Development (TDD). TDD enables incremental and iterative software development, without degrading quality.

Participants learn test-first, refactoring, the use of test-doubles, and other core skills. They learn how TDD provides and maintains a very low defect-count. They will experience how they can work fearlessly, swiftly, and comfortably on new features, design improvements, and bug-fixes. They will also learn how to alter legacy code, by first building characterization test coverage for the code that is changing, while protecting features of the legacy system that do not yet require any alteration.

Ask about adding our very popular TDD coaching day (usually scheduled immediately following the course). During this day the course participants and the instructor explore your organization’s particular concerns, code, technologies, and challenges.

Programming languages: The course is currently offered in Java, JavaScript, C#, or C++. (You can also request a course in Ruby, Swift, Python, et cetera. Delivery would need to be scheduled three months in advance to give us time to build and test demo and lab materials.)

Learning Objectives

  • The value of TDD to the business and the developer.
  • Why TDD helps developers work fearlessly, swiftly and comfortably on new features and bug-fixes.
  • How to craft a concise, expressive, repeatable microtest.
  • Using test-doubles to avoid unpredictable dependencies and speed up testing.
  • Adding characterization tests for existing legacy code.
  • Refactoring for maintainability and extensibility.
  • Collaborative techniques to establish a diligent TDD practice within the team.

DESIGNED FOR
Software developers, engineers

LEVEL
Intermediate to advanced

PRE-REQUISITES
Basics of an object-oriented programming language.

LENGTH
3 days on-site or off-site

Testimonials

“Rob brought his Test Driven Development curriculum to a group of software engineers that were hard core unit test experts.  Rob quickly elevated the level of his class to match the expertise of the students resulting in an engaged class that had many break out discussions during breaks, before class and well into the evening hours after class.  Rob’s experience and expertise are world class and this separates his training from the pack by a large margin.” — Sam P., Manager Software R&D, Omnyx, Pittsburg, PA

“The course we received was top-notch—very well designed and expertly delivered. Very strong focus on keeping all our developers engaged and there was a genuine desire to provide instruction that was relevant and meaningful afterward. Some of our developers have taken to TDD adoption more than others, but I would say as Project Manager that there has been a noticeable reduction in rework and improvement in overall code stability as a direct result of the training.” — a Chief Project Manager at a Fortune 100 energy company

“Learning TDD from books or by practice works, but Rob Myers’s class provided quick feedback through direct, well designed practice, with concise and beneficial experience stories and theory. The power of communal learning is realized within the great safe container and the structure of the class helped cover the details and gotchas. It was very helpful to do TDD with legacy code.”

“Excellent workshop – clearly lays the foundation for TDD practices that you can easily apply to your day-to-day coding.”

“Very well paced. Informative. Lots of practical exercises. Enjoyable atmosphere. Well planned in every respect.”

“Perfectly tuned exercises. Plenty of challenge, but not too much. Finding the right balance of difficulty and success is hard to do, and these were just right.”

“A fun, informative, and inspiring course!” — Damien F.

“…got me thinking differently about programming” — Craig H.

“I really enjoyed the experience. I know I was forced to think (and challenged) because I feel mentally…exhausted.”

“Before the class, I thought I had a handle on what test driven development was in theory. However, going through the class finally let me understand why it works and gave me insight into how to make TDD work for me and our company. The exercises were fun and explored real problems that I ran into when trying to do TDD on my own, and Rob gave us good insight into ways to improve our projects. The software releases since taking this class as a team are much more solid than the ones before it.”  — Kevin H., FMC Technologies Schilling Robotics

“Rob’s class was very helpful to me.  I had been attempting to use unit testing from online training on my own but I wasn’t able to internalize it until after Rob’s class.  His exercises were very enlightening and helped me really understand points that I had been missing.  It also allowed us to level set as a team and make talking about it easier.  He was also very insightful and helped us with real examples in our code.  It was by far one of the most useful trainings I have done in my career.”  — Eirik A., FMC Technologies Schilling Robotics

“The exercises are rich and enlightening. Rob’s easy manner and depth of knowledge allow him to adjust the class to the specific need of the people in the room. Definitely a worthwhile three days!”

Let’s start a conversation. Contact us for scheduling or questions about this course.

 

People who looked at this course also viewed:

CSD BDD Agile For Teams

Want to convince someone else? Share this Agile class page along with a personal note.