Der Weg zu Ihrer fertigen Software
Im Laufe der Jahre haben wir gelernt, welche Schritte man gehen muss, um ein Softwareprojekt erfolgreich abzuschließen. Hier erklären wir sie im Detail, damit Sie wissen, was Sie in der Zusammenarbeit mit uns erwarten dürfen!
1. Schritt im Softwareprojekt: Kontaktaufnahme
Der Startpunkt eines jeden Projekts ist Ihre Anfrage, die wir per E-Mail oder Telefon erhalten.
Das Team unserer Product Owner:innen entscheidet gemeinsam, wer die Anfrage übernimmt. Für diese Entscheidung ist maßgeblich, wer Zeit und die (möglicherweise nötige) spezielle Expertise hat.
Was sind Product Owner?
Kurzer Einschub für alle, die sich jetzt fragen, was denn ein "Product Owner" ist: Der Begriff "Product Owner" stammt aus Scrum, einem der bekanntesten Vertreter des agilen Projektmanagements.
Product Owner:innen sind die internen Stellvertreter:innen des Kunden in unserem Team. Sie sind Ihre Ansprechpartner:innen und repräsentieren Ihre Wünsche und Anforderungen.
2. Schritt: Ein Telefonat, um über das Softwareprojekt zu reden
Wenn entschieden ist, welche:r Product Owner:in die Sache übernimmt, nimmt er/sie Kontakt mit Ihnen auf.
Bei uns ist das Erstgespräch immer ein Telefonat oder Online-Meeting. Das ist weit effizienter als ein sofortiges Treffen oder seitenlange E-Mails – und zwar für beide Seiten, da man so schon viele wichtige Themen klären kann:
Sind wir der richtige Ansprechpartner? Können wir die Leistung erbringen, die Sie benötigt? Dafür müssen wir grob verstehen, was Sie wollen bzw. brauchen. Das Telefonat ist eine Art Beratungsgespräch, in dem wir auch skizzieren, wie wir vorgehen und was die nächsten Schritte sind.
Unser:e Product Owner:innen klopften auch das Ressourcen-Thema ab. Wir fragen nach der geplanten Durchlaufzeit und dem vorgesehenen Budget, das wir auf Basis unserer Erfahrungen als realistisch oder unrealistisch einschätzen können.
Ein weiterer wichtiger Punkt sind in dieser Anfangsphase auch die personellen Kapazitäten. Viele Projekte brauchen einen zeitlichen Einsatz von Kundenseite: Zum einen in der Konzeptionsphase für das Mitdenken, zum anderen auch bei der Umsetzung.
Wenn nach diesem Telefonat für beide Seiten klar ist, dass ein gemeinsames Projekt interessant und möglich ist, folgt im nächsten Schritt das persönliche Kennenlernen!
3. Schritt: Persönliches Gespräch
Das erste persönliche Treffen ist immer kostenlos und findet im Idealfall in einer größeren Runde statt: Auf Seiten Ihrer Seite nehmen idealerweise die Personen teil, die in das Projekt involviert sind und die Entscheidungen darüber treffen. Von unserer Seite sind oft zwei unserer Product Owner:innen dabei, wenn es sich um ein komplexes Projekt handelt.
Während des Treffens wird mehr auf die Details Ihres Projekts eingegangen und wir erklären genau, wie wir arbeiten, um eine wirklich gute Lösung für unsere Kunden umzusetzen.
Auf Basis der Infos aus diesem Gespräch ist auch eine erste, sehr grobe Einschätzung der Kosten möglich. Ein Angebot legen wir jedoch immer erst nach der Konzeption und Schätzung.
4. Schritt: Angebote für Konzeption und Umsetzung
Das erste unserer Angebote beinhaltet die Konzeption des Projektes – denn ohne detaillierte Konzeption zu starten ist wie ein Haus auf Basis einer Bierdeckel-Skizze zu bauen.
Dem Angebot für die Konzeption gehen schon einige Überlegungen voraus: Die Product Owner:innen denken darüber nach, was alles in die Konzeption für dieses Projekt einfließen muss ("wir überlegen uns, was wir uns in der Konzeption überlegen müssen", hat es ein Kollege einmal treffend formuliert).
Dauer der Konzeption
Sie bekommen das Angebot für die Konzeption und sobald Sie es bestellt haben, startet die Konzeption – diese dauert oft länger, als viele Kunden sich das vorher vorstellen. Wochen und Monate sind keine Überraschung für uns; nicht selten dauert diese Phase solange wie die Umsetzung der Software selbst. Weshalb das so ist bzw. was alles in die Konzeption hineinfällt, haben wir vor einiger Zeit in dem Artikel "Software Design" zusammengefasst.
In manchen Fällen ist bei der Konzeption auch schon ein Entwicklungsteam beteiligt; z.B. wenn Vorab-Tests zur Evaluierung nötig sind (auch "Spike" genannt).
Schätzung und Angebot für Umsetzung
Das Resultat der Konzeption ist die Basis für die Schätzung. Diese macht das zuständige Entwicklungsteam gemeinsam mit dem/der Product Owner:in, der/die diese dann mit Ihnen bespricht.
Hin und wieder sind dann noch Anpassungen im Umfang des Projekts notwendig, zum Beispiel um ein vorgegebenes Budget einzuhalten – dafür arbeitet unser:e Product Owner:in gemeinsam mit Ihnen die wichtigsten Funktionen für die erste Version heraus (Stichwort: Minumum Viable Poduct).
Wenn die Schätzung mit Ihnen besprochen ist, erstellt der Product Owner das zweite Angebot. Und wenn dieses von Ihnen – zu unserer großen Freude – bestellt wird, geht es an die Umsetzung!
5. Schritt: Umsetzung Ihrer Software
Der/die Product Owner:in trägt das Projekt mit dem geschätzten Aufwand in die Planung des ausgewählten Teams ein. Die Teamplanung erfolgt in einem Excel-Sheet, das sich als grobe Projekt-Übersicht bewährt hat und in dem unter anderem auch die Urlaube einzelner Teammitglieder, Feiertage etc. berücksichtigt sind.
Bei der nächsten Sprintplanung wird das Projekt vom Team detaillierter eingeplant (Start, Durchlaufzeit & Ende). Das Team macht diese Planung vollkommen eigenständig und gibt dem/der Product Owner:in danach die Info.
Manchmal kommt es vor, dass es für ein Projekt aus guten Gründen eine bestimmte Deadline gibt (z.B. ein Event, bei dem die neue App oder die neue Website präsentiert werden soll). Es kann passieren, dass das Team diese nicht erreichen kann, da andere Projekte davor eingeplant sind. Dann werden diese Projekte neu priorisiert, um das Projekt vorschieben zu können.
Das bedeutet natürlich auch, dass die Product Owner:innen mit ihren jeweiligen Kunden reden, um die neuen Zeitpläne abzustimmen. So müssen diese zwar etwas länger auf ihre Softwarelösung warten, dafür können wir aber auch dafür sorgen, dass wirklich dringende Projekte schnell umgesetzt werden!
Die Sprintplanung
Oben im Text haben wir von "Sprintplanung" geredet und so mancher wird den ersten Teil des Worts nur aus dem Sport kennen. In unserem Fall kommt er aus der agilen Softwareentwicklung: Unsere Teams arbeiten in einwöchigen Sprints. Die Planung dieser Sprints findet also einmal die Woche statt (pro Team an unterschiedlichen Wochentagen). In dieser Sprintplanung wird zum einen der vergangene Sprint betrachtet (Lief es wie geplant? Ist alles fertig?), zum anderen der kommende Sprint geplant.
Die Basis für die Planung sind die sogenannten User Stories. Das sind in Alltagsprache geschriebene Anforderungen an die Software. Sie sind aus User-Sicht geschrieben und folgen idealerweise der Formel: "Um diesen Nutzen zu haben, möchte ich als User das tun können." (z.B. "Als registrierter Webshop-Nutzer möchte ich meine letzten Bestellungen aufrufen können, um ein Produkt einfach nachbestellen zu können."). Diese User Stories wurden schon bei der Konzeptionierung des Projekts geschrieben und mit Ihnen besprochen.
Die Sprintplanung macht das Team alleine, nur wenn es spezielle Fragen zum Projekt oder einer User Story hat, holt es den/die Product Owner:in dazu. Wichtig ist uns auch, dass das Team nur an geplanten Dingen arbeitet. Für ungeplante Arbeiten wird extra ein gewisser Prozentsatz an Arbeitszeit fix bei der Sprintplanung eingeplant!
Der/die Product Owner:in ist übrigens während des gesamten Projekts Ihr Ansprechpartner, repräsentiert Sie gegenüber dem Team und testet die fertiggestellten Funktionen. Gleichzeitig hat er/sie auch die Verantwortung für den finanziellen Erfolg des Projekts.
Womit wir arbeiten
Ein paar kurze Worte zu unseren "Werkzeugen": Neben dem schon erwähnten Excel-Sheet verwenden wir in der CSS den Team Foundation Server (TFS) von Microsoft. Über den TFS können Projekte geplant, erstellt und verwaltet werden.
Damit verbunden ist ein Tool, dass wir selbst entwickelt haben und sich "Alice" nennt. In Alice können unsere Entwickler:innen sowie Product Owner:innen nach den User Stories suchen, um die darauf verwendete Zeit zu buchen.
Diese Buchungen sind für uns sehr wichtig: Die so gesammelten Daten sind Erfahrungswerte, auf Basis derer wir noch bessere Schätzungen für neue Projekte machen können. Außerdem können wir anhand dieser Buchungen Projekte abrechnen, die auf Aufwand gemacht werden, sowie generell den Projektstand einsehen.
Die Demos für Sie während des Softwareprojekts
Ein wichtiger Teil der Umsetzung sind die regelmäßigen Demo-Meetings mit Ihnen, entweder persönlich oder online. Theoretisch können wir jede Woche, nach jedem Sprint, die neuen Features präsentieren. Praktisch findet – abhängig von der Projekt-Art – eine Demo sinnvollerweise alle zwei oder drei Wochen statt.
Die Demo-Meetings bietet Ihnen die Möglichkeit, von Anfang an Feedback zu geben und zu testen. Idealerweise sind auf Ihrer Seite schon Personen dabei, die die Softwarelösung nach der Fertigstellung nutzen werden, da diese das beste Feedback geben können.
Dieses regelmäßige Feedback sorgt dafür, dass wir schnell und ohne großen Aufwand kleine Kurskorrekturen vornehmen können und nicht am Ende dem fertigen, großen "Tanker" mühsam eine neue Richtung geben müssen.
In vielen Fällen ist bei dem Demo-Meeting auch das Entwicklungsteam anwesend. So bekommt es direkt das Feedback von Ihnen und kann so besser verstehen, was Sie sich vorstellen.
Generell haben wir von Anfang an ein UAT-System (UAT steht für User Acceptance Test) für Ihre Software, auf das Sie ab einem bestimmten Projekt-Stand zugreifen können.
6. Schritt: Die Abnahme des Software
Das letzte Demo-Meeting sorgt für glückliche Gesichter, denn Sie nehmen die fertige Software ab!
7. Schritt: Ihre Software ist fertig!
Nach dem Abnahme erfolgt der "Live Release" der Software-Lösung an einem mit Ihnen abgestimmten Termin. Erfahrungsgemäß kommt danach noch sehr viel Feedback: Vieles fällt erst auf, wenn die Software intensiv von unterschiedlichsten User*innen genützt wird. Die Zeit für dieses Feedback berücksichtigen wir schon in unserer Planung.
Unser Softwareservice
Mit dem Live Release endet unsere Arbeit natürlich nicht. Wir bieten im Bereich Softwareservice (Wartung) verschiedene Leistungen an, die auf den jeweiligen Kunden und die Technologie zugeschnitten sind. Dabei arbeiten wir sowohl reaktiv (sprich: wir lösen auftauchende Probleme), als auch proaktiv (wir kümmern uns zum Beispiel um rechtzeitige Updates).
Auch nach der Lieferung der Software ist der/die Product Owner:in weiterhin für Sie da und verantwortlich dafür, dass Sie über lange Zeit mit der Software glücklich ist!