Managing Product Variants and Versions

The Pragmatic Embedded Podcast · 17 Aug 2021 · 28m

What this episode covers

Jeff Gable and Luca discuss strategies for managing product variants and versions in embedded software, contrasting trunk-based development with feature flags against the Git-Flow branching model. They highlight the risks of technical and process debt, such as dead code in safety-critical systems and integration hell from long-running branches, using examples like medical prosthetics and consultancy libraries. The hosts advocate for starting with tight integration via trunk-based development and feature flags, only increasing separation into branches or libraries if necessary, to ensure continuous integration and traceability.

Mentioned

Companies
Google
Also
Git-Flow, trunk-based development, feature flags, if-def

Other shows on the same ground, closest first.

  • Embedded.fm · 1h 24m

    250: Yolo Snarf (Repeat)

    Chris Svec, a senior principal software engineer at iRobot, joins the Embedded.fm hosts to discuss the critical importance of version control in professional software development. They use a D&D-style scenario to explain how to evangelize version control to different stakeholders, including interns, managers, and electrical engineers, highlighting benefits like history tracking, rollback capabilities, and release management. The conversation covers practical aspects of using systems like Git and SVN, including branching strategies, commit messages, and the differences between centralized and distributed version control.

  • The Amp Hour · 1h 19m

    Firmware for Hardware Engineers with Phillip Johnston

    Phillip Johnston of Embedded Artistry explains how hardware engineers can improve firmware quality by adopting software engineering practices like separation of concerns, information hiding, and loose coupling. He details the implementation of Continuous Integration (CI) pipelines using tools like Jenkins and GitHub Actions to automate testing, static analysis, and hardware-in-the-loop checks. Johnston also discusses the strategic shift from bare-metal development to ecosystems like Zephyr RTOS and the importance of designing for change to mitigate supply chain risks.

  • Embedded.fm · 1h 05m

    53: Being a Grownup Engineer (Repeat)

    Jack Ganssle, author of 'The Art of Designing Embedded Systems' and 'The Embedded Systems Dictionary', argues that embedded software development has failed to adopt true engineering discipline, relying on 'heroics' rather than process. He cites the Toyota unintended acceleration case, where Michael Barr identified 11,000 global variables, as evidence of the catastrophic costs of poor software practices. Ganssle advocates for rigorous requirements gathering, static analysis tools like LDRA and Spark, and metrics-driven benchmarking to reduce debugging time and improve code quality. He contrasts this disciplined approach with the 'hacker' and 'maker' cultures, emphasizing that safety-critical systems require proven processes rather than ad-hoc coding.

  • Embedded.fm · 53m

    16: Democracy Is the Worst Form of Government

    Curtis Cole, a veteran embedded systems engineer and former VP of Engineering at Leapfrog, argues that Agile methodologies like Scrum and Test-Driven Development (TDD) are effective for embedded software when adapted to hardware constraints. He explains how user stories, sprints, and story points allow teams to manage unknown requirements and deliver incremental, usable prototypes without compromising the final product's stability. Cole emphasizes that Agile is merely a process tool; success depends on hiring skilled engineers who prioritize quality, testing, and modular design over mere speed.

  • Embedded.fm · 1h 23m

    440: Condemned to Being Perfect

    Elecia White and Chris White host a crossover episode with Jeff Gable and Luca Ingianni of the Agile Embedded podcast to debate the application of Agile principles to embedded systems. The group discusses redefining Agile as 'risk management through feedback loops' rather than rigid Scrum, and explores the challenges of scaling these practices in large enterprises versus small teams. They also tackle specific technical debates, including the role of unit testing, the definition of Minimum Viable Products (MVPs) for hardware, and the necessity of documentation in regulated industries like medical devices.

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.