Wie skaliert man eine monolithische MVP-Anwendung, ohne das Geschäft zu verlieren?
Der Kunde hatte sein MVP bereits mit realen Nutzern getestet und wollte das Produkt skalieren. Aufgrund technologischer und geschäftlicher Einschränkungen war es ihm jedoch nicht möglich, dies intern zu tun. Als Lösungs- und Prozessberater sowie Entwicklungsexperten begleitete das Boldare-Team den Kunden durch den Übergang, während die App weiterhin voll funktionsfähig blieb.

Table of contents
Zusammenfassung
Der Kunde wandte sich an Boldare mit einem MVP seiner SaaS-App. Das Produkt wurde mit realen Nutzern getestet und erwies sich als wertvoll. Allerdings war es nicht skalierbar, musste stabilisiert werden und benötigte einige neue, wichtige Funktionen. Der Kunde war bereit, das Produkt auf die nächste Stufe zu heben, wollte jedoch gleichzeitig, dass die App während der Entwicklung voll funktionsfähig bleibt. Da der Kunde die interne Entwicklungskapazität nicht rechtzeitig erweitern konnte, bat er Boldare um Unterstützung. Als Lösungs- und Prozessberater unterstützte ein Boldare-Team aus Entwicklern, Scrum Master, Designern und QA den Kunden dabei, seine geschäftlichen und technologischen Ziele zu erreichen. Die Verbesserungen an der SaaS-App halfen dem Kunden, 3 Millionen Dollar an Investitionen zu gewinnen, und die B2B-Nutzer des Produkts berichteten von einem zehnfachen Wachstum dank der Webanwendungen. Darüber hinaus ist das Entwicklungsteam des Kunden während der Zusammenarbeit deutlich gewachsen, und Boldare arbeitet weiterhin mit ihnen an der App.
Der Kunde
\ Der Kunde ist ein Online-Marktplatz für Reinigungsdienste. Das Unternehmen ist in den VAE, dem Königreich Saudi-Arabien und Libanon tätig. Neben der Unterstützung von Hauseigentümern auf der Suche nach Hilfe bietet das Unternehmen auch ein SaaS-Produkt sowie eine Web- und Mobile-App für gewerbliche und private Reinigungsunternehmen an.
Das Produkt ermöglicht es B2B-Nutzern, Buchungen, Terminplanung, Logistikrouten, Zahlungen und Buchhaltung für ihr Reinigungsunternehmen durchzuführen – eine vollständig integrierte Lösung zur Verwaltung des Hauswirtschaftspersonals, der Fahrer und Dispatcher des Kunden.
Als der Kunde sich an Boldare wandte, war ihr SaaS-MVP bereits mit realen Nutzern getestet worden und hatte gut auf die Marktbedürfnisse reagiert. Der CTO des Kunden wusste, dass sie, um die App auf das nächste Level zu bringen, die App skalieren mussten, ohne dabei Einnahmen zu verlieren. Der Übergang musste für die SaaS-Nutzer nahtlos erfolgen.
Problem: Skalierung einer monolithischen App bei gleichzeitiger Aufrechterhaltung des Geschäftsbetriebs
Technische Herausforderungen
\ Der Kern der App wurde im Yii-Framework entwickelt und war nicht skalierbar. Der CTO entschied sich, die App auf ein skalierbareres Framework zu migrieren und wählte Symfony. Die App musste stabilisiert werden – jedes Mal, wenn eine neue Funktionalität bereitgestellt wurde, hatte dies Auswirkungen auf den Rest der App und verursachte Probleme für die Endnutzer. Die mangelnde Stabilität war eine Bedrohung für das Geschäft und ein großes Hindernis für das Wachstum des Unternehmens und des SaaS-Produkts.
Das Produkt benötigte auch neue Funktionen, die für die weitere Entwicklung des Geschäfts entscheidend waren, wie zum Beispiel den Verkauf von Reinigungspaketen, wie von den B2B-Kunden gewünscht.
Geschäftliche und betriebliche Herausforderungen
Während der Entwicklungsarbeit musste das Produkt 24/7 nutzbar sein, um den normalen Betrieb der App zu ermöglichen.
Der Kunde hatte ein kleines internes Entwicklungsteam, das an dem SaaS-Produkt arbeitete, das sie skalieren wollten. Sie wussten jedoch, dass die Rekrutierung von Entwicklungstalenten in den VAE zeitaufwändig und teuer wäre. Sie brauchten ein Team, das so schnell wie möglich mit der Arbeit an der App beginnen konnte. Outsourcing war ihre einzige praktikable Option. Der Kunde hatte jedoch schlechte Erfahrungen mit kostengünstigem Software-Outsourcing gemacht, hauptsächlich aufgrund der Qualität des Codes.
Den richtigen Partner finden
Der Kunde wollte auch mehr über effektive Webentwicklungsprozesse und Codequalität lernen. Daher suchten sie einen Partner, der ihnen helfen konnte, ihre eigene Arbeit zu verbessern – ein Beratungsunternehmen mit rigorosen internen Entwicklungsprozessen und einer soliden Erfolgsbilanz bei der Arbeit mit dem Scrum-Framework.
Der CTO des Kunden recherchierte über Clutch.co, einer B2B-Forschungsagentur, nach Softwareentwicklungsunternehmen, die auf Symfony spezialisiert sind. Sie wählten Unternehmen aus Ländern mit vernünftigen Entwicklungspreisen: Indien, Pakistan, Ungarn, Rumänien und Polen.
Die Auswahlkriterien umfassten ein Portfolio an Kunden, technische Expertise, ein erfahrenes Entwicklungsteam und schnelle Verfügbarkeit.
Bei der Auswahl von Boldare war der CTO vom Portfolio beeindruckt (einschließlich bekannter Marken wie BlaBlaCar). Er interviewte auch alle Mitglieder des Boldare-Entwicklungsteams, die für das Produkt ausgewählt wurden, um deren technisches Wissen zu bewerten, und schaute sich die Entwicklungsprozesse des Unternehmens sowie die Scrum-Erfahrung an. Das für das Produkt ausgewählte Team hatte auch in der Vergangenheit bereits zusammengearbeitet, was garantierte, dass sie schnell ein hohes Leistungsniveau erreichen würden. Schließlich war das Boldare-Team innerhalb von 10 Tagen verfügbar, um mit der Arbeit an der SaaS-App zu beginnen.
Solution
Ein selbstorganisierendes Entwicklungsteam mit allen erforderlichen Fähigkeiten für den Job
Boldare begann die Entwicklung mit einem Team von sechs Personen, einschließlich Backend- und Frontend-Entwicklern, einem Grafikdesigner und einem Scrum Master. Die Teamzusammensetzung berücksichtigte die Prioritäten des Kunden sowie die bevorstehende Produktentwicklung.
Das Hauptziel war es, das interne Entwicklungsteam des Kunden zu erweitern, Kräfte zu bündeln und gemeinsam an einem gemeinsamen Backlog zu arbeiten.
Die Größe des Boldare-Teams war während der Entwicklung flexibel (von 5 bis 15 Mitgliedern) und passte sich den Bedürfnissen und dem Arbeitsaufwand des Kunden an.
Die Skalierung der App
Die erste Aufgabe des Teams war es, die Qualität der aktuellen Lösung zu bewerten und die gefährlichsten Mängel zu identifizieren, die die Implementierung der geplanten Funktionen beeinträchtigen könnten.
Die Entwickler aktivierten und beheben alle alten Unit- und Funktionstests, bereiteten die kontinuierliche Integration vor, verlagerten die Entwicklungsumgebung in Container und passten ihre Konfiguration an die Produktionsserver an. Parallel dazu arbeitete das Team an der Behebung der wichtigsten Fehler, die die Endnutzer der App blockierten.
In der Zwischenzeit konnte der Grafikdesigner von Boldare einige entscheidende Teile des Systems neu gestalten, um die UX zu verbessern.
Nach der anfänglichen Stabilisierung der Anwendung war das Entwicklungsteam bereit, mit der Implementierung der ersten Funktionalitäten zu beginnen, weiterhin innerhalb des Legacy-Codebases.
Gleichzeitig begann das Boldare-Team, Optionen für die Migration der Legacy-Lösung auf unterstützte Versionen der Programmiersprachen und modernere Frameworks zu recherchieren.
Da die Anwendung 24/7 funktionsfähig bleiben musste, entschied sich das Team, den Legacy-Code in die neue Symfony2-Anwendung zu integrieren und ein „Strangler Pattern“ zu implementieren – das schrittweise Ersetzen der Funktionen des Legacy-Systems durch neue, hochwertige Implementierungen, die durch Unit-Tests abgedeckt und den aktuellen Coding-Standards entsprechen.
Nachdem die Kern-Framework-Funktionalitäten ersetzt wurden, konnte das Team das Produkt auf eine Cloud-Lösung mit einem Load-Balancer vorne und vielen Instanzen der Anwendung verlagern.
Darüber hinaus wurden zur Beschleunigung des Prozesses zur Verbesserung der Qualität und Leistung Implementierungen einiger wichtiger Geschäftsprozesse von der monolithischen Anwendung auf Microservices verlagert. Der Prozess ist noch im Gange, und das Team erwartet bald die Veröffentlichung der neuen Anwendungen in der Produktion.
Scrum-Framework
\ Vom Beginn der Produktentwicklung an arbeitete das Team im Scrum-Framework. Mit einem Scrum Master an Bord, der dem Team half, sich an den Prozess zu halten, begann das interne Team des Kunden schnell, diesem genau zu folgen.
Boldare stellte dem Kunden auch ergänzende Beratungsunterstützung zur Verfügung, um seine Scrum-Prozesse zu stärken. Der Scrum Master von Boldare hielt regelmäßige 1-zu-1-Sitzungen mit dem Product Owner des Kunden ab, um ihm zu helfen, das Framework besser zu verstehen und sein volles Potenzial in der Produktentwicklung zu nutzen.
Das Boldare-Team wurde zu einer Erweiterung des Entwicklungsteams des Kunden, und das Scrum-Framework half dabei, die Team-Geschwindigkeit zu erhöhen. Das gesamte Team, das in Gliwice, Warschau und Dubai ansässig war, nahm an gemeinsamen Retrospektiven teil, um Spannungen abzubauen, die Leistung zu verbessern und gute Praktiken zu stärken.
Ständige Kommunikation
\ Das Team kommunizierte über Slack oder schnelle Google Hangout-Anrufe. Jira sorgte für Transparenz im gesamten Team, einschließlich des Product Owners und externer Stakeholder.
Der Product Owner war auf der Seite des Kunden und sehr reaktionsschnell auf Fragen des Teams und Feedback-Anfragen. Das Backlog war gut priorisiert und das Team kannte die Produkt-Roadmap sowie die Endziele. Dies ermöglichte eine deutliche Beschleunigung des Entwicklungsprozesses.
Beratung
\ Das Boldare-Team führte den Kunden in Qualitätsstandards für Code wie GitFlow und S.O.L.I.D. ein. Boldare begann damit, eine Code-Überprüfung für alles vorzuschlagen, was in ein Repository zusammengeführt wurde. Der nächste Schritt bestand darin, den Kunden mit dem CI-Prozess vertraut zu machen, Tests zu aktivieren, die aus dem Code auskommentiert waren, und statische Code-Analyse zu ermöglichen. Am Ende stimmte das gesamte Entwicklungsteam zu, der „Boy Scout Rule“ zu folgen, dass jede neue Änderung im Code mit Tests abgedeckt sein sollte.
Ergebnisse
Durch die enge Zusammenarbeit gelang es dem Team, die App zu stabilisieren, Continuous Integration einzuführen, die UX zu verbessern und die monolithische Anwendung auf Microservices umzustellen.
Zu den neu entwickelten Funktionen gehören „Incidents“ (zur Unterstützung des Betriebsteams bei der Meldung von Problemen während einer Reinigungssitzung), „Automatische Rechnungsstellung“ (zur Zeitersparnis für B2B-Nutzer und besseren Management der Kundenbeziehungen) und „Pakete“ (zum Verkauf von Reinigungsdiensten in Mehrfach-Sitzungs-Paketen, was die Einnahmen für die B2B-Kunden des Kunden drastisch steigert).
Die Verbesserungen am Produkt halfen dem Kunden, 3 Millionen Dollar in einer Series-A-Investition zu sichern und das Produkt auf weitere Märkte im MENA-Raum auszurollen.
Das Produkt bediente erfolgreich Kunden während des gesamten Entwicklungsprozesses und ermöglichte mehr als 500.000 Buchungen für über 2.000 Reinigungskräfte und Fahrer.
Reinigungsunternehmen, die mit dem Kunden zusammenarbeiten und das SaaS-Produkt nutzen, berichten von einer zehnfachen Steigerung ihres Geschäfts dank der Produkte des Kunden.
Dank der Zusammenarbeit und des Wissensaustauschs mit Boldare hat das Entwicklungsteam des Kunden ein besseres Verständnis des Scrum-Frameworks, standardisierte Entwicklungsprozesse und verbesserte Code-Standards.
Während der Zusammenarbeit konnte der Kunde sein internes Entwicklungsteam vergrößern, setzt jedoch weiterhin auf eine enge Zusammenarbeit mit Boldare für die weitere Produktentwicklung.
Das Team arbeitet derzeit an neuen Funktionen, darunter ein Zahlungsmodul, um Reinigungsunternehmen eine Zahlungslösung anzubieten.

Share this article: