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
It depends! If a C++ source file includes the header inside an extern "C" section, the header is compiled as C++. If a C source file includes the header, the header is compiled as C. Hence, the header
Creating an architecture means answering many questions about the ecosystem, in which the Qt embedded system operates. While the questions are very similar for all Qt embedded systems, the answers and their priorities differ. So, you should be able to