183: Robots Having Nervous Breakdowns

Embedded.fm · 11 Jan 2017 · 1h 08m

What this episode covers

Professor Philip Koopman of Carnegie Mellon University and co-founder of Edge Case Research discusses the critical importance of formal peer reviews in embedded software development. He argues that while informal reviews are insufficient, structured Fagan-style inspections find the majority of bugs for a fraction of the total project cost, effectively making high quality 'free' by preventing expensive late-stage fixes. Koopman explains that cultural resistance often stems from a misunderstanding of progress, where managers equate 'code complete' with actual completion, leading to dangerous shortcuts in safety-critical and mission-critical systems.

Mentioned

Companies
Edge Case Research, Harris Semiconductor, United Technologies
Products
Better Embedded Software, Vintage Aero
Chips
RTX 4000
Tools
Code Warrior
Also
Carnegie Mellon University

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 42m

    Code Reviews

    Jeff Gable and Luca discuss the purpose, process, and culture of code reviews in embedded software development. They argue that reviews are primarily for knowledge transfer, shared understanding, and mentoring rather than just bug detection, warning against 'bike shedding' on trivial syntax issues. The hosts advocate for early design reviews, small atomic commits, and empathetic communication to maintain team cohesion and prevent bottlenecks.

  • The Pragmatic Embedded Podcast · 39m

    Christmas Special

    Hosts Jeff Gable and Luca share war stories from their careers in embedded systems, highlighting the pain of manual testing in helicopter avionics, the chaos of managing requirements with Word and Excel in Dropbox for medical devices, and the technical debt of massive #ifdef blocks in legacy machine tool software. They discuss the industry's slow adoption of modern software practices like version control and CI/CD, contrasting embedded development with web development standards. The episode concludes with book recommendations including 'The Phoenix Project' and 'Team Topologies', and reflections on the future of IoT security and agile adoption in hardware.

  • Oxide and Friends · 1h 30m

    On Code Review

    Bryan Cantrill, Adam Leventhal, and Kendall Morgan discuss the nuances of code review, contrasting modern digital tools with historical in-person practices at Sun Microsystems. They share specific war stories, including a DTrace integration bug caused by removing a single interrupt line and an n^3 algorithm in SCSI target code, to illustrate the importance of context and scale. The group debates the value of empathy, tooling choices like GitHub and Gerrit, and strategies for introducing code review cultures in organizations that resist them.

    8 chapters
  • The Pragmatic Embedded Podcast · 33m

    Technical Debt in Embedded Systems Development

    Jeff Gable and Luca engineer discuss technical debt in embedded systems, defining it as trading present velocity for future maintainability. They identify specific forms of debt, including poor hardware abstraction, untracked hardware revisions, and the lack of automated testing. The hosts argue that while prototyping may justify debt, safety-critical products require rigorous refactoring and visible tracking of these issues to avoid slowing down development teams.

  • The Pragmatic Embedded Podcast · 53m

    François Baldassari from Memfault on IoT Observability

    François Baldassari, founder and CEO of Memfault, discusses the evolution of embedded software and the critical need for IoT observability tools. He recounts his experience at Pebble, where a lack of field data led to a severe firmware update bug affecting Android users, which inspired the creation of Memfault's crash reporting and OTA solutions. Baldassari argues that modern embedded teams must adopt agile practices, such as decoupling software from hardware via emulators and implementing 'day 0 updates,' to iterate effectively. He highlights persistent industry challenges, including C language memory management issues, code space constraints, and the emerging crisis of embedded security and privacy.

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