Continuous Delivery with Jonathan Hall

The Pragmatic Embedded Podcast · 7 Mar 2023 · 1h 03m

What this episode covers

Jonathan Hall, author of Minimum Viable CD, explains his methodology for implementing continuous delivery in reverse, starting with automated deployment and moving testing before the merge button rather than building tests first. He argues that this approach exposes bottlenecks in manual testing processes and forces teams to streamline validation, particularly in regulated industries like medical devices where trust in automation is often lacking. The discussion covers the cultural shift required to move QA responsibilities to developers, the benefits of Test-Driven Development (TDD) for code architecture, and how to handle legacy code and regulatory compliance.

Mentioned

Companies
Waymo, Tesla, Toyota
Tools
Jenkins, GitHub Actions, GitLab
Also
Minimum Viable CD, lean cd bootcamp, jhall.io, Agile Embedded Podcast, Embedded AI Podcast, FDA, Martin Fowler, State of DevOps Report, Accelerate Book, Chat GPT

Other shows on the same ground, closest first.

  • The Amp Hour · 1h 20m

    Firmware Deployment and Troubleshooting with Akbar Dhanaliwala

    Chris Gammell, founder of Lager Data, explains how his experiences with companies like SolarCity, Ringly, and Minna Life revealed the tedious nature of embedded firmware testing, inspiring the creation of the Lager Gateway platform. He details how the system enables continuous integration and deployment (CI/CD) for embedded devices by allowing engineers to run unit and system tests, flash firmware, and debug remotely from a command line without physical lab access. Gammell highlights the use of Dockerized build environments and integration with GitHub Actions to automate testing, ensuring that changes to firmware do not break device functionality or over-the-air update capabilities.

  • Embedded.fm · 57m

    30: Eventually Lightning Strikes (Repeat)

    James Grenning, author of 'Test-Driven Development for Embedded C' and founder of Renaissance Software, explains how Test-Driven Development (TDD) improves embedded software engineering by enabling developers to write portable, modular code before hardware is available. He argues that TDD forces early design decisions, such as modularity and interface segregation, which reduces integration bugs and allows engineers to test logic on a PC rather than waiting for target hardware. Grenning also discusses his teaching methodology, emphasizing that engineers should experience TDD themselves to understand its value in reducing late-stage debugging and managing legacy code.

  • Embedded.fm · 57m

    109: Resurrection of Extreme Programming (Repeat)

    James Grenning, founder of Wingman Software and author of 'TDD for Embedded C', discusses the resurgence of Extreme Programming and Test-Driven Development (TDD) for embedded engineers. He explains how TDD prevents bugs and improves code quality, contrasting it with the micromanagement often associated with modern Scrum. Grenning also details his methods for teaching TDD, including the use of CyberDojo for remote training and 'Training from the Back of the Room' techniques to engage students.

  • Embedded.fm · 1h 07m

    500: Nerding Out About the Ducks

    Komathi Sundaram, a principal test engineer at Cruise, discusses her career transition from software development to embedded testing and her philosophy on automation. She details the architecture of hardware-in-the-loop (HIL) test benches, explaining how to orchestrate real-world scenarios like NFC taps and audio loops for devices under test. Sundaram emphasizes the importance of continuous integration, using Docker for environment consistency, and designing 'brick test beds' to safely allow developers to break systems during innovation.

  • Embedded.fm · 1h 10m

    270: Broccoli Is Good Too

    James Grenning, author of 'Test Driven Development for Embedded C' and founder of Wingman Software, discusses the philosophy and practice of Test Driven Development (TDD) for embedded systems. He explains how TDD reduces debugging time by enforcing small, verifiable steps and using techniques like 'ZOMBIES' to defer complex decisions. Grenning also shares insights from a recent side project involving a Synapse Wireless mesh network for industrial water pressure monitoring, illustrating how to handle hardware uncertainty through experimentation and loose coupling.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by The Pragmatic Embedded Podcast. The episode itself belongs to its publisher.