Programmierrichtlinien

Programmierrichtlinien – Fluch oder Segen?

In Vorträgen, Artikeln und Büchern wird immer darauf hingewiesen, dass die Qualität des Codes ein entscheidender Faktor für den Erfolg des Projektes ist. Deshalb wird immer wieder versucht, Regularien einzuführen, die die Codequalität verbessern. Doch der Code, der von vielen Entwicklern abgeliefert wird, sieht alles andere als schön aus. Ein Ansatz, um die Qualität des Codes zu sichern, ist das Verwenden von Programmierrichtlinien.

Über den Sinn und Unsinn von Coding Guidelines

Viele Firmen haben eigene Richtlinien, wie der Code ihrer Embedded-Projekte auszusehen hat. Doch wenn es drauf ankommt, entscheidet meist jeder Entwickler für sich selbst, wie er den Code schreibt. Vorstöße einzelner Kollegen, etwas zu verbessern oder einheitlich zu arbeiten, sind kaum von Erfolg gekrönt. Denn dann müsste man unter Umständen seine Arbeitsweise ändern – und das kostet Zeit und gefährdet vielleicht den termingerechten Projektabschluss.

Dann gibt es auch die  Firmen, die zwar Richtlinien haben, aber derer zu viele. Das schafft oft Unsicherheit, da bei zu vielen (sich eventuell widersprechenden) Regeln niemand weiß, an was er sich denn zu halten hat. Also macht doch wieder jeder „seins“.

Welche Gründe stehen hinter Programmierrichtlinien?

Oft gibt es klare Regeln, die jedoch viel zu weit gehen und den Entwickler in seiner Kreativität stark einschränken. Vermeintlich unsichere Konstrukte werden verboten, um die Sicherheit des Codes zu erhöhen. Zusätzlich verhindern diese strengen Regeln, dass moderne Programmiertechniken eingesetzt werden – mitunter wird der Code aktuellen Anforderungen nicht gerecht, was die Sicherheit wiederum senkt.

Um das Richtlinien-Dilemma besser zu verstehen, muss man sich die Gründe für die Einführung von Programmierrichtlinien vor Augen halten:

Variante 1:
Die Regeln sollen helfen, eine Codebasis zu schaffen, in der sich jeder Entwickler zurechtfindet. Der Code ist gut strukturiert und einfach zu lesen. Die Zusammenarbeit der einzelnen Teammitglieder soll reibungslos funktionieren.

Programmierrichtlinien

Programmierrichtlinien

Variante 2:
Es wird ein strenges Regelwerk geschaffen, das alle als kritisch eingestuften Konstrukte verbietet, in dem Glauben, dass jeder Mitarbeiter im Projekt auch gut programmieren kann. Wird Know-how durch Regeln ersetzt, kann die Entwicklung effektiver und kostengünstiger in Billiglohnländer ausgelagert werden.

Programmierrichtlinien

Programmierrichtlinien

In Wissensvermittlung und Grundlagen investieren

Variante 2 wird wahrscheinlich nicht funktionieren – Know-how lässt sich nicht durch Regeln ersetzen. Probleme in der Softwareentwicklung sind nicht die Folge von zu wenigen Regeln, sondern von zu wenig Kenntnis. Das Hauptproblem besteht darin, dass die Komplexität von Software in den klassischen Industriezweigen unterschätzt wird.

Das Management vertritt häufig die Meinung, was nichts wiegt, ist nichts wert. Dementsprechend wird viel zu wenig in die Grundlagen investiert. Ingenieure bekommen eine Entwicklungsumgebung vorgesetzt, ohne die Grundlagen richtig erlernt zu haben. Deshalb muss vor jeder Regel erst einmal eine sorgfältige Wissensvermittlung stattfinden. Das klingt teuer, ist aber in der Summe die kostengünstige Lösung.

Programmierrichtlinien können eine fundierte Ausbildung nicht ersetzen. Sie sind eine Ergänzung, um die Teamarbeit zu verbessern.

Ein weiterer wichtiger Punkt ist die Motivation der Entwickler. Wenn der Sinn hinter den Regeln nicht klar vermittelt wird, wird es immer auch Verstöße geben. Im Endeffekt sollte der Entwickler der Hauptnutznießer der Regeln sein. Andernfalls haben die Regeln ihren Sinn verfehlt und werden nicht akzeptiert.

Zudem sollte die Menge der Regeln überschaubar sein (z.B. Vorder- und Rückseite eines A4-Blattes). In den wenigsten Fällen arbeitet ein Programmierer sich durch ein umfangreiches Regelwerk. Regeln, die die Formatierung des Codes betreffen, müssen automatisch geprüft werden. Ein Check-in darf mit Regelverstoß nicht möglich sein.

Fazit 1:
Programmierregeln können das Projekt nicht retten.

Fazit 2:
Ohne ausreichende Ausbildung und Know-how der Entwickler werden auch die besten Regeln nichts retten können.

Fazit 3:
Auf wenige, aber sinnvolle Regeln beschränken.

Nutzen Sie das Know-how aus unseren Trainings, und lernen Sie, wie Sie die Codequalität effizient und nachhaltig verbessern.

Weiterführende Informationen

MicroConsult Training & Coaching: Embedded-Programmierung

MicroConsult Training & Coaching: Embedded- & Echtzeit-Softwareentwicklung

MicroConsult Fachwissen: Embedded-Softwareentwicklung

MicroConsult Fachwissen: Softwarequalität


Bilder:
Im Text: Frank Listing; Beitragsbild: Adobe Stock

Veröffentlicht von

Frank Listing

Frank Listing

Seit 2002 ist Frank Listing Trainer und Projektcoach bei MicroConsult; seine Schwerpunkte sind Microsoft-Plattformen, Software-Architekturen, objektorientierte Programmierung und Testen von Embedded-Systemen. Außerdem ist er Spezialist für die Themen C++, C#, Finite State Machines, Clean Code und .NET. Sein Wissen gibt er regelmäßig in Publikationen und Fachvorträgen z.B. auf dem Embedded Software Engineering (ESE) Kongress weiter.