Unser Mantra: Fokus auf den User

Nutzergetrieben

„When Apple came up with the Mac, IBM was spending at least 100 times more on R&D. Innovation is not about money. It's about the people you have, how you're led, and how much you get it.” – Steve Jobs, Inventor

Vielleicht es ist Euch auch schon einmal passiert: Die neue Software ist fertig und nun bemerkt man, dass sie irgendwie am User vorbeientwickelt wurde. Der schwierigste Teil der Softwareenwicklung ist die wirkliche Konzentration auf die User-Anforderungen, weil sie sich schwer in den Entwicklungsprozess integrieren lassen. Agil und Scrum helfen wenig, wenn nicht regelmäßig User-Feedback schon während der Entwicklung in die nächsten Milestone integriert wird. Leider neigen viele dazu, schnell betriebsblind zu werden und sich zu sehr auf Strategien, Prozessen, Geschäftsmodelle, KPIs oder der ursprünglichen Idee zu konzentrieren.

Bedarf herausfinden

Die Entscheidungen von Entscheidungsträger und Verantwortlichen stimmen nicht zwangsläufig mit denen der Nutzer überein. Folgender Lösungsansatz klingt einfach, erfordert jedoch Disziplin: Man sollte immer davon ausgehen, mit seinen Annahmen falsch zu liegen, um diese durch Hypothesen zu validieren.

Es geht darum, herauszufinden, worauf die User wirklich Wert legen und Entscheidungen sollten stets durch Daten begründet werden. Denn nicht Nutzer sollten geschult werden müssen, sondern die Software sich denen anpassen.

Nachfolgend unsere Methoden, wie wir vorgehen, um vor und während der Entwicklung näher an Eure Nutzer heranzukommen und Insights gewinnen zu können. Das dient dem Ziel, sich auf die richtigen Features zu konzentrieren und zu verhindern, unnötig Aufwand, Zeit und Geld zu investieren.

User-getriebene Softwareentwicklung

Unsere User-Feedback Methoden

  1. Entwerft klickbare Prototypen Eurer App/Website mit Mockup-Tools. Integriert nur die Kernfunktionen und sammelt Feedback von Arbeitskollegen und Freunden. Verbessert Eure Mockups in Iterationen. Jede Iteration wird Euch helfen, sich auf Funktionen zu fokussieren, die noch nicht gut kommuniziert oder nicht intuitiv zu bedienen sind. Außerdem wird es Euch aufzeigen, ob Ihr auf gewisse Funktionen gänzlich verzichten können. Es geht neben User Experience (UX) darum, die Prio für das wirklich Wichtige zu finden. Erst nachdem dieser Schnitt abgeschlossen ist, darf mit der Umsetzung durch Programmierung begonnen werden.
  2. Organisiert nach jedem (größeren) Milestones User-Acceptance-Tests, indem Ihr projekt-fremde Personen zu persönlichen Interviews einladen und Eure Software bedienen lassen, um Probleme von Usability, UX oder UI zu identifizieren. Schreibt Feedback auf und nehmt die Interaktionen als Screenrecording auf. Nehmt Euch am Ende jedes Interviews Zeit, mit Eurem Team das Verhalten des Users zu evaluieren. Wiederholt diesen Prozess regelmäßig mit Personen ein, die Eure Software noch nie benutzt haben.
  3. Nutzt Umfrage-Plattformen für A/B-Testing von Grafik-, Marketingmaterial und In-App (In-Web) Screenshots und fragt die Audience auch nach Verbesserungsvorschlägen. Vorteil dieser nicht-persönlichen Möglichkeiten ist, dass Ihr sehr einfach skalierbar sind (große Menge an Umfrage-Teilnehmern), spezifisch bestimmte Zielgruppen auswählen können und statistische Auswertungen erhalten.
  4. Führt einen Softlaunch Eurer App oder Website in bestimmten Testmärkten schon früh im Entwicklungsprozess durch, auch ohne ein fertiges Produkt zu haben. Lasst echte Kunden damit interagieren und es nutzen, um Insights zu erhalten, welche Funktionen welche Priorisierung und Ressourcen in Eurem noch anstehenden Entwicklungsprozess erhalten werden.
  5. Integriert Analytics-Tools in Eure Software und nehmt sich die Zeit, benutzerdefinierte Events zu definieren und einzubauen. Auf Eure Anwendung zugeschnittene Charts ermöglichen nun, Bottle-Necks und Churn-Points zu identifizieren. So kann es z.B. in einer App sein, dass Nutzer an einer bestimmten Stelle nicht weiter wissen oder bei einer Website bestimmte Bereiche häufig, Andere aber gar nicht anklicken.

Softwareentwicklung Lebenszyklus

Benutzer-getriebene Softwareentwicklung
  1. Nutzt A/B-Tests, um die Performance mehrerer Varianten per Analytics zu vergleichen. Testet nicht nur unterschiedliche Bilder, Texte und Layouts, sondern ganze Funktionen und den Einfluss dieser auf das User-Engagement.
  2. Legt Personas an und überprüfen diese regelmäßig, ob die reale Nutzer noch den Erwartungen an Eure Personas entspricht. Wenn sich Eure Zielgruppe unbewusst verändert, muss sich vielleicht auch Euer Produkt anpassen. Oder entscheidet Euch dazu, Änderungen zu machen, um die ursprüngliche Zielgruppe wieder verstärkt zu erreichen.
  3. Direktes Feedback: Habt ein offenes Ohr (und Auge) für App-Store Bewertungen und Kommentare sowie Feedback- und Support-E-Mails. Oftmals unterschätzt man, wie früh Nutzer bereits Usability-Probleme erkennen.
  4. Bietet einfache In-App-Feedback-Möglichkeiten wie ein Formular oder eine Sterne-Bewertung an und gebt Anreize (z.B. Incentives), damit Nutzer Feedback zu senden. Belohnt Nutzer und lasst sie wissen, dass Ihr deren Meinung ernst nehmen, indem Ihr antwortt und Ihr euren den Fortschritt (und Entscheidungen basierend darauf) zeigt.
  5. Stellt der Community Kanäle zur einfachen Kommunikation (wie Ticket-System, Forum, Blog oder Slack, Support-E-Mail) mit Eurer Firma zur Verfügung und pitchen sie hier Eure Ideen für kommende Features, um schon in frühen Entwicklungsphasen um Feedback zu bitten. Vielleicht bedarf es auch gar nicht ein Pitch Eurerseits, weil die Community bereits in kreativen Ideen austobt.
  6. Darf es ein bisschen experimenteller werden? Lasst Eure Early-Adopter zu einem Teil Ihres Teams werden. Laden sie in Euer Slack ein, gebt direkten Kontakt zu Eurem Projektmanager und bindet Ihr sie in den Entwicklungsprozess mit ein, während Ihr Euch ständig über den Fortschritt und die Priorisierung informieren. Versteckt die Kommunikation nicht, sondern teilt früh Infos und Priorisierung, um deren Motivation zu maximieren, Euch bestmöglich Feedback zu geben und euer Produkt zu testen. Auch wenn es im ersten Moment nach viel Aufwand klingt, wird deren langfristiges Engagement zu einem viel besseren Produkt führen.
  7. Macht Eure Software Open Source und fördert, dass technisch-versierte Nutzer an Eurem Projekt teilhaben und Feedback in Form von Bugfixes und neuen Funktionen direkt mit einbringen können.
  8. Stellt APIs für Eure Software bereit, damit andere Unternehmen und Entwickler Euer Ökosystem mit ihren eigenen Ideen erweitern können (wie die Entwickler-API von Facebook oder APIs für verschiedene große Plattformen wie Google Suite, Github oder Slack). Dadurch wird das eigene Produkt zu einer Plattform, welches von anderen Tools erweitert und um neue Funktionen bereichert werden kann.
  9. Wenn Euer Produkt ein Videospiel ist, fördert Modding, um das Ökosystem des Spiels zu erweitern. Unterstützt diese Entwickler, indem Ihr Tools, Level-Editoren und gute Dokumentationen bereitstellt. Auch eine Sandbox mit bestimmten Regeln kann entwickelt werden, in dem Eure Spieler Eure Kreativität ausleben können (z. B. Garry's Mod oder Minecraft).

Fazit

Wir entwickeln für Endnutzer, nicht für Pflichtenhefte. Es geht immer darum, Entscheidungs-Findung zu vereinfachen und gleichzeitig wirtschaftlich zu entscheiden! Dies gelingt am besten Daten-basiert. Wir fangen bei den Problemen der Benutzer an und arbeiten von dort aus rückwärts. Entscheidungen sollten nicht auf Gefühlen basieren, sondern ausschließlich auf User-Feedback und -Interaktionen.

User-getriebene Softwareentwicklung

PS: Als Grundlage und Selbstverständnis für alle vorgestellten Schritte sehen wir das Arbeiten mit agilen Vorgehensweisen und den Grundsätzen des agile Manifesto. Nur dies erlaubt Eurem Team, Priorisierungen während der laufenden Entwicklung zu ändern statt sich auf das Abarbeiten von Pflichtenhefte zu verlassen. Zeigt nach jedem Milestone den Fortschritt Euren Stakeholdern und weiht sie in den aktiven Entscheidungsprozess mit ein.

Softwareentwicklung made in Hamburg

Wir digitalisieren als Hamburger Dienstleister Eure Arbeitsabläufe und Change Prozesse für ganzheitliche Transformation. In der Programmierung stehen unsere C# .NET Softwareentwickler im gesamten Prozess von A wie Azure bis Z wie ZSkalierung beratend zur Seite.