Software Modernisierung am Beispiel der digitalen Projektzeiterfassung
Agile Softwareentwicklung – unser Vorgehen für schnelle Ergebnisse
Als IT-Dienstleistungsunternehmen unterstützen wir unsere Kunden mit großer Leidenschaft beim Thema Digitalisierung mithilfe individueller Softwareentwicklung. Auch bei unseren eigenen Geschäftsprozessen achten wir auf Modernität und Effizienz, um den bestmöglichen Komfort zu bieten. Das Vorgehen zur Digitalisierung der eigenen Arbeitsumgebung unterscheidet sich dabei kaum von dem Vorgehen in unseren Kundenprojekten. Unsere agile Softwareentwicklung zeichnet sich durch schnell sichtbare Ergebnisse und konstante Einarbeitung von Kunden-Feedback aus. Das beste Beispiel dafür ist unsere eigene Online-Projektzeiterfassung.
Schritt 1: Vision und Identifizierung der Handlungsbedarfe – Ziel: Software Modernisierung
Wie bei all unseren Kundenprojekten begannen auch unsere internen Digitalisierungsbestrebungen mit einer Vision. Unser Projektzeiterfassungstool auf Basis von Dynamics NAV (ehemals Navision) war bereits in die Jahre gekommen und kostete uns durch die aufwändig zu bedienende Oberfläche mittlerweile zu viel Zeit und Ressourcen. Unsere Vision war also die Software Modernisierung auf Azure Basis – mit anderen Worten: die Entwicklung einer beschleunigten Cloud-Software zur Erfassung unserer Aufwände. Dabei sollte die Eingabe wie gewohnt nach Stunden-Anzahl, Datum, Projektnummer, Projektposition, Beschreibung und Buchungstext erfolgen und durch vorgefertigte Textbausteine die Benutzerfreundlichkeit und Effizienz gesteigert werden. In einer unternehmensweiten Umfrage beschrieben wir diese Vision und identifizierten Optimierungspotenziale.
Schritt 2: Organisation der Verantwortlichkeiten im Scrum Team
Sobald der Handlungsbedarf erkannt ist, gilt es ein auf dieses Projekt ideal abgestimmtes Team zusammenzustellen und das Vorgehen zu bestimmen. Auch in internen Projekten besteht ein solches Projektteam aus Verantwortlichen für die Aufgaben, Organisation und Entwicklung. Diese Rollenverteilung entspricht der agilen Scrum-Methodik.
Wir entscheiden uns auch in internen Projekten für das Vorgehen nach Scrum, weil wir so sicherstellen können, dass das Projekt stets die aktuellen Zielvorstellungen aller Beteiligten berücksichtigt. Die regelmäßigen Meetings dienen dabei als erste Anlaufstelle für Feedback-Schleifen und erlauben damit eine stets aktuelle Einschätzung und Priorisierung aller anfallenden Aufgaben.
Schritt 3: Ziele und Aufgaben der Softwareentwicklung strukturieren und visualisieren
Der agile Scrum-Ansatz sieht vor, dass der Product Owner alle Features und Aufgaben in einer Liste (auch: Backlog) zusammenstellt, ehe die eigentliche Entwicklungsarbeit beginnt. Beim ersten Hinzufügen der Aufgaben ins Backlog können diese noch sehr grob formuliert sein. Die kontinuierliche Weiterentwicklung führt dazu, dass diese Backlog-Items irgendwann sämtliche Anforderungen beinhalten und dementsprechend umgesetzt werden können. Um die Aufstellung der anfallen Aufgaben zu erleichtern, arbeiten wir gerne mit klickbaren UI-Skizzen (auch: Wireframes), in denen die Anforderungen und Wünsche der Anwender und des Product Owners erstmalig grafisch dargestellt werden. Wireframes stellen eine grobe Visualisierung der Software-Kernfunktionen dar und dienen später als Vorlage für die Programmierung.
Unsere Auswertungen und Wireframes unterstützen den Product Owner zunächst dabei, informelle und einfache Erklärungen zu den gewünschten Features aufzustellen. Diese Erklärungen werden auch User Storys genannt:
- Als User möchte ich in einer Webanwendung meine fakturierten Zeiten vordefinierten Projekten zuordnen können, um keine Zeit mehr bei der Suche nach der richtigen Projektnummer zu verlieren.
- Als Projektmanager möchte ich in der Anwendung zur Projektzeiterfassung einen Einblick in den Budgetverbrauch eines Projektes bekommen, um ggfs. Nachbudgetierungen rechtzeitig beantragen zu können.
- Als Mitarbeitender möchte ich erfasste Positionen kopieren und einfügen können, um den täglichen Zeiterfassungsaufwand in Grenzen zu halten.
- Als Mitarbeitender möchte ich mein Restbudget für das Projekt schnell und einfach einsehen, damit ich das weitere Vorgehen planen kann.
Anschließend wandelt der Product Owner zusammen mit dem Entwicklungsteam diese User Storys in einzelne Backlog-Items um. Backlog-Items sind Arbeitseinheiten, die innerhalb einer vorgeschriebenen Zeitspanne von einem Entwicklungsteam abgewickelt werden können. Die Zeitspanne, in der eine vordefinierte Anzahl an Backlog-Items in einem sich wiederholenden Prozessablauf abgearbeitet werden, nennt sich auch Iteration. Zur Verwaltung der Backlog-Items verwenden wir sowohl intern als auch bei Kundenprojekten das Tool Azure DevOps. Hierüber können unsere Kunden und das Entwicklungsteam sämtliche Scrum-Elemente verwalten und Einblicke in den Projektverlauf erhalten.
Schritt 4: Agile Softwareentwicklung mit regelmäßigen Test- und Feedbackschleifen
Trotz oder gerade wegen der angestrebten Agilität setzen wir uns innerhalb der ersten Iterationen stets das Ziel, so schnell wie möglich einen Produktstand zu erreichen, der die Anbindung von Test-Usern und damit auch das Einholen von Nutzer-Feedback ermöglicht. Ein besonderes Augenmerk liegt hierbei auch auf einer automatisierten Installation der Software auf der Test-Umgebung, sodass Änderungen schnell und ohne manuelle Eingriffe den Test-Benutzern zugänglich gemacht werden können. Dieser automatisierte Prozess wird anschließend noch erweitert, sodass nach einer Freigabe auch die Produktiv-Umgebung automatisiert auf eine neue Softwareversion aktualisiert werden kann.
Um ein breitgefächertes Nutzer-Feedback zu erhalten, stellten wir auch bei der Online-Projektzeiterfassung schnellstmöglich ein Team aus potenziellen Nutzern zusammen. Durch wöchentliche Absprachen konnten die Entwickler den aktuellen Stand der Software regelmäßig vorstellen und Tester ihre Verbesserungsvorschläge und Anmerkungen hervorbringen. Gerade deshalb ist unser anfängliches Backlog in jedem Projekt als dynamische Liste zu verstehen, die – wenn sinnvoll – Änderungen unterliegen kann. Beispiele für sinnvolle Anpassungen, die erst durch User-Feedback offensichtlich wurden, gibt es viele:
Arbeitszeit-Überschreitung:
Zu Beginn des Projekts war vorgesehen, dass eine Überschreitung der standardmäßig festgelegten Arbeitsstunden durch die gelbe Einfärbung der Tagessäulen sofort erkennbar ist. Wurde die gesetzlich festgeschriebene Obergrenze von 10 Stunden überschritten, erfolgt eine rote Markierung. Den Usern ist aber schnell aufgefallen, dass nicht jeder Mitarbeitende über eine 40-Stunden-Woche verfügt. Für das Scrum Team stand damit schnell fest, dass die nächste Version den Nutzenden die freie Konfiguration des täglichen Soll-Stundensatzes ermöglichen sollte.
Projektverantwortliche finden:
Neben der Anzeige der Projektzeitbudgets hat sich schnell herausgestellt, dass Consultants auch von der Anzeige der jeweiligen vertrieblichen Kontaktperson profitieren würden. Auch diese nützlichen Anpassungswünsche wurden in der Regel noch während der aktuellen Iteration berücksichtigt.
Schritt 5: Software-Ergebnis mit hoher Anwenderzufriedenheit
Durch diese Dynamik in der Projektsteuerung ist es uns gelungen, ein Multi-Device-fähiges Tool in unseren Arbeitstag zu integrieren, das unternehmensweit Zustimmung findet, eine genaue Dokumentation und Kategorisierung der Projektaufwände ermöglicht und die Qualität der Rechnungsstellung erhöht. Eine wichtige Rolle für den Erfolg spielten dabei auch folgende Aspekte:
Change Management
Einmal implementiert, gilt es alle Anwender für die neue Software zu begeistern. Wie bei externen Projekten auch, hat hier unser Change Management Team mit einer Vielzahl an Kommunikations- und Schulungsmaßnahmen sowie Präsentationsvideos dafür gesorgt, dass wirklich jeder Mitarbeitende über das Tool und dessen zielgeführte Nutzung aufgeklärt wurde. Die tägliche Online-Projektzeiterfassung via Teams App oder Intranet Web App ist damit heute zum selbstverständlichen Bestandteil unseres Arbeitstages geworden.
Anpassungen und Updates
Dabei ist es wichtig zu verstehen, dass eine Anwendung mit hoher Zustimmung auch weiterhin Optimierungspotenzial bietet. Unser Projektzeiterfassungstool stellt sich beispielsweise nach wie vor Iterations- und Feedbackschleifen. Schließlich profitiert auch ein fertiggestelltes Softwareprodukt langfristig von kontinuierlichen Anpassungen und Neuerungen.
Agile Softwareentwicklung oder Softwaremodernisierung benötigt?
Wir beraten Sie gerne bei der Digitalisierung Ihrer Geschäftsprozesse und unterstützen Sie beim Feinschliff Ihres Modern Workplace mit Softwareentwicklung für jeden Business Case.