17.06.2011, 06:00 Uhr
Software für Menschen statt für Standards
Das Potenzial zur Effizienzsteigerung durch ein optimal auf die Geschäftsprozesse ausgerichtetes System ist gross. Wer aber versucht, Software direkt aus den formalen Prozessen heraus zu entwickeln, läuft Gefahr zu scheitern.
Mathias Gläser ist CEO von Naveco, Florian Steiner ist dort Senior Consultant. Wird in einem Unternehmen Individual-Software eingesetzt, liegt der zentrale Fokus meist auf einer Effizienzsteigerung. Anders als Software von der Stange bietet eine individuell entwickelte Lösung die Möglichkeit, Arbeitsprozesse exakt so zu unterstützen, wie sie im Unternehmen von den Mitarbeitenden ausgeführt werden. Diese optimierte Prozessunterstützung sorgt dann für die gewünschte Effizienzsteigerung. Beim Entscheid für oder gegen Individual-Software stehen der Effizienzsteigerung aber immer die bekannten Risiken einer Eigenentwicklung gegenüber: Software-Projekte scheitern, verschlingen weit mehr Kosten als geplant, die fertige Lösung entspricht nicht den Erwartungen oder findet bei den Mitarbeitenden keine Akzeptanz. Wo liegt das Problem? Was wird übersehen?
Realistischer Blick auf Abläufe
Die meisten Probleme sind strategischer Natur und müssen schon zu Projektbeginn gelöst werden. Genau hier jedoch versagen klassische Methoden des Anforderungsmanagements: Sie bringen einen ungeordneten Haufen funktionaler Anforderungen hervor, ohne dabei die eigentlichen, sequenziell ablaufenden Arbeitsschritte zu unterstützen. Die Ergebnisse der Analyse werden anschliessend in Excel-Tabellen oder Backlogs festgehalten und daraus Use Cases in schriftlicher Form abgeleitet. All diese Artefakte geben jedoch kein Bild der späteren Lösung und sind somit für den Auftraggeber unmöglich zu prüfen. Auch in der Realisierung sind sie keine eindeutige Vorgabe für die Entwickler. Es kommt, was wir alle kennen: Das böse Erwachen, wenn der Auftraggeber die Lösung zu sehen bekommt. Das Resultat sind Diskussionen, Streitereien und eine endlos lange Liste an Change Requests. Das muss nicht sein: Lassen Sie sich das Potenzial von optimal auf Ihre Prozesse abgestimmter Software nicht durch untaugliche Methoden vermiesen. Wo Software-Entwicklung heute dank agilen Entwicklungsmethoden verständlicher, transparenter und flexibler geworden ist, können bereits vor der Realisierung Methoden angewandt werden, die das Anforderungsmanagement deutlich verbessern. So wird die Analyse und Konzeption von neuen Lösungen wesentlich verständlicher und greifbarer.
Task Analysis als Voraussetzung
Der formal definierte Prozess ist nie ein Abbild der tatsächlichen Arbeit und unterstützt diesen daher auch nicht direkt. Raten Sie, weshalb SAP als umständlich verschrien ist und Hundertschaften von Consultants weltweit in Unternehmen SAP anpassen? Um eine optimale Prozessunterstützung zu erzielen, muss zuerst der effektive Arbeitsablauf analysiert werden. Hierzu empfehlen sich Task-Analysis- und User-Centered-Engineering-Methoden. Arbeitsschritte, Entscheidungen, Informationsbedürfnisse und benutzte Hilfsmittel werden gemeinsam mit den Mitarbeitenden aufgenommen. Mithilfe von Karten-Sequenzen werden so die Arbeitsschritte sichtbar gemacht, nach denen die Mitarbeitenden aufgrund ihrer Kompetenzen den Prozess abarbeiten. Sie werden erstaunt sein, wie Ihre Prozesse in Wirklichkeit bearbeitet werden. Zudem erkennen Sie erst dadurch Anknüpfungspunkte zu anderen Prozessen, die Sie aus dem formalen Prozess nie herausgelesen hätten. Abschliessend wird der dokumentierte Arbeitsablauf auf Effizienz überprüft. In Reviews mit dem Management lassen sich Abläufe und Prozesse abgleichen und für die neue Lösung optimieren. Hier haben Sie ganz unabhängig vom Software-Projekt die Gelegenheit, korrigierend in den Arbeitsablauf einzugreifen.
Rapid Prototyping
Können Sie sich einen Automobilhersteller vorstellen, der auf Basis einer schriftlichen Dokumentation und ohne Tests mit Prototypen ein Auto bis zur Serienreife entwickelt? Unvorstellbar. Aus genau den gleichen Gründen sollte auch Software besser nicht direkt auf Basis der schriftlichen Anforderungen programmiert werden. Erst durch Visualisierung werden die Anforderungen greifbar und formen sich zu einem verständlichen Bild für den Auftraggeber und alle weiteren Beteiligten. Um die Anforderungen zu visualisieren, wird der gesamte Arbeitsablauf als Abfolge von konkreten und leicht verständlichen Benutzeroberflächen auf Papier abgebildet. Diese sogenannten «Wireframes» machen die angedachte Lösung greifbar und somit diskutierbar. Die Mitarbeitenden sehen einen Lösungsansatz und können gezielt Verbesserungsvorschläge anbringen.
Anschliessend werden diese Papier-Prototypen mit allen betroffenen Mitarbeitern durchgesprochen und in schnellen Iterationen weiterentwickelt sowie optimiert. Dadurch ist ein Verbesserungsvorschlag kein unerwünschter Change Request, sondern ein willkommener Input. Sie werden staunen, wie viele Verbesserungsvorschläge hier aufkommen, die beim Durchlesen eines Pflichtenhefts niemals aufgefallen wären. Der grosse Vorteil solcher Prototypen: Sie sind extrem schnell erstellt und noch schneller geändert. Somit lassen sich weit vor der Realisierung und auf effiziente und kostengünstige Weise verschiedene Varianten ausprobieren und Erkenntnisse gewinnen, die ansonsten erst während der Umsetzung oder gar noch später zum Vorschein kommen würden.
User Centered Engineering
Je intensiver die späteren Nutzer in die Entwicklung einer Lösung eingebunden sind, desto höher ist deren Akzeptanz. Mit dem beschriebenen Vorgehen beteiligen sich die späteren Anwender genauso wie alle anderen Anspruchsgruppen aktiv am gesamten Entwicklungsprozess. Dahinter verbirgt sich keine neu entwickelte Methodik, sondern schlicht das seit Jahrzehnten bewährte Vorgehen des Total Quality Managements: Beziehen Sie alle Anspruchsgruppen, die zur Qualität der Lösung beitragen müssen, systematisch in die Entwicklung mit ein. So stellen Sie sicher, dass das Ergebnis höchste Akzeptanz erhält.
Fazit: Gelebte Prozesse
Wenn Sie diese Vorarbeiten richtig machen, wird Ihr Software-Projekt auch zum Erfolg. Die Lösung ist in Form von Prototypen in allen Projektphasen greifbar und leicht verständlich und dient als Kommunikationsmittelpunkt für alle Beteiligten. Sie wird als verständlicher User-Interface-Prototyp zusammen mit allen Anspruchsgruppen entwickelt. Änderungswünsche werden so vor der kosten- und zeitintensiven Realisierung eingebracht und diskutiert. Damit profitieren Sie von deutlich weniger Änderungsanforderungen während der Realisierung sowie nach dem Launch und verhindern den Grossteil aller funktionalen Change Requests. Eine mit diesem Vorgehen erarbeitete Lösung ergibt in der Folge eine viel höhere Effizienzsteigerung in der Prozessunterstützung gegenüber einer Lösung nach klassischem Vorgehen. Zwar mag diese Methode auf den ersten Blick aufwendiger klingen. Durch die optimale Unterstützung Ihrer Prozesse haben Sie den Mehraufwand aber in Kürze wieder wettgemacht.