‘Unembedding’ embedded systems with TDD at Embo++2022 conference (2nd Iteration)

Iterative and incremental development not only applies to our software based solutions. We should also apply it to our thoughts, our learning and how we try to communicate them all.

After the 1st version of this talk in the First International TDD Conference, I tried to get as much feedback as I could about it. From that information and also after analyzing the parts I was not so happy with, I decided I had to work on a 2nd, hopefully improved, extended version of the talk.


Thierry de Pauw found my talk and commented his impressions about it 
in twitter. He encouraged me to share it in other conferences and pointed me several options. I felt energized enough to do it again. As in the previous version, I wanted the talk to be public available, that is, I wanted to share it in a conference where the assistance was free or, at least, in one in which the talks will be openly available in streaming to everyone interested later on. Additionally, due to my family situation with my new born baby, Júlia, it must be an online conference.


I searched and asked on twitter. It was Markus Tacker who pointed me to the Embo++: a learning and sharing ecosystem where passionate embedded developers share their thoughts and approaches to solve the problems we all live in. I took a look at all the previous editions and I found really good talks in their open Youtube channel. I decided to enroll the talk in their Call For Speakers.

The talk was accepted and I had the chance to share it in remote live with all the assistants to the Embo++2022 conference past March 2022. Embo++ folks have already released it in their channel and is available from the link below. If you are interested in the talk, I recommend you to go for this 2nd version. Here are the major differences from the 1st version:

  • The rhythm is a little bit slower than in the previous version. It is still Allegro, but in this case, I could say ma non troppo. I tried to slow me down a little bit using part of the extra 10 minutes duration

  • I tried to re-emphasize how inadequate is using the Hardware inside our software development feedback loop. Additionally to being slow, trying to rule the Hardware Gateway related events (mainly from SFRs bits) by means of dealing with Maxwell's laws is also difficult to reproduce and expensive.

  • On top of the previous, I tried to add a deeper explanation about the Hardware Bottleneck associated issues, putting special emphasis into untested behaviors, The Liar anti-pattern, and how it arises due to the lack of feedback about the unnecessary complexity we have been building-up during development when Test-Later approaches are followed

  • Explained the competitive disadvantage that hides behind neglecting the Vendor's trap. We should better be Agile enough to change our solutions to different platform with low to no effort in order to face current and future market uncertainties

  • Improved explanation about the relationship between Red-Green-Refactor and the Make-It-Work / Make-It-Right, External Quality assurance and Internal Quality

  • Explanation about how Mutation Testing can help to detect latent bugs, using again the TempController system example shown in my course

  • Test code examples both at Application as well as IC Drivers level. They are shown at different moments of their implementation, showing them with some dependency flaws and why and how should they end up after the necessary refactoring.

Talk slides are available in slideshare