Ihre Anwendung ist im Einsatz, und ihre Nutzer nutzen sie jeden Tag. Der Dienstleister, der sie entwickelt hat, antwortet nicht mehr, oder er entwickelt sie nicht mehr im Tempo Ihres Geschäfts weiter. Manchmal ist das Projekt in Verzug geraten, und der angekündigte Termin ist verstrichen.
Ein neuer Dienstleister kann vom bestehenden Code ausgehen. Eine Anwendung im Einsatz enthält Geschäftsregeln: Berechnungen, Sonderfälle. Oft sind sie nirgendwo anders aufgeschrieben als im Code. Er übernimmt ihn, versteht ihn und entwickelt ihn dann weiter, ohne kaputt zu machen, was funktioniert.
Webanwendung übernehmen: was ein neuer Dienstleister übernimmt
Eine Anwendung zu übernehmen heißt, sie mit einem anderen Team auf Grundlage des bestehenden Codes weiterzuentwickeln. Das betrifft Anwendungen, deren Entwicklung stehen geblieben ist, bevor sie in Betrieb gingen, und solche, die im Einsatz sind, sich aber nur noch schwer weiterentwickeln lassen.
Der neue Dienstleister übernimmt drei Dinge: den Quellcode, die Zugänge, mit denen man ihn online bringt, und das, was man über die Anwendung weiß. Das Dritte ist oft der heikelste Punkt. Bei einem einzigen Entwickler geht sein Wissen über die Software mit ihm, wenn er es nicht dokumentiert hat; deshalb lohnt es sich, dieses Wissen laufend aufschreiben zu lassen.
Eine Anwendung, die Ihren Bedarf erfüllt und sich ohne Mühe weiterentwickeln lässt, muss nicht übernommen werden.
IT-Dienstleister wechseln: was Sie zurückbekommen müssen
Bevor Sie Ihren bisherigen Dienstleister informieren, listen Sie auf, was an Sie zurückgehen muss. Damit beginnt eine Übernahme: zusammentragen, was auf Ihren Namen laufen muss, also den Quellcode, das Hosting, die Domain und die Konten der Drittdienste, die die Anwendung nutzt (Onlinezahlung, E-Mail-Versand, Kartendienste).
Laufen diese Konten auf den Namen des Dienstleisters, hat er den Zugang dazu. Verlangen Sie, dass sie auf Ihr Unternehmen übertragen werden, und legen Sie die noch fehlenden Konten auf dessen Namen an.
Verlangen Sie auch die Dokumentation, falls es eine gibt: wie man die Anwendung installiert, wie man sie online stellt, welche Tests prüfen, dass sie funktioniert.
Herausgabe des Quellcodes: was Ihr Vertrag über die Rechte sagt
Eine Kopie des Codes reicht nicht, um ihn mit einem anderen Dienstleister weiterzuentwickeln: Sie brauchen das Recht dazu. Wer die Rechnungen bezahlt, wird dadurch nicht Eigentümer des Codes. Das wird er durch den Vertrag, mit einer schriftlichen Übertragung der Rechte, die jedes übertragene Recht benennt.
Lesen Sie Ihren Vertrag also noch einmal, bevor Sie Ihren Wechsel ankündigen. Bleibt ein Teil des Codes Eigentum des Dienstleisters, prüfen Sie, ob die Lizenz, die er Ihnen einräumt, es erlaubt, diesen Teil jemand anderem anzuvertrauen. Im Zweifel lassen Sie die Klausel von einem Anwalt prüfen.
Die Reversibilitätsklausel im IT-Vertrag
Die Reversibilitätsklausel regelt Ihren Wechsel: die Herausgabe der Daten, den Zugang zu den Konfigurationen, die Übergabe der Dokumentation, die Kündigungsfrist. Enthält Ihr Vertrag eine, ist jetzt der Zeitpunkt, sich darauf zu berufen. Enthält er keine, hängt alles davon ab, was Ihr Dienstleister Ihnen zu übergeben bereit ist.
Für den Vertrag mit dem nächsten Dienstleister sehen Sie diesen Wechsel vom ersten Tag an vor, und proben Sie die Übernahme einmal, bevor Sie sie brauchen.
Quellcode-Audit: lesen, bevor man ändert
Sind die Zugänge beisammen, wird die Anwendung auf eine Abnahmeumgebung deployt, eine Kopie der Anwendung, auf der jede Änderung geprüft wird, bevor sie online geht. Der neue Dienstleister administriert sie, und sie bildet die Produktion nach. Dort liest er den Code und prüft, ob er ihn ohne Hilfe des bisherigen Teams bauen und online stellen kann.
Michael Feathers ist der Autor von Working Effectively with Legacy Code (Effektives Arbeiten mit Legacy-Code), erschienen 2004, dem Standardwerk für Entwickler, die bestehenden Code übernehmen. Darin definiert er Legacy-Code, also Code, den man von einem früheren Team erbt, schlicht als Code ohne Tests.
Ohne Tests lässt sich nicht schnell prüfen, ob eine Änderung an anderer Stelle etwas kaputt gemacht hat. Änderungen geschehen dann in kleinen, vorsichtigen Schritten. Die Weiterentwicklung wird langsamer.
Vor jeder Änderung beschreiben automatisierte Tests, was die Anwendung heute tut, für die Abläufe, auf die ihre Nutzer angewiesen sind. Erst danach wird sie geändert. Jede Änderung durchläuft eine Deployment-Pipeline, die diese Tests erneut ausführt, bevor die Änderung die Abnahmeumgebung erreicht.
Modernisierung oder Übernahme: behalten, was funktioniert
Bei Code, der sich nur schwer weiterentwickeln lässt, ist die Versuchung groß, alles neu zu machen. Wer die Anwendung komplett auf einmal neu schreibt, muss jedoch jede ihrer Geschäftsregeln einzeln wiederfinden. In dieser Zeit entwickelt sich die laufende Anwendung nicht weiter. Die neue Version bringt ihren Nutzern nichts, solange sie nicht fertig ist.
Die Modernisierung geht auch anders: in Teilen. Ein Teil wird ersetzt, wenn er die Weiterentwicklungen blockiert, die Sie brauchen, nicht weil er alt ist. Der Rest bleibt in dieser Zeit im Einsatz. Und jede Änderung geht einzeln in Produktion, nach ihrer Abnahme: Eine kleine Änderung ist weniger riskant als eine neue Version, die auf einen Schlag ausgeliefert wird.
Auch die Migration einer Anwendung gehört zu dieser Modernisierung: ihren Code auf eine neuere Version ihres Frameworks, auf eine andere Technologie oder auf eine andere Sprache zu bringen, ohne zu ändern, was sie für ihre Nutzer tut.
Agentur für die Übernahme von Webanwendungen: wie eine Übernahme abläuft
Bei DEVEDANOS sammeln wir zuerst die Zugänge und deployen die Anwendung auf eine Abnahmeumgebung. Danach schreiben wir die Tests für die Abläufe, auf die ihre Nutzer angewiesen sind, noch vor jeder Änderung. Gibt es Dokumentation, lesen wir sie.
Wir ersetzen einen Teil, wenn er die Weiterentwicklungen blockiert, die Sie brauchen, und wir behalten, was funktioniert. Die Entscheidung fällt gemeinsam mit Ihnen, nachdem wir den Code gelesen haben.
Bei einem verspäteten Projekt gehen wir mit Ihnen die Liste der geplanten Funktionen durch und ordnen sie nach ihrem Wert für die Nutzer Ihrer Anwendung. Die wichtigsten werden zuerst konzipiert, entwickelt und in Produktion gebracht, eine nach der anderen, jede nach ihrer Abnahme.
Für einen Hersteller von Freizeitfahrzeugen haben wir an der Entwicklung seines Marktplatzes mitgearbeitet. Das Projekt war bei einem anderen Dienstleister in Verzug geraten. Gemeinsam mit dem Kunden und diesem Dienstleister haben wir die Entwicklung auf die wesentlichen Funktionen konzentriert, auf die mit dem größten Wert. Der neue Termin wurde mit einer minimalen Anwendung gehalten; die übrigen Funktionen kamen danach laufend hinzu.
Support für Legacy-Software: Application Management nach der Übernahme
Ist die Anwendung übernommen, muss sie gewartet werden. Wir bieten die Betreuung der Anwendung (Application Management) im selben Modell an. Die korrektive Wartung (Fehlerbehebung), adaptive Wartung (Abhängigkeitsaktualisierungen, Sicherheitspatches, Browser-Kompatibilität), präventive Wartung (Refactoring, Performance-Optimierung) und die Weiterentwicklung (neue Funktionen) sind inbegriffen.
Bei DEVEDANOS entwickelt, testet, deployt und wartet dasselbe Team Ihre Software kontinuierlich, in derselben Pipeline.
DEVEDANOS: Ihre Anwendung zum festen Monatsbudget übernehmen
Wir übernehmen zuerst Anwendungen in JavaScript und TypeScript (React, React Native, Next.js, Node.js). Bei einer anderen Technologie (PHP, Java, Python…) gelten die Grundlagen der Softwareentwicklung in jeder Sprache: Sprechen Sie uns im ersten Gespräch einfach darauf an.
Bei DEVEDANOS entwickeln wir Ihre individuelle Software, innerhalb eines Monats nutzbar, zu einem festen Monatsbudget, und passen sie laufend an Ihr sich wandelndes Geschäft an. Das Budget wird gemeinsam mit Ihnen aufgebaut, auf Grundlage Ihrer Zahlen und Ziele: Wir legen zusammen den Betrag fest und das Problem, das Ihre Anwendung lösen soll.
Was abgenommen ist, geht in Produktion. Jeden Tag sehen Sie, wie die Anwendung auf Ihrer Abnahmeumgebung vorankommt.
Und damit das, was vor der Übernahme funktioniert hat, auch danach noch funktioniert, gilt unsere Null-Regressions-Garantie: Jede Regression wird behoben und durch einen automatisierten Test abgesichert, damit sie nicht wiederkehrt, ohne Aufpreis.
Der Quellcode, die Infrastruktur, die Deployment-Pipeline und die Dokumentation sind Ihr geistiges Eigentum, sobald die erste Monatsrechnung beglichen ist. Eine Testphase von bis zu 15 Arbeitstagen im ersten Monat: keine Rechnung, wenn Sie die Ergebnisse nicht wollen.
Sie können den Vertrag jederzeit schriftlich kündigen, ohne Begründung. Während des Monats der Reversibilität begleiten wir Ihr Team, bis es eigenständig bauen, testen und deployen kann.
Unsere Seite zur Übernahme und Modernisierung von Anwendungen beschreibt, was wir an einer bestehenden Anwendung tun.
Weiterlesen
Sie wählen den Dienstleister, der Ihre Anwendung übernehmen soll? Unser Artikel zum technischen Partner für KMU unterscheidet die vier Formen von IT-Dienstleistern und die Fragen, die Sie ihnen stellen sollten. Und ändert sich Ihr Bedarf unterwegs, hängt es vom Vertrag ab, wer die Änderung bezahlt: Festpreis mit festem Leistungsumfang, Abrechnung nach Aufwand oder festes Budget.
Ihr Dienstleister antwortet nicht mehr, oder Ihre Anwendung kommt nicht mehr voran? Sprechen wir darüber?
Quellen