TDD for Embedded C
2021-07-28 17:49:11 UTC
Most useful learnings:
The biggest takeaway from the course was a preview into the methodology behind test driven development. The examples provided a simple way to get familiar with the mindset and the process to develop well tested code.
Concepts v exercises:
Presentation v discussion:
Too much discussion
I think there was a lot to cover in the 3 day sessions particularly for those who are not able to dedicate sufficient time to reading/digesting all of the optional material available. I feel like the first day was a great introduction and really conveyed the change in mindset that is required for TDD. The second day increased the complexity of what you can do with TDD and helped provide a preview into all of the tools available. The third day seemed to have become more about going from C to C++ which is useful but I don't think there was enough time to cover it well. I was also hoping to learn more about working with legacy and existing code. The course touched on this but very lightly and certainly difficult to cover in depth in a 3 day course. I think overall the course was very informative and exposed the need to dig deeper in certain areas of interest. It also highlighted the need for a more personalized course
I found the exercises to be adequate for the training content. We struggled a little bit at the beginning to find a good way for people to collaborate. I think screen sharing with one person driving ended up working well. The complexity of the exercises was good and the clues in comments of what needed to be done was fairly easy to follow. The only thing I would change would be to make sure there is sufficient time to work on the exercises during the class and not leave it all as homework
I think James was a great instructor.
I think that if I were developing something from scratch, I could definitely start using TDD. However, the current challenge that we have is how to change the culture of the current team, train them appropriately and formulate a strategy to make the transition to TDD. It is particularly challenging that we deal with a significant level of legacy code
Challenges to applying:
We need to properly train the work force. We need to have a strategy to transition to TDD knowing that we have a large legacy code base that has not been developed under this paradigm. Justifying to the company the price to pay to adopt TDD. I feel like TDD makes initial development slower which is also something that the company needs to get used to
Initially, there was some confusion and misuse of the virtual collaboration environment but I think it eventually worked well. I know there are different levels of prep that people did to become familiar with that environment before the class starts. So perhaps it is good to just do a quick walk through so everyone is on the same page earlier on
Legacy code workshop:
Recommend to others: