21. September 2017

Zielgenau zum Erfolg mit modernen Methoden und Frameworks

Framework 750x410

Veraltete Software-Entwicklungsmethoden sind ein sicheres Rezept zum Scheitern. Dabei gibt es bekannte und bereits bewährte Methoden und Frameworks, die Abhilfe schaffen können. Ihr Motto: lieber nachfragen und testen anstatt Checklisten eines Managers abarbeiten.

Veraltete Software-Entwicklungsmethoden sind ein sicheres Rezept zum Scheitern. Dabei gibt es bekannte und bereits bewährte Methoden und Frameworks, die Abhilfe schaffen können. Ihr Motto: lieber nachfragen und testen anstatt Checklisten eines Managers abarbeiten.

Das traditionelle Wasserfallmodell sieht eine Requirements Engineering Phase am Beginn eines Projekts vor, um möglichst alle Business Needs abzudecken – zu genau dem Zeitpunkt, an dem alle Beteiligten am wenigsten über das Projekt wissen. Pflichtenhefte in Romanlänge wiegen Projektleiter und Business Stakeholder in falscher Sicherheit. Wenn man mit dem Schreiben fertig ist, ist das Dokument in den meisten Fällen schon wieder veraltet und unbrauchbar. Entwickler werden oft lediglich zum “Ausführen” eines Plans eingesetzt. 

Viel schlimmer ist aber, dass solche Pflichtenhefte meistens verfasst werden, ohne den eigentlichen Kunden, das heisst den zukünftigen User der Software, jemals miteinzubeziehen. Unternehmen verfallen häufig der Illusion, ihre Kunden zu kennen. Sie geben die Umsetzung einer Idee in Auftrag und nach wochen- oder monatelangem Designen, Programmieren und unzähligen Projektleitungs-Meetings stellt man im Fokusgruppentest zwei Wochen vor dem geplanten Release fest: das ist gar nicht das, was unsere Kunden wollen! Was dann?!

Während Jahrzehnten hat sich die Softwareentwicklung beinahe ausschliesslich an Business Needs orientiert. Die resultierende Software ist nicht selten schwierig zu bedienen und löst das eigentliche Problem der Kunden nur schlecht. Dafür wird sie mit einer ausführlichen Dokumentation geliefert, die jedoch eigentlich niemand lesen möchte.

Der User im Zentrum

Als Gegenbewegung zum oben beschriebenen Szenario haben sich verschiedene Methoden, Frameworks und Disziplinen entwickelt, deren Grundsatz es ist, sich an der Realität zu orientieren anstatt an potentiell falschen Vorstellungen von Managern. Ihnen gemeinsam ist, dass der User und seine Bedürfnisse im Zentrum stehen. Business Needs bilden dafür den nötigen Rahmen. So wird ermöglicht, Entscheidungen auf Grundlage von dem, was zukünftige Kunden wirklich wollen, zu treffen, anstatt sich nur auf historische Daten zu verlassen oder sich von falschen Vorurteilen leiten zu lassen. Drei bekannte und bewährte Methoden (bzw. Disziplinen) sind Design Thinking, agile Software Entwicklung und UX.

Design Thinking ist ein Ansatz, der es mit Designwerkzeugen wie Empathie und User-Tests ermöglicht, innovative Lösungen in Form von Prototypen zu erarbeiten. In Iterationen werden zukünftige User befragt und möglichst viele unterschiedliche Lösungsideen gesammelt. Die besten werden zu Prototypen ausgearbeitet und von Usern getestet. Das gewonnene Feedback liefert wertvollen Input, um eine optimal auf den Kunden zugeschnittene Lösung zu finden.

