Vermeidung von Programmierfehlern in großen Unternehmen

S

Salzgitter94

Gast
Hallo,
was ist in einem Softwareunternehmen die wichtigste Maßnahme, um Programmierfehler zu verhindern?
Mir ist bewusst, dass es unterschiedliche Arten von Programmierfehlern gibt (Auflistung unter https://de.wikipedia.org/wiki/Programmfehler#Vermeidung_und_Behebung_von_Programmfehlern). Was ich mich frage ist, was die grundlegenste Maßnahme ist bzw. die Maßnahme mit der größten Wirkung, um die Anzahl von Programmierfehlern zu verhindern.
Ist es der Einsatz von Frameworks wie Scrum oder Prinz2, um ein Softwareprojekt ordentlich abzuwickeln? Soweit ist das meine Vermutung (man geht jetzt auch mal davon aus, dass die Programmierer entsprechend der Programmiersprache mächtig sind).

Für einige mag die Frage hier dumm vorkommen oder mir sagen, ich solle Googeln. Aber ich bin fremd in der Materie und habe die letzte Zeit schon viel quergelesen und müsste meine Vermutung bestätigt bekommen. Seitenempfehlungen wie http://www.igfd.org/ und weitere Trollversuche daher bitte unterlassen und nur auf meine Frage antworten, sofern sie mir hilft. Vielen Dank.
 
Die grundlegendste Maßnahme zur Vermeidung von Softwarefehlern? Ich sehe da spontan mehrere Maßnahmen:

1) Agiles Vorgehen (z. B. Scrum), bei dem der Auftraggeber in kurzen Zyklen (z. B. alle 2 Wochen) den aktuellen Stand der Software zu Gesicht bekommt und ausprobieren kann und die Ziele für die nächsten 2 Wochen festlegt. Letztlich ist das das Wichtigste, dass der Kunde zufrieden ist sowie schnell und regelmäßig die aktuelle Entwicklung beurteilen kann.

2) Sinnvolle Tests zur Software, die begleitend geschrieben werden (sowohl Modul-/Unittests) als auch Integrationstests. Perfekt wäre es natürlich, wenn zusammen mit dem Kunden Akzeptanztests formuliert werden könnten und ständig gegen das System gefahren werden.

3) Continous Integration (d.h. Bauen der Software und Ausführen der zugehörigen Tests) jede Nacht bzw. nach jedem Checkin eines Entwicklers in Verbindung mit einer Testausführung und statischen Codeanalyse (z. B. Sonar).
 
Die Projektmanagementmethoden haben keine Auswirkung auf Programmierfehler. Allerdings beeinflussen sie den Entwicklungsprozeß und können für Falschentwicklungen (am Bedarf vorbei) verantwortlich sein.

Programmierfehler zu minimieren ist die Aufgabe der eingesetzten Entwicklungstools und der Wartbarkeit des Codes.
Komplizierte und verklausulierte Programmstrukturen sollte man vermeiden (leider beliebt bei C und Java Programmierern) und der Code muß ausreichend segmentiert und kommentiert sein.
Dann können Änderungen und Fehlerbeseitigungen leichter durchgeführt werden.
 
Die entscheidenden Schlagworte:

  1. Testautomatisierung (Modultests, Integrationstests, Schnittstellentests, Oberflächentest, Lasttests etc.)
  2. Code Reviews
  3. Continuous Integration
  4. Continuous Delivery
  5. Test driven development

Agile Vorgehen wie Scrum können den Entwicklungsprozess einfach und angenehmer gestalten. Aber egal welches Vorgehensmodell du anwendest, du kannst mit allen katastrophale Software entwickeln. ;) Ein wartbarer und kommentierter Code alleine bringt ebenfalls nichts, wenn er nicht mit hoher Testabdeckung geprüft werden kann. Ich kann dir auch haufenweise toll dokumentierten und super lesbaren Code schreiben der trotzdem nicht das tut, was du erwartest. :) Und auch die fehlerfreiesten Funktionen helfen nichts wenn du sie nicht unfallfrei in dein Produktionssystem bekommst.
 
Zuletzt bearbeitet:
Und alle Tools und Verfahren nützen nichts, wenn du keine guten Entwickler hast und die definieren sich über viel mehr als nur kompilierenden Code in einer Sprache schreiben zu können. If you pay peanuts, you get monkeys.
 
Danke für eure Beiträge. Die verschaffen einen sehr guten Einblick, wo die Schwerpunkte liegen :)
 

Ähnliche Themen

Zurück
Oben