Have you taken a coaching for ESE

Advantage through quality

Authors: Sebastian Rummler, Dr. Daniel Simon, Axivion GmbH

Contribution - Embedded Software Engineering Congress 2015

This article answers the question of how German and European companies can survive with their products in global competition in the long term. The following facts can be assumed:

  1. Differentiation cannot be based on price, but must be based on innovation and quality.
  2. Today, nothing works in product development without software.
  3. Product quality can be expressed symbolically in a simple formula: Product quality = hardware quality times software quality. In other words, software quality has a direct impact on the overall quality of the product.

The consequence of this is that regardless of whether you see software only as a "necessary evil" or as a driver of innovation, there is no avoiding the "right" approach to software development. This will only succeed if we use the strengths of the proven and unsurpassed engineering discipline in Germany and Europe and transfer them to the development of embedded software. As of today, their proven principles are not yet being used adequately in (embedded) software development. But what makes successful software engineering?

In the following, this article shows some ways in which software engineering as an engineering discipline can be implemented in practice and thus contribute to the overall product success.

Goals and challenges

For companies from high-wage countries, the goal of placing innovative and competitive products on the global market and defending their market position can only be achieved through differentiation based on quality and not on price. Seen globally: Others can do "cheap" better, be it through lower wage costs or by copying and imitating high-quality products from other manufacturers. The decisive properties - which are also difficult to copy - are innovations and high innovation speed paired with reliability, flexibility and adaptability to customer requirements.

So how can companies survive in global competition in the long term? The solution lies initially in using the strengths of Germany and Europe as a location. This includes building on the proven and unsurpassed engineering achievements in all important industries, which make up our position as one of the world's leading industrial nations. The outstanding engineering achievements were and are a decisive unique selling point for European and especially for German companies. Just as in the development of machines and hardware, engineering approaches in the development of software are more than just desirable - they are simply essential to survive in globalized markets. However, especially in the practice of software development in industries with a strong engineering background, the proven methods are not yet adequately transferred to software development. On the contrary, it is often the case in such companies that the topic of software engineering often still leads a shadowy existence.

The development of systems is clearly going in one direction: More and more software is finding its way into classic "hardware" products - nobody can actually do without a certain amount of "soft" control. The first manufacturers have already recognized that software is not only the necessary evil here, but also opens up new possibilities. Product quality can be expressed symbolically in a simple formula: Product quality = hardware quality times software quality. In other words, software quality has a direct impact on the overall quality of the product. The view of the overall quality of a product can be illustrated with the help of Fig. 1 (see PDF).

Here, requirements for the product (both explicit and implicit expectations and additional unknown, future requirements) are compared with the properties. The properties of a typical product include both hardware and software components. For the quality assessment, the known and also the "unknown" properties of a product play a role in the long term.

Solution approaches: systematics, discipline and measurability!

Consequently, the term "software engineering" must be taken seriously in the future. What is engineering (also in software development)? Above all, it is systematics, discipline and measurability!

With engineering specifications, software development must clearly follow the principles of reliability, reproducibility, learnability, rationality and applicability. In many cases, solution approaches to support these principles are already known and, as state of the art, can also be used in the development of embedded software.

The key words to be mentioned here are variant management using software product lines, the use of models such as software architectures as a means of planning and control, identification and use of reusable components, platforms and frameworks.

In the engineering sector in particular, the use of standards is recognized and common. Corresponding specifications are now also available in the software area (e.g. Misra C / C ++, standards such as ISO 26262 or 62304, best practice catalogs ...).

For many repetitive and boring tasks there are suitable tools that machine do what keeps the human intellect of the developer from innovative topics. In view of the continuing shortage of skilled workers, more attention must be paid to automation in software development. In this regard, continuous integration platforms and tools for architecture testing (see Figure 2, PDF) are already state of the art. Refraining from code reviews or performing them without the appropriate code analysis tools inhibits production and is a thing of the past. Just as it is a matter of course for the hardware to check whether the designs have been implemented correctly, in the software development it must also be checked by engineers and proven that the desired properties (e.g. the architectures) are complied with.

For the created artifacts of the software development, for example, with the help of metrics and architecture tests, comprehensible transparency with regard to the quality must be created in order to continuously improve the quality.

Take into account soft factors

In addition to the above-mentioned areas of systematics, discipline and measurability, the "human factor" must also be taken into account in the engineering disciplines: those involved in the project and developers must be "included" in all processes, i.e. not only involved, but also informed and in their personal needs are taken seriously. One solution is to gradually expand the measures. Because when it comes to improving the quality of embedded software, it is always better to start small than to do nothing for fear of possible resistance.

Download article as PDF

Software engineering management - our training & coaching

Do you want to bring yourself up to date with the latest technology?

Then find out more hereto courses / seminars / trainings / workshops and individual coaching from MircoConsult on the subject of software engineering management / process, project and product management.

Training & coaching on other topics in our portfolios can be found here.

Software engineering management - expertise

Valuable specialist knowledge on the subject of software engineering management / process, project and product management is available here ready for you to download free of charge.

To the specialist information

You can find specialist knowledge on other topics in our portfolios here.