Die 6 häufigsten Fehler bei Softwareprojekten

häufigste Fehler Software

Beim Entwickeln von Software passieren häufig Fehler, die die Kosten des Projekts rasant in die Höhe treiben. In diesem Artikel zeigen wir die häufigsten Fehler bei der Entwicklung eines Softwareprojektes auf und geben Ihnen Tipps, wie Sie diese vermeiden können.

1. Keine oder unzureichend spezifizierte Anforderungen

Einer der Hauptgründe dafür, dass Softwareprojekte das Budget überschreiten und sich die Entwicklung verzögert, liegt in der fehlenden oder unzureichenden Festlegung der (funktionalen und nicht funktionalen) Anforderungen sowie des Entwicklungsumfangs der Anwendung. Für den erfolgreichen Abschluss eines Softwareprojektes ist es essenziell, dass die Entwickler eine möglichst akkurate Vorstellung von den Wünschen des Auftraggebers bzw. der Zielgruppe der Software haben. Jeder im Team sollte genau wissen, was die Software bezweckt und warum sie benötigt wird. Werden die Anforderungen zu Beginn des Projektes nicht genau spezifiziert, hat dies oft zur Folge, dass zu einem späteren Zeitpunkt tiefgreifende Änderungen an der Software vorgenommen werden müssen und vorhandener Code verworfen wird.

LÖSUNG: Um dies zu vermeiden, sollten alle Anforderungen vor Beginn der eigentlichen Entwicklung genau besprochen und anschließend vertraglich festgehalten werden.

2. Fehlende Kommunikation

Auch wenn die Anforderungen bereits zu Beginn eines Projektes festgelegt werden, muss die Kommunikation mit den Auftraggebern über den gesamten Zeitraum der Entwicklung aufrecht erhalten werden. Viele Auftragnehmer oder Arbeitnehmer haben oft die Tendenz, keine oder nur positive Informationen an ihren Ansprechpartner weiterzugeben. Negative Informationen werden aus Angst vor möglichen Konsequenzen bis zum letzten Moment verschwiegen. Treten Probleme oder Verzögerungen auf, so müssen diese so bald wie möglich gemeldet werden. Nur so ist es möglich, die notwendigen Schritte zur Behebung des Problems rechtzeitig einzuleiten und das Projekt somit retten zu können.

LÖSUNG: Regelmäßige Updates, bei denen alle positiven und weniger positiven Projektfortschritte besprochen werden. Am besten eignen sich dafür kurze (Skype)Meetings, aber auch E-Mail-Updates können hilfreich sein.

3. Zu optimistischer Zeitplan

Ein weit verbreitetes Problem, das den Erfolg eines Projektes gefährden kann, ist ein zu optimistischer Zeitplan. Druck seitens oberer Führungsetagen kann oft dazu führen, dass sich das Team gezwungen sieht, die Zeit weit knapper zu bemessen, als für eine hochqualitative und damit fehlerfreie Software notwendig wäre. Schon kleine technische Schwierigkeiten können zu Verzögerungen führen, die sich schnell summieren und das Projekt ins Wanken bringen. Verstärkt wird dieser Effekt vor allem dann, wenn es Abhängigkeiten zwischen Projektmeilensteinen gibt. Das bedeutet, wenn ein bestimmter Bereich einer Software erst angegangen werden kann, sobald ein anderer Bereich bereits abgeschlossen ist oder wenn mehrere Teile einer Software in enger Zusammenarbeit entwickelt werden müssen. Um die Projektverzögerungen nicht ausufern zu lassen, werden dann oft Abstriche bei der Qualität gemacht.

LÖSUNG: Versuchen Sie, dem Auftraggeber oder dem Vorgesetzten trotz Druck genauer zu erklären, welche Nachteile ein zu knapper Zeitplan für das Projekt auf lange Sicht hat.

4. Zu viele oder zu wenige Entwickler

Wenn ein komplexes Softwareprojekt unterbesetzt ist, kann dies die Entwicklungsdauer deutlich verlängern. Aber auch ein zu großes Entwicklerteam kann den selben Effekt haben. Oft wird angenommen, dass ein in Verzug geratenes Projekt automatisch schneller abgeschlossen wird, wenn (meistens gegen Projektende) weitere Entwickler dazu geholt werden. Dies kann zwar der Fall sein, muss aber nicht. In der Praxis zeigt sich oft das genaue Gegenteil. In zu großen Teams ist die Kommunikation und Koordination unter den Entwicklern wesentlich komplexer, so dass ein effizientes Arbeiten nicht mehr gut möglich ist. Darüber hinaus ist zu berücksichtigen, dass sich neue Teamkollegen erst in die Projektstruktur und den Code einarbeiten müssen und die restlichen Entwickler daher anfangs eher aufhalten.

Lösung: Eine Vergrößerung oder Verkleinerung des Teams sollte stets gut überlegt und sorgfältig geplant werden. Vor einer solchen Entscheidung ist es zudem hilfreich, den Rat der Entwickler einzuholen, die bereits am Projekt arbeiten.

5. Keine richtige oder „overengineerte“ Architektur

Jede Software braucht eine angemessene Architektur. Auch wenn sich Details während der Entwicklung ändern können, sollte die grundsätzliche Architektur der Software basierend auf den Anforderungen zu Beginn der Entwicklung festgelegt werden. Es ist ein Fehler, anzunehmen, dass sich eine gute Softwarearchitektur während der Entwicklung von ganz alleine ergibt. Eine möglichst klare, simple und durchdachte Softwarearchitektur kann die Entwicklung deutlich vereinfachen und erleichtert es einem Team, zu einem späteren Zeitpunkt Änderungen vorzunehmen oder Funktionen hinzuzufügen. Beim Softwareentwurf sollte aber auch nicht über das Ziel hinausgeschossen werden. Ein oft anzutreffender Fehler ist eine übermäßig generalisierte Softwarearchitektur, die unnötige Komplexität schafft. Dabei wird das eigentliche Problem, das es zu lösen gilt, schnell aus den Augen verloren.

LÖSUNG: Nehmen Sie sich viel Zeit für die Architektur Ihrer Software. Denken Sie dabei zunächst an alle Eventualitäten und möglichen Anforderungen und berücksichtigen Sie dabei vor allem auch potentielle Veränderungen in der Zukunft. Nachdem Sie  alles gut durchdacht haben, nehmen Sie noch einmal Abstand von Ihren Überlegungen und versuchen Sie nun, die wesentlichen Aspekte zu ermitteln. Nun können Sie eine Architektur entwerfen, die gut durchdacht, aber gleichzeitig auch nicht zu komplex ist.

6. Projekterfolg wird nach Abschluss nicht analysiert

Nach Abschluss eines Projektes wird häufig sofort das nächste begonnen. Mögliche Fehler aber auch Erfolge aus dem vorangegangen Projekt werden nicht oder nicht ausreichend analysiert und bewertet. So wird es versäumt, Learnings aus abgeschlossenen Arbeiten zu ziehen. Dadurch kann es sein, dass die selben Fehler in neuen Projekten immer wieder wiederholt werden. Auch die Zufriedenheit der Kunden oder Auftraggeber sollte bewertet und als Input für kommende Projekte verwendet werden.

LÖSUNG: Planen Sie die Analyse eines abgeschlossenen Projekts als festen Bestandteil des Projekts ein. Ein Projekt endet erst, sobald es ausreichend analysiert wurde und Learnings für die Zukunft daraus gezogen wurden. Was Ihnen zunächst als Zeitverschwendung erscheinen mag, wird Ihnen beim nächsten Projekt viel Zeit sparen.