The Agile Embedded Podcast

BONUS: Listener Question on Repository Organization

Episode Summary

In this bonus episode, Luca responds to a thoughtful listener question about repository granularity in embedded development projects, particularly in safety-critical industries. The listener describes their approach of using separate repositories for different work products and even considers micro-repositories for different code components. Luca shares his perspective on why this approach makes him uneasy, suggesting it might overcomplicate development processes. He advocates for fewer repositories - ideally a monorepo approach - and explains how configuration management can be handled effectively within a single repository using feature flags, tagging, and CI pipelines. Luca reflects on how his own thinking about repository strategy has evolved over the course of the podcast, moving away from branch-based development toward trunk-based development with appropriate safeguards.

Episode Notes

## Key Topics

 

* [00:30] Introduction to the listener's question about repository granularity in embedded development

* [01:15] The listener's approach: separate repositories for different work products in safety-critical industries

* [03:20] Luca's initial reaction and concerns about over-complication

* [05:45] Discussion of monorepo approaches and configuration management

* [08:10] The concept of micro-repositories and parallels to microservices

* [11:30] Using feature flags and CI pipelines instead of repository separation

 

## Notable Quotes

 

> "You're splitting something which ought to be joined together into different repositories and hiding whatever is happening within the repositories from the different users, from the different developers." — Luca Ingianni

 

> "The risk of course is that you will not spot divergence early enough because people just don't merge because it's a chore and because things might break, and of course that is the point - the earlier you notice that something breaks, the easier it will be to fix it." — Luca Ingianni

 

> "I'm willing to guarantee that you're going to get the architecture wrong at least on the first try. You think you're being really smart and you cut it up into a bunch of microservices or micro-repositories, and you're just going to get the boundaries wrong." — Luca Ingianni

 

> "I would opt for fewer repositories and rather do configuration management within the repositories as opposed to between repositories. Use feature flags, use tagging, use whatever you want to insulate changes that might be breaking from the rest of the code base." — Luca Ingianni

 

## Resources Mentioned

 

* John Taylor's Embedded Project Cookbook - A resource mentioned by the listener that discusses sequential events in embedded projects

* Trunk-Based Development - Development methodology discussed throughout the episode

* Minimum CD Podcast - Previous podcast episode referenced by the listener