TDD for Embedded C
2020-01-17 18:33:11 UTC
Most useful learnings:
How to 'mock' peripheral calls in order to implement this for embedded systems
Concepts v exercises:
Not enough exercises
Presentation v discussion:
Too much lecturing, not enough hands-on exercises.
Should allow option to work alone for large assignments (i.e. the 2nd day morning assignment). Everybody works differently and not everyone learns well in a group/pair setting. Also, pair programming is not common in many engineering settings (and I had never heard of it before).
Slides won't be useful resource going forward because there's no organization to them. Would be more useful if it was split up by topic.
More active lectures would be beneficial. The average attention span is only 15 minutes long! During the workshop the demo took too long and wasn't as useful for someone working on a different platform that the person whose code was demo-ed. I didn't feel that I had enough time to ask questions to truly feel comfortable integrating this concept into my embedded systems.
More exercises for actual embedded system implementations (only did one of these before the legacy workshop)
Very knowledgeable on the topic and helpful when answering questions.
Spent too much time repeating the reasons TDD is beneficial--asked us to watch a video before the course that mainly talks about why to do TDD, then spent at least an hour each day revisiting the same concept. Felt like wasted time.
Yes, but not confidently. I still feel uneasy about implementing this in an embedded system. Though I expect the textbook will be a useful tool in figuring this out.
Challenges to applying:
Lots of code reuse--would have to refactor most of the code to get it to be TDD-friendly.
Didn't like being randomly paired for peer programming. I felt like it held me back from thinking through all the possibilities and I didn't get very far in the exercise because of my partner's experience level. I'm an introvert and making an introvert have to interact with a stranger for hours on end is very exhausting and demotivating.
Legacy code workshop:
Recommend to others: