Functional safety

Frank Poignée | Günter Herkommer,

Agile development - even for safety projects?

The aim of agile software development methods is to make the development process more flexible and leaner - compared to the classic V-model approach. Are these methods also suitable for functionally safe systems?

© Infoteam Software / Fotolia, Asha Sreenivas

Software development has evolved continuously over the last 50 years. For some years now, terms such as 'agile' or 'scrum' have regularly appeared as a process methodology, and the majority of established development teams now work on this basis in most projects. Above all, agile development methods have an enormous advantage over traditional models: They are particularly well suited to reacting flexibly and quickly to changing requirements. It has also been shown that projects that are created using agile methods have a significantly higher probability of successful completion.

One exception to the use of agile methods is still often many software projects related to functional safety. One of the reasons for this is that the basic standard for such functionally safe systems, IEC 61508, uses the classic V-model to describe the individual development phases. Many guidelines are also based on the V-model. However, software projects in functional safety are becoming increasingly complex, which leads to increased challenges when using the classic process methods. It therefore makes sense to consider whether agile methods can be used in functional safety in order to develop software more flexibly and efficiently.

Advertisement

What does 'agile' mean?

Figure 1: Excerpt from the agile manifesto with highlighted key requirements from IEC 61508.

© Infoteam Software

In the literature, February 2001 is cited as the date on which the 'Agile Manifesto' was formulated as a milestone. The statements made therein refer directly to values that also play a decisive role in the development of functionally secure software (see Figure 1). However, some of these values (shown in red in Figure 1) are slightly weakened in the agile process. This is particularly noticeable in central points such as 'process', 'documentation' and 'plan', which are of the highest importance in the development of functionally safe software. This gives rise to three important key questions:

  • Can agile development manage without the values mentioned on the right?
  • Are projects more successful and customers more satisfied as a result?
  • If both of the formulated partial aspects actually apply, do the requirements of IEC 61508 for the development process of functionally safe software stand in the way of the use of agile methods?

In fact - this much can be said in advance - agile teams do not work without a process either; from a safety perspective, it does not look quite so unsuccessful.

The differences in the process models

In the following, Scrum will serve as an example of the agile process methodology. The Scrum approach is to work empirically, incrementally and iteratively. It is based on the experience that many development projects are too complex to be summarized in a comprehensive plan. This means that a significant proportion of the requirements and solution approaches are often still unclear at the start. This lack of clarity can be eliminated by creating interim results that can be used to subsequently find the missing requirements and solution techniques more efficiently than through an abstract clarification phase.

The V-model, also known as the waterfall model in software development, can be found in the functional safety standards. It is a linear, non-iterative process model that is organized in successive project phases. As with a waterfall, phase results are always used as binding specifications for the next lower phase. Each phase has predefined start and end points with clearly defined results and is only run through once - at least in theory! In fact, there are also so-called 'late requirements' in a safety project. In this respect, something like 'iterations' must also be mastered in the project phases.

Furthermore, IEC 61508 does not necessarily prescribe the use of the V-model as a development process! Tailoring the development process is permitted, and it is usually only convenience that motivates people to specify the V-model as the procedure in the project descriptions. After all, this saves the project managers from having to prove that all objectives and requirements in the life cycle phases are fulfilled in accordance with the standard.

Is there an agile V-model?

Figure 2: Exemplary 'agile' V-model, which provides the requirements and design in a classic 'static' way and interprets and integrates the implementation and testing in an agile way.

© Infoteam Software

When looking at the classic V-model (see Figure 2 in red), it is noticeable that the left-hand side (development) can be approached in parallel with the right-hand side (testing). One way of doing this is to approach both the 'implementation' and 'test/review' phases in the same way as an agile project. But why only from the implementation phase?

Figure 3: Simplified illustration: For the 'iterative' V-model, the requirements packages are created once at the beginning, which later serve as the basis for the individual iteration steps.

© Infoteam Software

The reason for this lies in the risk assessment, which plays a major role in the two previous steps. A 'static' process is therefore the more efficient method for defining the requirements and documenting a system design compared to a (highly) dynamic design, which would be the consequence of changes to the requirements.

Advocates of agile models rightly shake their heads at such an 'agile V-model' and argue that such an approach is not agile, but 'only' iterative. This is because this model ignores an elementary part: the dynamics within the requirements, which is precisely one of the advantages of the agile approach. The 'agile V-model', on the other hand, only defines requirements once as an unchangeable basis for subsequent iterations (Figure 3).

Figure 4: Exemplary model for a safety scrum process: The actual sprint is encapsulated by the activities of safety analysis at the beginning and safety validation at the end.

© Infoteam Software

Given this fact, it might be logical to define a secure Scrum process. This does not look so difficult at first: For each sprint, a new 'safety analysis' activity must first be carried out, followed by the actual sprint and, with 'safety validation', an additional activity as a conclusion (Figure 4).

