TDD for Embedded C/C++
2023-01-26 19:41:58 UTC
Most useful learnings:
How to slow down and not try to solve every problem at once! Ways to isolate and test specific functionality without having to go through a time-consuming build process.
Concepts v exercises:
Presentation v discussion:
I don't think it can be improved past this point. Paraphrasing James, I don't think that the course should be designed to convince naysayers that they should embrace TDD. The combination of the lectures, videos, and exercises leads you to your own conclusions on whether TDD would be right for your project at its current stage; I think that many people will find value in TDD as they are gradually exposed to its concepts.
More consistency between the instructions for each exercise and the instructional comments within each exercise codebase. Led to some minor confusion a couple of times.
Knowledgeable and amiable. Quite refreshing to have an instructor who is not only able to answer most of your questions, but also provide the correct level of details to be able to ask them.
Probably not. Our code base is pretty far along and needs to be completed sooner rather than later. I am not sure if the benefits of TDD would be recognized by other members of the product team given they already think the process is slow.
Challenges to applying:
I believe that all employees, not just software engineers, could be convinced of the benefits of TDD when applied to a brand-new or future product. I'm concerned that slowing development down (even with the promise of saving time in the future) would be unpalatable to many employees working on a preexisting product.
The legacy code workshop was quite interesting. Even though we didn't get as much done on the testing side as we had hoped, the workshop proved to be an invaluable experience where I learned a ton about how to correctly approach TDD, as well as the benefits of Docker.
Legacy code workshop:
Recommend to others: