Über die letzten Jahrzehnte haben wir viele Softwareprojekte in verschiedenen Konstellationen und Organisationen umgesetzt und begleitet. Viele dieser Projekte haben wir in Rekordzeit und unter widrigen Bedingungen abgeschlossen, und dabei unsere Kunden mit den Ergebnissen begeistert.
Natürlich sind uns auch viele Parallelprojekte in der gleichen Kundenorganisation aufgefallen, die nur sehr langsam vorankamen, während wir mit hoher Geschwindigkeit Kundenwünsche in Softwarefunktionen umgewandelt haben.
Wir haben uns daher gefragt: Was macht den Unterschied zwischen sehr erfolgreichen Top-Speed-Projekten und langsamen Schneckentempo-Projekten ohne messbare Ergebnisse aus?
In diesem Blogpost möchten wir die Top-10 Faktoren aufzählen, die wir aus vielen Projekten abstrahiert haben, welche für uns den entscheidenden Unterschied ausmachen.
1. Eine klare Vision für die Software
Einer der wichtigsten Faktoren ist eine klare Vision für die Software, die das ganze Team kennt und nachvollziehen kann. Dies ist wichtig, da alle Projektmitglieder als Teil ihrer Arbeitspakete tausende Mikroentscheidungen treffen, die den Projektausgang beeinflussen. Diese Entscheidungen orientieren sich maßgeblich an ihrem Verständnis des Ziels der Software. Darum ist es wichtig, dass die Vision der Software und des Projekts völlig klar sind.
Ist die Vision unklar oder variiert je nach Projektmitglied, wird die Lösung zu einem inkonsistenten Fleckenteppich, der viele Eventualitäten abdeckt, aber den eigentlichen Zweck der Software nicht erfüllt.
2. Grad des Ownerships der Beteiligten
Wie viel Verantwortung jeder im Team übernimmt, beeinflusst maßgeblich die Qualität der zu liefernden Software. Wenn alle Teammitglieder für das Ergebnis brennen und sich persönlich dem Projekt verschreiben, entsteht eine hohe Energie, die Berge versetzen kann.
Konzentriert sich hingegen jeder nur auf seine zugewiesenen Aufgaben, ohne sich für die eigentliche Lösung zu interessieren, treten unweigerlich Fehler auf, die bis zur Fertigstellung der Software unentdeckt bleiben.
3. Regelmäßige Kommunikation
Das A und O eines jeden effizienten Softwareprojekts ist regelmäßige Kommunikation. Werden wichtige Entscheidungen getroffen und nicht an alle Beteiligten kommuniziert, oder bleiben unerwartete Ereignisse (z.B. Änderungswünsche vom Kunden) unangesprochen, können große Missverständnisse entstehen und das Projekt vom Kurs abbringen.
4. Fokus auf friktionsfreies Arbeiten
Trotz effektiver Kommunikation ist es wichtig, dass die Arbeit am Projekt ohne große Unterbrechung erfolgen kann. Jeder muss alles zur Verfügung haben, was für seine Aufgabe benötigt wird. Wichtig ist auch, dass die Personen nicht von ihren Aufgaben abgelenkt werden und sich auf diese fokussieren können.
Ist dies nicht der Fall, können selbst einfach scheinende Aufgaben ewig dauern.
5. Qualifikation für die Aufgabe
Softwareentwicklung erfordert hochgradig spezialisiertes Know-how. Für Top-Speed ist es entscheidend, dass alle Beteiligten absolute Profis in ihrem Handwerk sind und das nötige Skillset mitbringen, das für die Arbeit benötigt wird.
Ohne passende Skills sind Anfängerfehler vorprogrammiert und können weitreichende Auswirkungen auf den Projektverlauf haben.
6. Dokumentation von Entscheidungen
Ein oft vernachlässigter Aspekt von schnellen Projekten ist das transparente Festhalten wichtiger Entscheidungen. Werden wichtige Entscheidungen, wie große Änderungen an den Anforderungen, sauber dokumentiert (und an alle Beteiligten kommuniziert), kann vielen Missverständnissen vorgebeugt werden.
Werden im Gegensatz dazu keine Entscheidungen dokumentiert, können große Überraschungen auftreten. Zum Beispiel, wenn ein Feature fehlt, weil es erst später vom Kunden gewünscht wurde und dieser Wunsch nicht festgehalten und dann vergessen wurde.
7. Saubere Angaben und Spezifikationen
Nicht nur Entscheidungen müssen sauber dokumentiert werden. Auch fachliche Angaben, wie User-Stories oder Feinkonzepte, müssen klar, genau und unmissverständlich spezifiziert werden.
Fehlen saubere, klare Spezifikationen, sind Fehler in der Umsetzung vorprogrammiert. Auch nachgelagerte Projektaufgaben wie Qualitätssicherung oder Benutzer-Handbücher werden fehlerbehaftet sein und das Projekt verlangsamen.
8. Vertrauensvoller und wertschätzender Umgang
Neben den vielen harten Kriterien gibt es auch weichere Faktoren, die ein Projekt beschleunigen oder verlangsamen können. Ein wichtiger Faktor dabei ist ein vertrauensvoller und wertschätzender Umgang innerhalb und außerhalb des Teams.
Misstrauen führt zu unnötigen Steuerungsmechanismen, die das Projekt verlangsamen. Respektlosigkeit ist demotivierend und damit automatisch ein Bremsklotz für jedes Projekt. Im Worst Case kann das dazu führen, dass wichtige Key-Player das Projekt verlassen und somit eine große Wissenslücke zurücklassen.
9. Flexibilität aller Beteiligten
Ein oft unterschätzter Faktor ist, dass es in der Softwareentwicklung viele Lösungswege für dasselbe Problem gibt. Lösungswege, die zu Beginn des Projekts vielversprechend waren, stellen sich im Projektverlauf potenziell als nicht mehr ideal heraus.
Wichtig ist, sich nicht auf die Vergangenheit zu versteifen, sondern, dass der Zweck der Software erfüllt wird und möglichst wenig Zeit und Ressourcen verschwendet werden.
10. Vermeidung von Micromanagement
Der wohl stärkste Bremsklotz, der ein Projekt verlangsamen kann, ist Micromanagement. Micromanagement bedeutet, dass jeder noch so kleine Schritt des Projekts bis ins letzte Detail geplant, definiert, gebucht, kontrolliert und berichtet wird. Der entstehende Overhead-Aufwand ist so hoch, dass Projekte oft nur einen Bruchteil der Geschwindigkeit jener haben, die sich auf das Wesentliche konzentrieren.
Doch was ist das Wesentliche eines Projekts? Diese Frage lässt sich nicht pauschal beantworten. Jeder Kunde, jedes Team, jede Softwarelösung hat andere Bedürfnisse. Doch behält man die anderen neun Einflussfaktoren unter Kontrolle, findet man sicher einen Weg, den Management-Overhead auf das nötige Minimum zu beschränken.
Weitere Posts