• Course: TDD for Embedded C
  • Date entered: 2015-01-22 15:22:21 UTC
  • Course rating: Excellent
  • Most useful learnings: I have already been practicing TDD on my own, but I learned that my cadence is a little too long, with too many changes at once. I also got a lot out of the flash driver exercise - I can now see how to apply that to some problems I have to solve in the very short term.
  • Concepts v exercises: Good balance
  • Presentation v discussion: Good balance
  • Course improvements: It felt like we were trying to pack too much material into the allotted time. I was able to keep up due to my experience, but I saw two beginners struggling to keep up, and eventually they were lost to the point that they were in the room but working on other things (on the second day). I plan to work with them as much as I can. Before this class, I didn't have as good a grasp of their programming experience as I thought. It might be a good idea to have a separate beginner class and master class. You could delegate the beginner class to someone else potentially. Also, it was necessary to keep the audio muted most of the time, which hindered discussion because it required an extra action of un-muting the audio before speaking each time.
  • Exercise rating: Excellent
  • Exercise improvements: If you were to start out pairing participants together (which could be a challenge due to technology limitations), that might help. I was impressed with cyber-dojo overall, but the editor could be better, as you mentioned. Also, if there were a way to pair two animals together within cyber-dojo, with a built-in IM feature, that could facilitate pairing in the exercises. The content of the exercises themselves is nearly perfect, in my opinion.
  • Instructor comments: In a word, outstanding.
  • Better prepared: Bring it on!
  • Start tomorrow: One thing I am missing is setting up the test framework and build process to incorporate into my current project. I can start building that today and then get started in the cadence. Hopefully that is something I can accomplish in a day or less.
  • Challenges to applying: It helps that there is another agile team working on web apps - that means there is management support for the process. Being the only purely software guy in my group, I have the freedom to implement this for myself. My main challenge is persuading others to also do it. Also, other tools besides C/C++ are used to create behavior. For example LabView and vendor-specific ladder logic tools. I also need to find ways to implement a TDD cadence for these environments, or find a way to transition away from them.
  • Other comments: To some degree, I was responsible for learning and teaching at the same time. I'm glad others were taking the class with me, but if I had to do it over again I might have taken the class by myself and then suggested others to take it in the next round. I wasn't sure when the next opportunity would be, though, so given the information I had, I think I made the best possible choice I could make at the time.
  • Legacy code workshop: No
  • Recommend to others: Yes
  • Quote permission: Yes