TDD for Embedded C++
2018-09-28 20:49:23 UTC
Most useful learnings:
How to identify (and to have it become instinctive), what code features "need testing". When to stop and think "I've written too much that I haven't tested."
Bonus: Finding out about cyber-dojo and how generally useful it can be.
Concepts v exercises:
Presentation v discussion:
I think it caught some of us by surprise that Dr. Grenning was going to respond to our feedback on the fly, or change his notes/plans on the fly as issues/questions came up. It wasn't in itself a bad thing (and I understand why Dr. Grenning would choose to do it this way), but it was slightly jarring when it didn't meet with our original expectations. So I guess maybe a little more expectation-setting migh t have helped with the experience of the course.
Working with "real-life examples" was difficult to work with as a single mob because it was hard for everyone else other than the immediate developer to grasp the code quickly enough. It was a lot more productive when we worked in small break-out groups on Friday.
Dr. Grenning is extremely willing to engage with us wherever we stand, to the point he changes his lesson plans on the fly as we respond to him. It is clear he cares about teaching his material more than getting paid to do it.
Myself and Trefor Delve have set up a meeting to continue TDD-retrofitting our project, AeroLib4, next Friday. (that isn't tomorrow, but just because we have other projects we have to take care of).
Challenges to applying:
Schedules are often not determined by developers, they are often determined by larger business decisions or senior leadership. Sometimes developers do not have the reputation or credibility with senior leadership to demand more time to apply TDD upfront to save time later. Senior leadership would need to see an example of it working before agreeing to that kind of schedule restructuring.
Cyber-dojo is great. It would be nice if it even had IDE-like features (like tooltips, lookups, etc.) but that's probably asking too much from this focused tool.
Legacy code workshop:
Recommend to others: