500 likes | 576 Views
10 Gründe für das Fehlschlagen von Softwareprojekten. Wer bin ich?. Thomas Schissler Software-Architekt und Projektleiter artiso AG Schwerpunkte sind Team Foundation Server Entwicklungsprozesse Software-Architektur und Software Design
E N D
Thomas Schissler, artiso AG 10 Gründe für das Fehlschlagen von Softwareprojekten
Thomas Schissler, artiso AG Wer bin ich? • Thomas Schissler • Software-Architekt und Projektleiter artiso AG • Schwerpunkte sind • Team Foundation Server • Entwicklungsprozesse • Software-Architektur und Software Design • Leiter der .net Developergroup Ulm (www.dotnet-ulm.de) • Blog : http://www.artiso.com/problog
Thomas Schissler, artiso AG Wer sind Sie? Was machen Sie? • Produktentwicklung • Auftragsprogrammierung • Interne Entwicklung
Thomas Schissler, artiso AG Wer sind Sie? Welche Position haben Sie? • Entwickler • Projektleiter • Sonstiges?
Thomas Schissler, artiso AG Wer sind Sie? Wie definieren Sie ein fehlgeschlagenes Software-Projekt?
Thomas Schissler, artiso AG Wer sind Sie? Waren Sie schon mal an einem fehlgeschlagenen Software-Projekt beteiligt? • Termin oder Budget um mehr als 50% überschritten • Termin oder Budget um mehr als 100% überschritten • Kunde unzufrieden
Thomas Schissler, artiso AG 1 Zunehmende Komplexität
Thomas Schissler, artiso AG Komplexität
Thomas Schissler, artiso AG 2 Unklare Spezifikation
Thomas Schissler, artiso AG Problemsituationen • Kunde akzeptiert implementierte Lösungen nicht • Fehlende Basis für aufwandsabschätzung • Entwickler hat keine genaue Beschreibung der Funktion für die Implementierung • Tester stellen Spezifikationslücken fest • Ewige Nacharbeiten
Thomas Schissler, artiso AG Textliche Spezifikation Kunden sollen gelöscht werden können. Der Lösch-Vorgang kann durch das Kontext-Menü, durch ein Icon in der Symbol-Leiste oder durch die Entfernen-Taste auf der Tastatur ausgelöst werden. Beim Löschen eines Kunden soll zunächst geprüft werden, ob der Kunde Aufträge zugeordnet hat. Ist dies nicht der Fall, kann der Kunde sofort gelsöcht werden. Andfernfalls muss geprüft werden, ob alle Aufträge die dem Kunden zugeordnet sind abgeschlossen sind. Hat der Kunde nicht abgeschlossene Aufträge zugeordnet, so kann der Kund zu diesem Zeitpunkt nicht gelöscht werden und dies soll durch eine entsprechende meldung angezeigt werden. Bei ausschließlich abgeschlossenen Aufträgen soll zunächst der Anwender gefragt werden, ob alle Aufträge zum Kunden ebenfalls gelöscht werden sollen. Wird diese mit Ja bestätigt, werden zunächst die Aufträge und anschließend der Kunde gelöscht. Andernfalls wird der Lösch-Vorgang für den Kunden abgebrochen.
Thomas Schissler, artiso AG Workflow Diagramme
Thomas Schissler, artiso AG Funktionsbaum
Thomas Schissler, artiso AG Test als Spezifikation
Thomas Schissler, artiso AG 3 Unzureichende Planung
Thomas Schissler, artiso AG Problemsituationen • Aufwand und Termine werden nur grob geschätzt, der Kunde pocht aber auf die Einhaltung • Der Aufwand um die Planung zu pflegen ist viel zu hoch • Der aktuelle Projektstatus wird aus dem Bauch beurteilt
Thomas Schissler, artiso AG Aufwandsabschätzung • Voraussetzung ist eine detaillierte Spezifikation • Anforderungen werden in Lösungen überführt • Lösungen werden verfeinert und in Aufgaben heruntergebrochen • Aufwand für Aufgaben abschätzen (in Stunden) • Tests wie Aufgaben einplanen
Thomas Schissler, artiso AG Aufwandsabschätzung DEMO
Thomas Schissler, artiso AG Terminplanung
Thomas Schissler, artiso AG 4 Fehlendes Projekt-controlling
Thomas Schissler, artiso AG Problemsituationen • Budget ist fast aufgebraucht, aber es fehlen noch wichtige Funktionen • Zugesagte Termine können nicht eingehalten werden • Die Funktionen sind fertiggestellt aber es bleibt keine Zeit zum Testen • Probleme im Projekt werden zu spät erkannt
Thomas Schissler, artiso AG Projektcontrolling = Plan – Ist - Vergleich
Thomas Schissler, artiso AG Statusaktualisierung
Thomas Schissler, artiso AG Zeit-Controlling
Thomas Schissler, artiso AG Budget-Controlling DEMO
Thomas Schissler, artiso AG 5 Entscheidungen aufschieben
Thomas Schissler, artiso AG Problemsituationen • Längst bekannte Probleme verursachen einen hohen Anpassungsaufwand • Anpassungen und Fehlerbehebungen müssen über Gewährleistung erbracht werden • Architektur- oder Technologieentscheidungen stellen sich als problematisch heraus
Thomas Schissler, artiso AG 6 Mangelnde Team-Koordination
Thomas Schissler, artiso AG Problemsituationen • Missverständnisse führen zu Mehraufwand • Keine konsistente Code-Qualität bei mehren Entwicklern • Kommunikation zwischen Tester und Entwickler ist zu aufwändig
Thomas Schissler, artiso AG Contract First Design
Thomas Schissler, artiso AG Kommunikation Tester Entwickler
Thomas Schissler, artiso AG 7 Qualitäts-probleme
Thomas Schissler, artiso AG Problemsituationen • Die Entwicklung verläuft planmäßig, jedoch das Testen und die Fehlerbehebung dauert wesentlich länger als angenommen. • Der Kunde findet im Test-Betrieb zu viele Fehler • Nach Monaten wird festgestellt, dass Ergabnisse, mit denen gearbeitet wurden, falsch waren.
TDD Quick Start Testplanung Planung Implementierung Testen
TDD Quick Start Testplanung Planung Implementierung Testen
TDD Quick Start Testplanung Planung Implementierung
TDD Quick Start Testplanung Planung Implementierung Testen
TDD Quick Start Testplanung Iteration
Thomas Schissler, artiso AG Test-Methoden
Thomas Schissler, artiso AG Testaufwand
Thomas Schissler, artiso AG 8 Feature Creep
Thomas Schissler, artiso AG Problemsituationen • Budget und Termin reichen nicht aus, als Begründung werden ungeplante zusätzliche Funktionen angegeben – aber welche waren das nochmals genau? • Die Architektur-Basis passt irgendwann nicht mehr zu den aktuellen Funktionen
Thomas Schissler, artiso AG Puffer-Verwaltung DEMO
Thomas Schissler, artiso AG 9 Falsche Prioritäten
Thomas Schissler, artiso AG Problemsituationen • Punkte die für den Kunden wichtig sind, werden erst erkannt, wenn diese durch den Kunden bemängelt werden. • Probleme werden zu spät im Projekt erkannt und behoben • Entwickler fokusieren sich zu stark auf Technologie-Themen
Thomas Schissler, artiso AG Prioritäten richtig festlegen • Den Kunden fragen, was ihm wichtig ist • Prioritäten regelmäßig reviewen • Prioritäten im Team Kommunizieren • Prioritäten betreffen meist nicht-technische Aspekte
Thomas Schissler, artiso AG 10 Unterschätzte Technologie-komplexität
Thomas Schissler, artiso AG Problemsituationen • Durch den Einsatz einer modernen Technologie hätte Entwicklungsaufwand eingespart oder Vorteile beim Betrieb der Software realisiert werden können • Beim Einsatz einer neuen Technologie ist die Einarbeitszeit deutlich höher als geplant oder die implementierten Lösungen sind nicht ideal.
Thomas Schissler, artiso AG Fragen ??? • Gerne jetzt. • Oder heute und morgen noch hier auf der BASTA. • Oder gerne per Mail an Tschissler@artiso.com • Mein Blog: http:// www.artiso.com/problog