TDD for C++
2018-11-29 21:51:02 UTC
Most useful learnings:
Exposure to the mocking framework was useful, as was the discussion on when to or not to use it.
Concepts v exercises:
Too many exercises
Presentation v discussion:
The first exercise is much too direction-based as it drives toward a particular implementation to demonstrate the methodology, and thus loses some of the lesson (which is realized early on in an over 2 hour exercise).
This exercise (or at least a lot of the initial steps) might be much more effective if delivered as an interactive demo (focusing on concepts not code, so a well prepared demo is ideal to reduce time spent fixing code) where the class is walked through the steps while discussing the TDD concepts with insights into "why", while also allowing for questions. This would also provide the perfect opportunity to present the "make it fail" idea in a teaching environment (versus a lab environment).
The first two exercises should be much shorter (the third exercise for example was better time boxed).
I enjoyed the class particularly when James talked about his experiences and how TDD has helped him on various projects, and that kind of sharing of experience is a great teaching tool.
The "make it fail" often lead to various struggles during the exercises, and the TDD concern survey recap could have used a more positive approach: leaning on experiences (as noted earlier) would be a far more effective way to discuss the presented concerns.
Challenges to applying:
Working on a legacy code base requires some pre-planning on how best to begin (how to safely refactor or will mocks be used for example are questions to answer first).
It felt as though it could have been much shorter: Day 1 and Day 2 overlap a lot. Altering the delivery of the first exercise and reducing the lengths (a few short 10-20min problems versus 2 multi-hour labs) could potentially reduce the material for Day 1 and 2 to a single day.
Legacy code workshop:
Recommend to others:
Only if improved