Eine andere Methodik, die aus moderner Softwareentwicklung nicht mehr wegzudenken ist, ist die agile Softwareentwicklung. Ursprünglich basierend auf dem Agilen Manifestund den 12 dahinterstehenden Prinzipien, verfolgen Ausprägungen wie Scrum oder XP ebenfalls einen iterativen Ansatz. Die Entwicklung beginnt mit einem kleinen minimalen Produkt, auf das aufgebaut wird. In regelmässigen Abständen wird das bis dahin erarbeitete Produkt zusammen mit Business Stakeholdern überprüft und, basierend auf dem Feedback von Usern und Stakeholdern, werden Prioritäten angepasst und nächste Entwicklungsschritte geplant. Änderungen in den Anforderungen, die im Verlauf des Projekts auftreten, werden von Anfang an angenommen und fliessen selbstverständlich ohne grossen Aufwand in den Prozess ein. Das Credo ist vollständige Transparenz und das Wissen, dass man die optimale Lösung entwickelt, statt strikt einem Plan zu folgen. Denn: Fortschritt lässt sich am besten an funktionierender Software messen.

Moderne Software löst aber nicht nur das Problem des Users, sie ist auch intuitiv in der Bedienung und bietet dem User ein rundum flüssiges und angenehmes Nutzungserlebnis. Damit befasst sich die Disziplin der User Experience. UX möchte optimieren, wie sich eine Person fühlt, wenn sie mit einem System interagiert. Dazu beschäftigt sie sich mit Einfachheit der Bedienung, Benutzbarkeit (Usability), Interaktion, Informationsstruktur, Navigation und visuellem Design. Alles orientiert sich an den Bedürfnissen und Anforderungen des zukünftigen Users. Design-Entscheidungen werden regelmässig in Tests mit zukünftigen Usern überprüft. Ihr Feedback dient als Grundlage für Anpassungen und Entscheidungen im Projekt. Das Risiko gegen Ende des Projektes festzustellen, dass man an den Kunden vorbei entwickelt hat, wird minimiert.

Allen diesen Methoden liegt die Annahme zugrunde, dass man erst durch Ausprobieren und Testen wirklich weiss, was funktioniert. Die Erfahrung zeigt, dass Fehler am Weg unumgänglich sind, und das ist gut so. Fail fast to learn early. Fehler spät in der Entwicklung sind schwierig zu lösen, deshalb gilt: Je früher man Fehler macht, desto schneller lernt man daraus.

Machen wir Agile oder DT?

Bei dieser Fülle von angebotenen Methoden stellt sich die Frage, welche man wählen soll. Das ist grundsätzlich die falsche Frage. Die eigentliche Frage ist, wie können unterschiedliche Methoden und Werkzeuge gemeinsam und ergänzend eingesetzt werden, um die bestmögliche Lösung zu entwickeln. Design Thinking, UX und agile Methoden beschäftigen sich jeweils mit einem anderen Aspekt eines Softwareprojektes. Situativ die richtigen Werkzeuge einzusetzen und von Beginn an das Wissen und die Ideen des gesamten Projektteams zu nutzen, ist ein vielversprechender Weg zum Erfolg.

Design Thinking hilft, dem richtigen Problem eine optimale Lösung entgegenzustellen. Integriert mit einem agilen Entwicklungsprozess beteiligen sich Stakeholder, Designer und Entwickler gleichermassen daran, die Bedürfnisse und Probleme der Benutzer zu verstehen (zum Beispiel DT@Scrum). Feedback kann regelmässig zurückfliessen und ermöglicht eine Umsetzung, die sich am neu gewonnenen Erkenntnissen orientiert. Der agile Entwicklungsprozess garantiert funktionierende Software in regelmässigen Abständen und gibt Entscheidern die Möglichkeit, Prioritäten anzupassen und die Entwicklung zu steuern. User Experience Experten, die ihren Methodenbaukasten nutzen, um in enger Zusammenarbeit mit Entwicklern und Stakeholdern eine einmalige Nutzungserfahrung zu kreieren, runden ein gelungenes Softwareprojekt ab.

Von der Idee zum Business Modell

Wir bei ti&m nutzen und verbinden genau diese modernen Werkzeuge, um die innovativen Ideen unserer Partner in Form von sichtbaren und fassbaren Prototypen zu materialisieren und sie zu einem vollständigen Business Modell weiterzuentwicklen. Mit diesen Prototypen faszinieren wir die Kunden unserer Partner und verschaffen ihnen einen Vorsprung auf dem Markt. Je nach Stand der Idee organisieren und moderieren wir Workshops zum Thema Design Thinking, Open Innovation Initiatives und World Café.