However, it is only that simple in theory, as this actually results in two overlapping process models for development - and even three if the certification test is taken into account: On the one hand, there is the 'safety analysis', i.e. the consideration of risks. During backlog grooming, entries are created in the product backlog that define the safety requirements for the system. A safety analysis must also be carried out during sprint planning. The reason for this is the entries transferred to the sprint backlog. They create new risks in the system that need to be considered, as the previously created system status is changed and therefore the reference to system risks must be checked by means of change-impact analyses. Finally, a safety analysis must also be carried out in the final sprint review.

In the validation part, entries must also be made in relation to the Scrum process model during 'backlog grooming', which must then be observed and usually carried out or checked during the final sprint review. Similarly, the certification checks also provide tasks that need to be entered into the product backlog and then implemented - i.e. addressed in the daily scrum, the sprint review and the sprint retrospective. This safety assessment should be carried out continuously and in parallel throughout the entire development process so that the resulting feedback can be taken into account as early as possible.

The safety assessment is therefore an independent Scrum process that runs parallel to development and has its own safety-related activities and roles - such as 'assessment owner' and 'assessment backlog'. In view of this necessary approach, the question is justified as to whether a safety scrum process actually fulfills the original motivation of agile development methods in terms of flexibility and "leaner than classic process models".

Incidentally, the Scrum mentioned here as an example is only one of several agile process models. What all models have in common, however, is that they have characteristics that representatives of agile methods would like to have preserved, but which are diametrically opposed to the requirements of functional safety standards or can only be applied with little efficiency in safety projects.

The approach of adopting at least partial aspects from the agile world into the safety process and thus making the development process somewhat more variable and optimized within the scope of possibilities is actually not that difficult. In the 'maintenance and care' process phase, for example, there has always been an iterative approach: 'change management'. A legitimate and standard-compliant approach is to internalize and implement this change management process while development is still ongoing and not yet completed.

Solution: V-model with iterations?

On the one hand, this creates an approximation to agile procedures. On the other hand, such an approach also trains the development teams for the process that they have to live after acceptance/handover/certification.

In summary, it can be said: In a normatively regulated environment, such as the development of functionally safe software, it is indeed difficult to find a process model that represents the exact right solution for all projects. It is important to have extensive experience in dealing with both the requirements of safety standards and the approach of agile development methods, as not all tasks in functional safety can be handled better and more efficiently using agile methods. Nevertheless, successfully completed software projects show that the answer to the question "Agility in safety projects - is it possible?" can definitely be "Yes!".

Author:
Frank Poignée is Consultant Safety and Chief Engineer at Infoteam Software.

  • Xing Icon
  • LinkedIn Icon
Advertisement
Advertisement

You might also be interested in

Advertisement

TSN and OPC UA

The deterministic IIoT

Network and real-time specialist TTTech is working flat out to further optimize its TSN solution for broad rollout - and link it to its growing IIoT platform. An interview with Georg Kroiss, Business Development Manager Industrial.

read more...

Panel PCs

For a wide range of applications

As operating stations, panel PCs are right at the heart of the production process. Depending on the industry, the devices must therefore meet certain minimum requirements - for example with regard to protection class, hygiene and glove operation.

read more...

Cybersecurity

When botnets attack

The fact that IoT systems are very easy to attack has not only been proven by countless live hacks, but also by real botnet attacks. Service access points are proving to be a serious weak point.

read more...
Advertisement
Advertisement

Computer-on-Modules

Real-time for Fog Server

In the age of Industry 4.0, real-time communication between machines and systems and their supply and removal systems is required. Virtualized fog servers in a redundant design are predestined for this. Computer-on-Modules with 10 GbE real-time...

read more...
Advertisement

Flash memory

Robust in production

Flash modules score points for space savings and stability compared to mechanical hard disks. But is data really safe in the event of power failure, vibration and temperature fluctuations?

read more...

AllJoyn

The IIoT alternative

AllJoyn is an open source IoT initiative aimed at the consumer electronics market. The aim is for devices and systems to recognize and interact with each other independently. The first AllJoyn connections for CAN-based products also make the...

read more...
Advertisement
Advertisement
Advertisement

Controls

Controller for the IIOT

National Instruments is now presenting a family of industrial controllers that are predestined for use on 'smart machines' and in intelligent systems for the Industrial Internet of Things. Rahman Jamal, Global Technology & Marketing Director,...

read more...

Rasperry Pi

The new role of single-board computers

The Raspberry Pi was originally developed to get children interested in programming and spark their interest in a job in the electronics industry. But its success has also sparked the creativity of professional engineers, who use the Pi to bring...

read more...

Operating systems

The path to the IoT

The IoT is a challenge for developers: the need to develop, deploy and maintain embedded applications quickly is challenging the tools and methods used to date. A platform concept including an IoT operating system helps engineers to implement and...

read more...
Subscribe to our newsletter
Advertisement
Back to home