Zusammenfassung
Systemintegration innerhalb eines begrenzten Zeitrahmens ist nicht in erster Linie eine technische Kunst. Sie ist eine Frage der sozialen und organisatorischen Fähigkeiten. Arbeiten Sie an der gefühlvollen Seite, und die Technik wird folgen. "Wenn Sie die oben genannten Faktoren nicht gut in den Griff bekommen, wird es Sie sowieso erwischen, egal wie cool, flexibel, modern und großartig Ihre Technologie auch sein mag.
Einführung
Bei fast jedem Softwareprojekt, das in einem großen Unternehmen durchgeführt wird, müssen wir andere Systeme integrieren. Wenn ein Team ein solches Softwareentwicklungsprojekt in Angriff nimmt, neigen Entwickler und Projektleiter oft dazu, sich auf die Aufgaben zu konzentrieren, die zur Erstellung der Software auf ihrer eigenen Seite erledigt werden müssen, und Scoping-Erklärungen und Haftungsausschlüsse zu verfassen, um sicherzustellen, dass sie nicht mit den Integrationsrisiken belästigt werden. Vor allem dann, wenn das andere System keine geeigneten Schnittstellen zur Verfügung stellt, die Sie nutzen können, und "sie" neue bauen müssen, wird die Beziehung zu dem anderen System in Verträgen auf Distanz gehalten.
Verständlich, denn in unseren Projekten können wir offensichtlich nicht die Verantwortung für Arbeiten außerhalb unseres Einflussbereichs übernehmen. Dennoch. Wenn wir wollen, dass unser Projekt wirklich erfolgreich ist, können wir es nicht bei "sie müssen ihr Ding machen, und sie müssen pünktlich liefern" belassen. Wenn sie das nicht tun, kann unser Projekt scheitern, aber es wird nicht unsere Schuld sein!" Nein, das ist nicht gut. Auf diese Weise liefern Sie dem Kunden keinen Mehrwert, sondern halten sich nur den Rücken frei. Bequem, aber keine herausragende Handwerkskunst.
Schätzungen
Nehmen wir an, Sie möchten wirklich sicherstellen, dass das System, das Sie schreiben, mit allen notwendigen Beteiligten korrekt interagieren kann. Viele Projekte scheitern, weil die zeitlichen Auswirkungen der Interaktion ernsthaft unterschätzt werden. Die Interaktion kann einen enormen Einfluss auf die geschätzte Gesamtprojektzeit haben. Überlegen Sie, was alles arrangiert werden muss:
- Sie müssen mit der anderen Partei kommunizieren und eine Schnittstelle zwischen den Systemen definieren.
- Sie müssen ihren Teil der Schnittstelle selbst erstellen.
- Sie müssen ihr System ausschalten, um Ihre Tests durchführen zu können, solange sie noch nichts haben, mit dem Sie sprechen können.
- Es wird unerwartete Änderungen an der Benutzeroberfläche geben. (Nein, sagen Sie nicht, dass Sie das Design einfach fertigstellen können und damit fertig sind: Es wird IMMER unerwartete Änderungen an der Benutzeroberfläche geben.)
- Sie müssen eine Integrationstestumgebung gemeinsam nutzen. Stubbing ist gut, aber nur bis zu einem gewissen Punkt.
- In der Integrationsumgebung benötigen Sie "konditionierte" Testdaten, die für beide Systeme sinnvoll sind. Wenn Ihr "anderes System" schon eine Weile im Einsatz ist, wird es wahrscheinlich einen vordefinierten Satz von Testfalldaten in seiner Datenbank haben, der natürlich nicht mit Ihren eigenen Testfalldaten übereinstimmt. Sie müssen also für neue, gemeinsame Testdaten sorgen, die sowohl für Sie als auch für das andere System sinnvoll sind.
- Sie benötigen Zugang zu seinem Testsystem. Wenn Sie wirklich Glück haben, verfügt der Kunde über eine integrierte Umgebung für Abnahmetests mit einer produktionsähnlichen Netzwerkinfrastruktur, vielen angeschlossenen Systemen und aufbereiteten Datensätzen. Unwahrscheinlich. Äußerst unwahrscheinlich. Sie müssen also den Zugriff auf die Testumgebung arrangieren, die möglicherweise mehrere Schritte entfernt ist. Einige Unternehmen schirmen ihre Umgebungen durch Subnetze ab: Verschaffen Sie sich Zugang über die Router oder versuchen Sie, einen eigenen Rechner in die Testdomäne zu bekommen: Oft sind das verfahrensintensive Aktivitäten.
- Zum Zeitpunkt der Integration wird man Ihre vereinbarten Spezifikationen anders interpretiert haben (Groß-/Kleinschreibung, long statt int, leicht abweichender Verschlüsselungs- oder Komprimierungsalgorithmus, usw.) und Sie müssen beide Teile dessen, was Sie geschrieben hatten, neu implementieren.
- Angst, als Entwickler nicht so gut zu sein wie Ihr Konkurrent
- Angst, für Fehler bestraft zu werden
- Abscheu, als Handwerker nicht ernst genommen zu werden
- Abscheu, nicht glänzen und etwas bewirken zu dürfen
Verfasst von
Luuk Dijkhuis
Contact
Let’s discuss how we can support your journey.