109: Resurrection of Extreme Programming (Repeat)

Embedded.fm · 12 Oct 2018 · 57m · Episode 109

What this episode covers

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.

Most relevant to

early-stage companies

Topics

Mentioned

Companies
Wingman Software
Products
TDD for Embedded C, Extreme Programming Explained, Training from the Back of the Room!
Tools
CyberDojo, WebEx, Ruby on Rails
Also
AgileDC

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 1h 01m

    James Grenning on TDD

    James Grenning, author of 'Test-Driven Development for Embedded C' and creator of a new self-paced online course, discusses the evolution and practical application of TDD in embedded systems. He explains the ZOMBIE acronym for deriving test cases, the importance of 'tracer bullets' to address project risks early, and why mocking should be used sparingly to avoid brittle tests. Grenning also reflects on the shift from Extreme Programming to Scrum, arguing that the latter often alienates engineers by ignoring core technical practices.

  • The Pragmatic Embedded Podcast · 36m

    Development is Better when it's Test-Driven

    Jeff Gable, an embedded software consultant, explains his practice of Test-Driven Development (TDD) to host Luca Ingianni, arguing that writing failing unit tests before application code forces good architecture and high coverage. Gable details how this discipline decouples embedded application logic from hardware-specific drivers, allowing tests to run on the host machine for rapid feedback rather than slow target flashing. He addresses the common industry resistance to TDD in embedded systems, citing the initial learning curve and the need for coaching, while recommending resources like the 'Throw the Switch' video courses and tools such as Unity, CMock, and Ceedling. The conversation concludes by framing TDD as an artistic craft of storytelling through code, emphasizing that the practice builds confidence and prevents regressions in production-quality software.

  • 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.

  • The Pragmatic Embedded Podcast · 45m

    TDD: The Hard Parts - Getting Started with Test-Driven Development

    Jeff Gable and Luca Ingianni discuss the practical challenges of adopting Test-Driven Development (TDD) in embedded software, specifically addressing the difficulty of starting with a blank screen. They outline a process that begins with decomposing systems into modules, sketching test ideas as bullet points, and writing test outlines in plain English before implementing code. The hosts highlight how LLMs can help overcome the fear of the empty screen but create new traps by generating overwhelming or nonsensical test suites, requiring developers to review test code more thoroughly than production code to ensure it accurately reflects the desired module interface and behavior.

  • The Pragmatic Embedded Podcast · 32m

    The Matthew Test with Matthew Eshleman - Part 2

    Matthew Eshleman, founder of Cove Mountain Software, joins Jeff Gable and Luca Engineer to discuss Part 2 of his 'Matthew Test,' a framework for better embedded software. They cover the balance between upfront design and agile development, the importance of Test-Driven Development (TDD) in C/C++, and the value of investing in high-quality engineering tools. The conversation also addresses hiring practices, realistic scheduling under business constraints, peer code reviews, and the role of dedicated QA teams in preventing bugs.

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.