I never got the hang of UML: overly complicated, hard to understand, too close to code. Hence, I was skeptical about C4 diagrams when I first heard about them. When I saw Simon Brown using them in his talk Modular
Kas makes the setup of a Yocto build environment super simple and super fast. We call kas with a project configuration file: kas-container build ./eu-terminal-distro.yml. Kas starts a Docker container, clones the layer repositories, initialises the Yocto configuration files
In a previous post, I built a basic CI pipeline with CTest that uploaded its results to a CDash board. It worked fine except that we had to start the pipeline manually from the command line. In this post, we
We can use CMake, CTest and CDash to build a basic Continuous Integration (CI) pipeline. The pipeline builds the applications, runs the tests, collects coverage information and uploads all the results to a dashboard on a web server. All this
In her post The five keys to a successful Google team, Julia Rozovsky summarises the recipe for successful teams: "Who is on a team matters less than how the team members interact, structure their work, and view their contributions.
With Team Topologies, Matthew Skelton and Manuel Pais have written a brilliant book how to create a high-performance software development organisation with the best team structure and interaction. Organisations are complex adaptive systems that change as the result of the
CMake uses Graphviz to generate dependency graphs between the targets of a CMake project like libraries and executables. The graphs help us get an idea of the software architecture and identify the dependency hot spots.
Generating Dependency Graphs
My running
I am using TDD to implement a hardware-independent mock QCanBusDevice. We can use MockCanBusDevice in unit, integration and acceptance tests - without access to a hardware CAN bus. A terminal application can also use it in its own process to
When I looked up the publishing date for this book, I was surprised to find out that the book is 11 years old. The content feels as if written today. The authors’ advice is as relevant as ever. I am
Almost all companies I worked with over the last 25 years had an oversupply of non-technical managers and an undersupply of technical experts in leadership positions. These companies build products with less value for the users and take longer to
Although Qt comes with a unit-test framework QuickTest for QML code, hardly any QML GUIs are unit-tested, let alone developed with TDD (test-driven development). One reason is that many developers regard unit tests for GUI code as a waste of
I gave a talk at Meeting Embedded 2021 on 4 November 2021. First, I introduced the hexagonal architecture (a.k.a. ports-and-adapters architecture) in general. Then, I showed a walking skeleton of the architecture for a harvester terminal.
Here is