‘Desempotrando’ sistemas embebidos con TDD en la Embo++2022 (2ª iteración)

El desarrollo iterativo e incremental no solo aplica a nuestras soluciones basadas en software. Deberíamos aplicarlo también a nuestros pensamientos e ideas, así como a nuestra menera de aprender y comunicar todo ello.

Después de la 1ª versión de esta charla en la First International TDD Conference, recopilé todo el feedback que pude. Basándome en dicha información y tras analizar las partes de la misma con las que no estaba demasiado contento, decidí que tenía que trabajar en una segunda versión, con suerte mejorada, de la charla.


Thierry de Pauw encontró la primera versión de la charla y comentó sus impresiones en twitter.
 Me animó a presentarla en otras conferencias, señalándome algunas opciones. Tal y como sucedió con la primera versión, quería que la charla estuviese disponible públicamente, esto es, buscaba una conferencia donde la asistencia fuese gratuita o, como mínimo, en la que las charlas quedaran disponibles para ser vistas por cualquier persona a posteriori. Además, dada mi situación familiar con el reciente nacimiento de Júlia, debía ser una conferencia 100% online.


Busqué en internet y pregunté en twitter. Fué Markus Tacker quien me habló de la Embo++: un ecosistema donde desarrolladores de embebidos comparten su pasión, conocimientos y aproximaciones para resolver muchos de los problemas que todos encontramos en nuestro día a día. Eché un vistazo a las ediciones previas y encontré charlas realmente interesantes en su canal de Youtube. Me decidí a probar suerte e inscribí la charla en su Call For Speakers.

La aceptaron y tuve la oportunidad de compartirla en vivo con los asistentes a la Embo++2022, el pasado mes de marzo. Los colegas de la Embo++ la acaban de publicar en su canal, cuyo link podéis encontrar más abajo. Si estás interesado en la charla, te recomiendo esta 2ª versión. Estas son las principales diferencias con respecto a su predecesora:

  • El ritmo es ligeramente más lento que en la anterior. Si bien todavía es un Allegro, en este caso podríamos decir ma non troppo. Intenté ir un poco más calmado haciendo uso de los 10 minutos de duración extra.

  • Re-enfatizo como de inadecuado resulta utilizar el Hardware dentro del bucle de feedback de nuestro proceso de desarrollo de software. Además de ser extremadamente lento, resulta realmente difíficl de reproducir y mucho más caro el intentar gobernar eventos relacionados con el Hardware Gateway (principalmente cambios en bits de los SFRs) intentando gobernar cualquier ecuación de Maxwell que con dobles de prueba adecuados

  • Relacionado con lo anterior, intento dar una explicación más profunda sobre los problemas asociados al cuello de botella del Hardware, poniendo especial énfasis en los comportamientos no comprobados, el antipatrón 'The Liar', y como este aparece debido a la falta de feedback sobre la complejidad innecesaria añadida durante el desarrollo del código de producción cuando se siguen aproximaciones de desarrollo basadas en Test-Later

  • Explico la desventaja competitiva que se esconde detrás de la Trampa del Fabricante (Vendor's trap). Deberíamos ser lo suficientemente Ágiles como para migrar nuestras soluciones a diferentes plataformas con un esfuerzo nulo o muy bajo si queremos hacer frente con garantías a las incertidumbres actuales y futuras de un mercado cada vez más cambiante.

  • Mejor explicación sobre las relaciones entre Red-Green-Refactor y las fases de Make-It-Work / Make-It-Right, el Aseguramiento de la Calidad Externa y su relación con la Calidad Interna.

  • Expliación más extensa sobre como Mutation Testing puede ayudar a detectar bugs, usando de nuevo el ejemplo del sistema TempController que vemos en mi curso.

  • Nuevos ejemplos de código de test, tanto a nivel de Aplicación como a nivel de IC Drivers. Dichos tests se muestran en diferentes momentos de su implementación, monstrándolos con fallos sobre dependencias incorrectamente manejadas y el  por qué y cómo deberían acabar siendo después de las refactorizaciones necesarias.

Las transparencias de la charla pueden descargarse desde slideshare

Con todo, siempre hay margen de mejora. En caso de que haya una 3ª iteración, posiblemente ésta ya sea en el idioma de Cervantes.