Skip to main content

By Christian Skubich and Nico Peter

In 2001, the Manifesto for agile software development [1] laid the foundation for many modern software development processes. Today, 20 years later, agile methods are becoming widespread in many areas. Among participants in the Status Quo (Scaled) Agile 2020 study [2], only 9% still relied on traditional project management methods.

A central element of the agile method is continuous change. This can only work if potential issues with changes are identified as early as possible. For this reason, continuous integration (CI) has become an essential tool in software development. This involves frequent integration of changes and testing with an automated process. Additional steps, such as metrics generation, documentation, or even release delivery, can be part of what is called the CI pipeline.

This method offers many advantages, such as:

  • early identification of integration problems,
  • minimize the time required to identify and correct errors, and
  • Simplified implementation of continuous deployment.

The costs of individual modifications are thus reduced and it is easier to adapt to changing conditions or technical requirements.

Unlike software development, however, CI is not yet an integral part of hardware development processes today. Despite many parallels with software development, so does the digital design of ASICs and FPGAs. There are several reasons for this: CI systems are usually focused on software development since the number of users is significantly higher in this space. At the same time, reliance on commercial EDA software design processes complicates the introduction of CI systems. Whereas in software development, a compiler call generally costs “only” computing time, hardware synthesis requires a (expensive!) license. In the end, it might just be too expensive to do a full synthesis for every code change. When testing hardware designs, computational expenses for simulations are another cost factor alongside licensing costs. The time it takes to walk through a test suite can also be problematic here – after all, integration issues need to be identified as early as possible. Another hurdle that is still commonly encountered in hardware development is GUI-based workflows.

It is essential to coordinate the development process and the CI system in hardware development: test times must be reasonable, tools must be controlled by scripts and workflows must be automatable. Resource management is also required for further testing with physical hardware (e.g., FPGA-based), since hardware can often only be used in one test at a time. Metrics generated to assess project progress, test coverage, or code quality should be prepared and visualized in an informative manner.

Using an IC system in digital design can definitely pay off. Complex processes can be automated and the integration of hardware and software can be regularly tested. Real hardware can even be used for testing, including testing scope that would not be feasible with manual testing. For example, individual changes to the hardware of an SoC can be tested automatically with the associated software on the prototype FPGA. This increases confidence in the quality of development. At the same time, the speed of progress of projects can be measured more accurately: metrics offer employees and project managers greater transparency and provide the data needed to continue the development process.

The references

[1] https://agilemanifesto.org/iso/en/manifesto.html [2] https://www.hs-koblenz.de/en/bpm-labor/status-quo-scaled-agile-2020

Christian Skubich is a member of the Smart Multi-Sensor Systems group of Fraunhofer IIS EAS.

Nico Peter is a member of the Smart Multi-Sensor Systems group at Fraunhofer IIS EAS.

Christian Skubich

(All posts)

Christian Skubich is a member of the Smart Multi-Sensor Systems group of Fraunhofer IIS EAS.

Source link