• Course: TDD for Embedded C
  • Date entered: 2015-02-09 12:27:30 UTC
  • Course rating: Excellent
  • Most useful learnings: The tests I have written to test a small piece of functionality after writing the main code should not be discarded once the tests pass, they can be combined with other tests to create a test suite to ensure future changes do not break the previously tested code. Also, changing to write the tests first before the code provides a much better return on time invested as the tests should catch the bugs before they are introduced, so the time spent hunting for them is reduced to almost 0.
  • Concepts v exercises: Good balance
  • Presentation v discussion: Good balance
  • Course improvements: I was lucky enough to read a couple of chapters of your book ahead of the training, so I feel like I had a slight advantage in the initial exercises over some others who had never even heard of TDD before. I feel like I was more open to the concept after having done some background reading, so if possible, the books could be delivered a little ahead of time. I am aware that this is not always possible, and even if it is, some people just don't have the time to do the background reading, but overall it should help more people.
  • Exercise rating: Excellent
  • Exercise improvements: I lost quite a lot of time due to the quirks of Cyber-Dojo. If it was possible for the editor to behave more like an IDE, it would be great. Simple things such as as tabbing in to the correct level after pressing return, or auto indenting after typing "{" character. I don't expect anything too advanced, but these few small changes would make quite a difference.
  • Instructor comments: James' approach was great. He always seemed very knowledgeable of the subject and was able to answer all of the questions we had. He made watching someone writing code seem interesting and he knows a great deal about other related topics for those of us who have experience of other languages (comparing some of the pointers within structures tricks he used to C++).
  • Better prepared: Much better
  • Start tomorrow: Yes I can. Most of what I work on is legacy code, so taking the time to set up some tests before I start modifying the code is going to be very helpful for me.
  • Challenges to applying: Many of the changes I make to the code are very small, so the amount of code that would need to be refactored before I can write tests for existing code is quite large. Although it is a hassle, it may be more time effective to rerun the manual tests for some code instead.
  • Other comments: I know it was not your fault, but having to stop every 30 minutes for you to log back in to the wifi was quite frustrating, especially as it kicked you out of your presentation. The company should make more effort in this respect, or perhaps have a 3rd wifi network for "trusted guests" with daily access rather than half hourly.
  • Legacy code workshop: Yes
  • Recommend to others: Yes
  • Quote permission: Yes