DisroopEmbeddedHipster is a showcase project that demonstrates how a fast and scalable “embedded software development process” can be achieved through automation and reproducibility. Especially in current days where teams work remotely and the demand for embedded products increases, having a straightforward development process and a reliable development environment setup is crucial.

Motivation

Every software project wants to deliver maintainable software of high quality with high speed. Modern software development practices like automated testing, continuous integration, and proper tooling can help developers achieve that goal. We observe that modern software practices are not the standard in embedded software development and that embedded software engineers solve a lot of toolchain problems instead of domain problems. We want to change that and enable embedded software engineers to focus on issues that bring business value and deliver high-quality, maintainable software in time.

Fast and scalable

The scarcity of developer resources to deliver fast and high quality is common in most projects these days. The only way to master this is to automate recurring tasks, make work transparent, create an infrastructure that enables the project team to ramp up new developers and continuously check if the current product state is up to the company standards.

Solutions for those four aspects are demonstrated in the DisroopEmbeddedHipster project and enable the project to deliver quickly and scale.

Reproducibility

Another significant advantage of the DisroopEmbeddedHipster project setup is the reproducibility of the development environment and its artifacts (executable, libraries, analysis result, test results, and many more). The ability to spin up identical development environments within seconds on the build server and developer machines brings crucial advantages that are only possible when the development environment is versioned and reproducible. The advantages are:

  • A fast ramp-up of new developers
  • A common development base for all developers leads to better communication
  • Switch between projects with different toolchains in seconds
  • Build issues on the build server can be reproduced locally and on the developer’s machine
  • ...

As demonstrated in the following diagram, the DisroopEmbeddedHipster uses tools like docker, VS Code, conan, and CMake to create a reproducible isolated development environment with the option of remote debugging, which can be crucial these days where home office becomes the new standard.

DisroopEmbeddedHipster Concept

Experience

Thanks to this setup and modern software practices, we were already able to help software projects focus more on domain problems, generate better communication between teams, destroy silos through standardisation of the development toolchain. In the end, we enabled project teams to deliver fast, highly maintainable software.

If you are interested to see more about the DisroopEmbeddedHipster, please contact us at embeddedhipster@disroop.ch. We are happy to help you to improve your embedded development process.

About the authors

Michel Meyer is over 10 years a software and DevOps engineer by heart and has experience in multiple industries, from defence, security to the medical industries. Besides his software engineering skillset, he led workshops for engineers and C-Level executives to define future company technology strategies.

Stefan Eicher has 15 years of experience in software development in different areas ranging from web frontend, Database, Backend, Mobile, and Embedded development. He is a general Software Development and Automation enthusiast.