Unsere besten Köpfe helfen Ihnen, Technology Gaps zu überwinden und Ihre Idee weiterzuentwickeln. Validieren und verkaufen Sie Ihre Idee durch Prototypen bereits nach zwei Wochen. Profitieren Sie von unserer Erfahrung und arbeiten Sie agil mit unseren Agile Coaches und Scrum Mastern. Wir stellen Ihnen alles zur Verfügung, was es braucht, um Ihre Idee zur Umsetzung zu bringen. Werden Sie unser Partner und lassen sie uns zusammen erfolgreich sein. Probieren Sie es einfach aus!


Martin Fabini
Martin Fabini

Martin Fabini studierte Mathematik an der Universität Göttingen und ist seit mehr als 20 Jahren in der IT tätig. Mit einem Hintergrund als Software-Entwickler und Architekt hat er im Verlaufe der letzten Jahre vielfältige Managementaufgaben und Beratungsmandate wahrgenommen.

Ähnliche Artikel

Wird der Zero Moment of Truth von Versicherern berücksichtigt?
Wird der Zero Moment of Truth von Versicherern berücksichtigt?

Mit dem Zero Moment of Truth bezeichnete Google 2011 den Moment in dem eine Entscheidung für ein ganz bestimmtes Produkt oder eine Marke gefällt wird, also die Recherche vor dem tatsächlichen Kauf. Wenn Versicherer diesen Moment nicht berücksichtigen, fehlt ihnen ein wesentlicher Teil der Marketingstrategie und sie laufen Gefahr, die Kundenschnittstelle an andere Player zu verlieren.

Mehr erfahren
201708_Identität
Starke digitale Identität für Start-ups

Ein guter Tipp: Nutzen Sie die Eitelkeit des Individuums, um die digitale Identität Ihrer Organisation zu stärken und deren Visibilität zu erhöhen.

Mehr erfahren
2016_01_Frameworks für Scaled Agile
Frameworks für Scaled Agile: hilfreich aber nicht ausreichend

Digitalisierung macht Agilität und Speed möglich und fordert dies ein. Viele Akteure in Unternehmen haben den Veränderungsdruck erkannt, aber sind sich gleichzeitig der Herausforderung bewusst, in komplexe Wirkungsgefüge erfolgreich einzugreifen. Um diese Hemmschwelle zu überwinden und Agilität im Software Engineering zu etablieren, wurden leicht verständliche Frameworks wie Scrum oder Kanban entwickelt, die auf wenigen Prinzipien und Methoden aufsetzen, die auch möglichst leicht zu validieren sind. Trotzdem tun sich viele Implementierungen von agilen Frameworks schwer in der Praxis. Warum ist das so?

Mehr erfahren
Wie „Joy“ das Einkaufserlebnis revolutionieren wird
Wie „Joy“ das Einkaufserlebnis revolutionieren wird

Nachdem das Jahr 2015 aus unserer Sicht als das Jahr des digitalen Portemonnaies zu Buche schlug, überlegten wir uns, wie wir die Akzeptanz des digitalen, bargeld- und kartenlosen Bezahlens an öffentlichen Verkaufspunkten fördern könnten. Geboren war die Idee einer virtuellen Registrierkasse, welche jegliche Art von digitalen Geldbörsen unterstützen würde.

Mehr erfahren
Multi-Project Development Environment Setup<br/>
The Developer’s Nightmare: Multi-Project Development Environment Setup

If you are a developer, you have had to set up your development environment for any of your projects. Database, application server, index, and so on. That might go smoothly… or not. If the first applies, CONGRATULATIONS! And get to work ;) but if not, then welcome to the non-smooth environment setup problem. Even worse, what if you need to have different environments for different projects (e.g. database versions)? And what if you need to reset one, but keep the others untouched?

Mehr erfahren