Collaborative Software Development im
praktischen Einsatz
Collaborative Software Development im praktischen Einsatz.
Ein Beispiel wie die Softwareentwicklung mit räumlich verteilten Teams mit Hilfe
eines Softwareentwicklungsportals effizient gesteuert werden kann. Autor: Frank
Sterkmann
Bei räumlich verteilten Teams gibt es keinen Platz mehr für
individuelle "Hacker". Die Kommunikation der Teammitglieder, die
Verständlichkeit und Qualität der Arbeitsergebnisse sowie die Einhaltung
definierter Prozesse gewinnen höchste Priorität in der Zusammenarbeit. Diese Art
der Softwareentwicklung stellt das Management vor neue Herausforderungen. Die
Steuerung geht weit über die internetbasierte Verwaltung und Versionierung von
Sourcecode hinaus. Wie man mit einem erweiterten Fokus auf internetbasierte
Kommunikation, Prozesse, Controlling und Verwaltung von Skills erfolgreiche
Softwareprojekte realisieren kann, wird im Folgenden exemplarisch
dargestellt.
Collaborative Software Development
Die Softwareentwicklung ist ein interessantes Beispiel für die
Dualität von Kommunikation und Konzentration. Auf der einen Seite ist die
Kommunikation zum Austausch von Informationen mit den Teammitgliedern
erfolgsentscheidend, auf der anderen Seite ist die Konzentration auf die
eigentliche Softwareproduktion (dieser Begriff deckt den ganzen
Softwareerstellungsprozess von der Analyse, Design, Implementierung, Integration
und Test ab) die Basis für ein fertiges Softwareprodukt.
Da die Softwareentwicklung unbestritten eine kreative Tätigkeit
ist, die hohe Konzentration erfordert, sollten Massnahmen zur Erhöhung der
Produktivität in diesem Bereich ansetzen. Störungen und andere Nebentätigkeiten
müssen auf ein Mindestmaß reduziert werden und die persönliche Konzentration der
Mitarbeiter auf die Softwareproduktion muß gefördert werden. Wenn man dieses
Thema konsequent weiterverfolgt wird man schnell bemerken, dass die
Produktivität von vielen verschiedenen individuellen Faktoren abhängen kann. Es
werden viele Wünsche nach individuellen, unabhängigen, autarken Arbeitsplätzen
auf uns zukommen. Wünsche nach Arbeitsplätzen, die ohne Reisezeiten erreicht
werden können. Da dies durch unsere mobile Gesellschaft vorangetrieben wird,
wird dies sicherlich zu immer mehr verteilten Teams führen. Die breite
Verfügbarkeit des Internets bietet uns heute optimal technische Möglichkeiten
die Softwareentwicklung in verteilten Teams durchzuführen.
Die Schaffung der technischen Voraussetzungen ist für die
Realisierung erfolgreicher Softwareprojekte bei weitem nicht ausreichend. Es
müssen Werkzeuge und Vorgehensweisen entwickelt werden, die auch über die
Softwareentwicklung hinausgehende Bedürfnisse erfüllen. Diese sind übers
Internet nutzbar und erfordern keinen Installationsaufwand auf dem gerade
genutzten Arbeitsplatz, um die Vorteile einer räumlichen Verteilung nicht den
Nachteilen zu opfern.
Gründe für verteilte Teams
Viele Arbeitsplätze zu Hause haben heute einen
Hochgeschwindigkeits Internet Anschluß, von dem früher Unternehmen geträumt
hätten. Von Mitarbeitern wird da schnell der Wunsch auf die Nutzung des
Heimarbeitsplatzes an uns heran getragen. Für die Mitarbeiter ergeben sich klare
Vorteile wie Reduzierung der Reisezeit zum Arbeitsplatz und weniger Störungen
durch andere Mitarbeiter oder Meetings. Private Störungen können wir nicht
nachvollziehen. Für die Unternehmen ergeben sich aber auch Vorteile, wie z. B.
das Einsparungspotenzial bei der Bereitstellung von Arbeitsplätzen und die
Möglichkeit, freiberuflich tätige Mitarbeiter besser einbinden zu können und
natürlich das Hauptargument der besseren Produktivität.
Aus der Sicht von Software- und Dienstleistungsunternehmen gibt
es noch einen weiteren Grund, der verstärkt zu verteilten Teams führen wird.
Dies ist die intensivere Zusammenarbeit mit Kunden und Sublieferanten. Um die
Vorteile der objektorientierten Softwareentwicklung nutzen zu können, ist die
Einbindung aller Stakeholder in das Projektgeschehen ein wesentlicher
Erfolgsfaktor. Die Vorteile und Probleme sind mit denen der Heimarbeitsplätze
vergleichbar. Die Fähigkeit der optimalen Unterstützung von verteilten Teams
stellt für Software- und Dienstleistungsunternehmen zukünftig einen wichtigen
Wettbewerbsfaktor dar.
Große Unternehmen mit mehreren Standorten haben im Bereich der
verteilten Softwareentwicklung meist längere Erfahrungen, da die interne
Kommunikation bereits seit langem durch eigene leistungsfähige Netzwerke
unterstützt wird.
Die Voraussetzung: Collaborative Project
Aus Sicht des Projektverantwortlichen stellen verteilte Teams
eine große Herausforderungen dar. Er hat die ehrenvolle Aufgabe den Erfolg des
Projektes zu gewährleisten und muß mit allen Mitteln darauf hin wirken, dass die
Vorteile der verteilten Entwicklungsteams nicht durch andere Nachteile
aufgefressen werden. Wie soll er mit den Teammitgliedern oder
Entwicklungsgruppen kommunizieren? Wie sollen die Teammitglieder untereinander
kommunizieren? Wie soll er die Aufgaben aufbereiten und verteilen? Wie soll er
die Arbeitsergebnisse überwachen und wie soll er die Softwareproduktion
koordinieren?
Viele Hersteller von Werkzeugen für die Softwareentwicklung
haben den Trend der Zeit erkannt und bieten heute Werkzeuge an, die eine
Zusammenarbeit von verteilten Softwareteams über das Internet ermöglichen
sollen. Collaborative Software Development ist dabei das Marketing Stichwort.
Wenn man das Wörterbuch nach der Übersetzung dieses Begriffes befragt erhält man
die erwartet positive Interpretation wie "mitarbeiten", "zusammenarbeiten" oder
"behilflich" sein. Im politischen Sinne heisst es aber mit dem Feind
zusammenarbeiten.
collaborate: Verb/intransitiv
1. zusammenarbeiten, mitarbeiten;
2. behilflich sein;
3. Politik mit dem Feind zusammenarbeiten, kollaborieren
(c) Langenscheidt
Instinktiv haben wir es wahrscheinlich alle gedacht. Wir öffnen
uns nach aussen, zu unseren Kunden, externen Mitarbeitern und Sublieferanten.
Wir sind auf einen Schlag sehr transparent und verletzlich. Wie wollen wir
sicherstellen, dass unsere Daten und Arbeitsergebnisse nicht missbräuchlich
verwendet werden? Wie können wir sicherstellen, dass bei der Übertragung von
vertraulichen Daten keine Sicherheitslöcher entstehen? Mit diesen objektiven und
teilweise subjektiven Themen müssen wir uns bei der verteilten
Softwareentwicklung beschäftigen.
Die Voraussetzungen für Softwareprojekte sind der gemeinsame
Zugriff und die Verwaltung von Sourcen und Informationen. Dies trifft für alle
Projekte zu, stellt aber für verteilte Projekte eine erste Herausforderung dar.
Für diejenigen unter uns, die ein professionelles Projekt realisieren wollen,
kommt hier zwingend die Versionierung der Sourcen und Dokumenten hinzu. Die
Werkzeuge wie CVS, PVCS, MKS, ClearCase, Continuus etc. bieten umfangreiche
Funktionalitäten an, die mit webbasierten Frontends eine komfortable Verwaltung
und Versionierung von Projektdokumenten ermöglichen.
Anforderungen an Collaborative Development Tools
-
Web based Environment:
-
Verwaltung von Rechten und Anwendern (User, Accounts)
-
Vergabe der Zugriffsrechte pro Projekt
-
Datensicherheit bei der Übertragung im Internet (SSL)
-
Zentrale Sourcecode- und Dateiverwaltung
-
Versionierung
-
Tracking Features:
-
Verwaltung von Fehlermeldungen (Bugtracking)
-
Verwaltung von Änderungsanfragen (Chance Requests)
-
Verwaltung von Supportanfragen (Support Requests)
-
Verwaltung von Projektanforderungen (Requirements-Management)
-
Verwaltung von Aufgaben (Task Management)
-
Collaborative Features:
-
Kommunikation, Email Verteiler, Chat, News
-
Notification bei Änderung oder Neuanlage von
Aufgaben
-
Sourcecode Analysis and Quality Assurance Features:
-
QS-Analysen und Metriken
-
Statistiken und graphische Darstellungen (HTML & Office
Export)
-
Suchmaschine für Sourcecode (Cross-Referencing, Grep,
Powersearch)
-
Abhängigkeiten (Dependencies) und Impact
Analyse
Spannender wird es, wenn wir die weiteren Funktionalitäten wie
Organisation, Kommunikation und Qualitätssicherung abdecken wollen. Um diese
Funktionalität für verteilte Projektteams abzudecken stehen nicht sehr viele
Werkzeuge zur Verfügung. Ein bekannter Vertreter aus der Open Source Gemeinde
ist SourceForge. SourceForge deckt alle Funktionsbereiche, bis auf die
Qualitätssicherung und Suchmaschine, ab (siehe Kasten). Ein größeres Problem
stellt für Softwareunternehmen die Zutrittsberechtigung dar. Da die Kunden nicht
sehr begeistert sein werden, wenn ihre strategisch wichtigen Projekte als Open
Source öffentlich zur Verfügung stehen, muss eine dedizierte Zutrittskontrolle
her, die eine Registrierung der Nutzer pro Projekt ermöglicht, bevor die
internen Informationen der Projekte angezeigt werden. Dies soll lt. SourceForge
in der sogenannten Professional Edition abgedeckt sein. Die Installation auf dem
eigenen Server benötigt jedoch viel Zeit und bringt selbst ausgefuchste
Spezialisten fast zur Verzweiflung.
Eine interessante Alternative stellt das in Deutschland
entwickelte Produkt CodeBeamer dar. Der CodeBeamer kommt ursprünglich aus dem
Bereich der Qualitätssicherung und Sourcecode Analyse. Es wurde in der neuesten
Version um die Funktionalitäten in den Bereichen Organisation und Kommunikation
erweitert und stellt heute ein leistungsfähiges Collaborative Development Portal
dar. Der Leistungsumfang der Bereiche Organisation und Kommunikation ist mit
Sourceforge vergleichbar, stellt aber nur einen kleinen Teil des
Funktionsumfangs des Produktes dar.
Beim Anlegen eines neuen Projektes kann der Administrator
entscheiden ob es ein öffentliches oder vertrauliches Projekt sein soll. Die
öffentlichen Projekte sind ohne Registrierung übers Internet sichtbar. Erst wenn
aktiv Informationen in das Projekt eingebracht werden sollen, muß eine
Registrierung erfolgen, was natürlich in jedem Falle sinnvoll ist, um die neuen
Informationen und evtl. Änderungen einem Nutzer zuordnen zu können.
Beim Anlegen eines Projektes kann der Ort und die Art der
Quelle angegeben werden. So können z. B. CVS verwaltete Projekte für die
zukünftige Bearbeitung direkt in CodeBeamer importiert werden. Während das
Projekt angelegt wird, analysiert ein Parser den vorhandenen Sourcecode
(gemischter Java, C++ und C Sourcecode möglich) und baut ein umfassendes
Repository mit allen Symbolen wie Klassen, Methoden, Attributen und deren
Abhängigkeiten auf. Dieses Repository wird bei Änderungen des Sourcecodes
automatisch im Hintergrund aktualisiert, ohne dass der Nutzer etwas davon
bemerkt. Dieser stets aktuell aufbereitete Sourcecode bringt uns im weiteren
Verlauf des Softwareprojektes sehr viele Vorteile.
Abbildung 1: Issue Tracker mit direktem Link zum
Sourcecode
So können wir mit dem Tracker einen Fehler mit dem Typ "Bug"
neu anlegen und die zugehörige Information und verantwortlichen Personen
eintragen. Zusätzlich können wir einen direkten Link zum Sourcecode eintragen.
CodeBeamer ermöglicht die Verknüpfung von Funktionen aus den Bereichen
Organisation und Kommunikation mit dem Sourcecode. Somit hat der Verantwortliche
sofort die notwendige Information verfügbar um die Entscheidungen für die
Behebung des Fehlers zu treffen. Bei Neuanlage oder Änderungen von Einträgen im
Tracker wird per Email eine Notification an den Verantwortlichen versendet.
Diese enthält die Informationen über die Änderungen und ebenfalls den direkten
Link. Auch im Sourcecode werden existierende Links als Markierung angezeigt und
können zum Anzeigen der zugehörigen Bemerkungen oder Fehlermeldungen genutzt
werden.
Wie bereits erwähnt, bringt uns der aufbereitete Sourcecode
sehr viele Vorteile. Die sehr schnelle und leistungsfähige Suche nach allen im
Sourcecode vorhandenen Symbolen und die graphische Darstellung der
Abhängigkeiten (Cross Referenzen) ermöglicht einen schnellen Überblick über die
Software und unterstützt, dass sich Mitarbeiter schnell in einem Projekt
zurechtfinden können. Untersuchungen haben ergeben, dass Softwareentwickler 47%
(Quelle: "Software Quality: Producing Practial, Consistent Software", Mordecai
Ben-Menachem & Garry S., 1997) ihrer Arbeitszeit mit der Analyse des
Sourcecodes verbringen.
Besonders bei verteilten Projekten bringt die graphische
Darstellung wertvollen Nutzen, da die Kommunikation zu den anderen
Teammitgliedern aufwendiger ist. Somit sind die Mitarbeiter darauf angewiesen,
möglichst selbständig mit dem Sourcecode zurecht zu kommen.
Abbildung 2: graphische Darstellung des Sourcecodes mit
Cross Referenzen
Ein wichtiges Feature stellt ein herunterladbares Plug-In dar,
welches als Java Anwendung direkt auf dem Client ausgeführt wird. Dies bringt
zwei wichtige Vorteile: Die Datenübertragung über das Internet ist bis heute ein
Engpass, so müssen bei interaktiven Analysen wie Browsing und beim Durchhangeln
von Dependencies teilweise eine Menge Daten übertragen werden. Das Plug-In holt
sich die notwendigen Daten vom Server und übernimmt selbständig die Aufbereitung
und Darstellung. Im Intranet ist damit eine Arbeitsweise wie bei einer
herkömmlichen Desktop Anwendung möglich.
Abbildung 3: Plug-In
Ebenfalls ist die Interaktivität bei HTML Clients
eingeschränkt. Ein Plug-In ermöglicht eine komfortablere und effizientere
Bedienung der Anwendung.
Die Ergänzung: Collaborative Process
Wesentlich stiefkindlicher wird der Bereich der
Softwareentwicklungsprozesse unterstützt. Werkzeuge zur Unterstützung der
technischen Belange sind wesentlich ausgereifter und mehr verbreitet. Das
Bewußtsein für Softwareentwicklungsprozesse ist teilweise nicht stark
ausgeprägt. Dabei bergen Prozesse sehr viel Potenzial zur Verbesserung der
Softwarequalität. Alle bekannten Zertifizierungs- und Qualitätsmerkmale setzen
auf die Wiederholbarkeit von Abläufen und Vorgehensweisen in der Entwicklung.
In verteilten Teams ist eine gemeinsame Vorgehensweise aller
Projektmitarbeiter besonders wichtig, da die andauernde individuelle
Synchronisation einzelner Mitarbeiter untereinander oft entfällt. Dies kann nur
über klar strukturierte und allen bekannten Abläufe ersetzt werden. Ein
Softwareentwicklungsprozess dient auch als Wissensbasis für die Mitarbeiter. Er
beantwortet Fragen nach Programmierrichtlinien, nach Vorlagen für Protokolle,
Kalkulationen, Projektpläne etc. und erleichtert die Arbeitsweise der einzelnen
Teammitglieder. Entscheidend bei verteilten Teams ist jedoch der Einsatz der
gleichen Abläufe und Vorgaben.
Abbildung 4: Softwareentwicklungsprozess im Intranet am
Beispiel des "Customer Process"
Als optimales Medium für die Abbildung und Publikation eines
Entwicklungsprozesses bietet sich ein internetbasiertes Portal an. Man kann
damit gleich zwei Probleme lösen. Erstens steht die Information auch bei
verteilten Projekten allen Mitarbeitern zur Verfügung und zweitens ist die
Information stets aktuell. Der zweite Punkt ist sehr wichtig, da ein wichtiges
Kriterium eines Prozesses die Verbesserung ist. Wenn man erreichen kann, dass
alle Mitarbeiter ihre aktuellen Erfahrungen und Vorschläge in den Prozess
einfliessen lassen, kann damit eine stetige Verbesserung und Wiederholbarkeit
der zukünftigen Projekte erreicht werden.
Die Prozesse können z. B. mit Aktivitätsdiagrammen beschrieben
werden, wie sie in der Unified Modeling Language (UML) definiert sind. Im
abgebildeten Customer Process werden die Aktivitäten beschrieben, die in der
Zusammenarbeit mit dem zukünftigen Kunden durchgeführt werden müssen, bevor es
überhaupt einen Auftrag zur Realisierung eines Projektes gibt. Diese Abläufe
sind für den späteren Verlauf der meisten Projekte erfolgsentscheidend. So wird
zum Beispiel geprüft ob ein Pflichtenheft vorhanden ist. Wenn ja wird die
Vollständigkeit des Pflichtenhefts anhand der Ergebnisse der
Projektvorbereitungsphase (Inception Phase) überprüft. Sind nicht alle
geforderten Ergebnisse vorhanden, werden diese als Dienstleistungsauftrag
erarbeitet. Erst wenn alle geforderten Ergebnisse vorhanden sind, wird die
Erstellung eines Festpreisangebotes begonnen. Die Aktivitäten der Prozesse
werden in einer nächsten Stufe detaillierter als Workflow Detail dargestellt
(siehe Abbildung).
Abbildung 5: Workflow Detail "Angebotserstellung"
In den Workflow Details werden die einzelnen Aktivitäten und
die verantwortlichen Rollen dargestellt. Ferner müssen die Ergebnisse anderer
Aktivitäten vorhanden sein, damit die Endergebnisse erstellt werden können.Die
Ergebnisse können Dokumente, Diagramme, Datenbankeinträge, Protokolle etc. sein
und werden lt. Unified Software Development Process (USDP) als Artifacts
bezeichnet.
Am Beispiel wird gezeigt welche Unterlagen vorhanden sein
müssen um eine Aufwandsschätzung durchzuführen. Diese Aufwandsschätzung ist dann
die Voraussetzung für die Angebotserstellung. Der Sinn dieses Diagramms ist
eigentlich nicht der Ablauf, da dieser sehr einfach ist, sondern die Möglichkeit
dieses Diagramm als Checkliste und als Wissensbasis zu nutzen. Alle Elemente des
Diagramms können angeklickt werden, um so innerhalb der Prozesse navigieren zu
können. So können anhand der aktuellen Problemstellung sehr einfach die
zugehörigen Vorlagen oder Richtlinien gefunden werden, da sie über die
Hierarchie Prozess, Workflow Detail, Artifact, schnell lokalisiert werden
können.
Der Erfolg: Collaborative Controlling
Erfolgreiche Softwareprojekte müssen nicht nur die fachlichen
und technischen Ziele erreichen sondern auch wirtschaftliche Rahmenbedingungen
einhalten. Diese werden meist zu Beginn des Projektes kalkuliert und müssen
während des Projektes überwacht werden. Die Überwachung der Aufwendungen und
somit der Kosten muss zeitnah durchgeführt werden. Die iterativen inkrementellen Vorgehensweisen und Best
Practices aus Extreme Programming bringen die Qualität der fachlichen und
technischen Ergebnisse weit nach vorne, machen aber das Controlling von
Projekten schwierig, da die Aufwendung durch viele kleine (oder größere)
Änderungen oder Erweiterungen in vielen kleinen Stufen kontinuierlich anwachsen.
Wenn dies erst am Ende des Projektes bemerkt wird, ist eine erfolgreiche
Argumentation gegenüber dem Kunden nahezu unmöglich. Abweichungen von Budgets
müssen schnellstmöglich erkannt werden.
Zusätzlich steigert sich die Brisanz des Controllings bei
verteilten Projekten, da der Projektmanager nicht mehr in die Kommunikation
seiner Mitarbeiter mit dem Kunden einwirken kann und somit Aufwendungen nicht
mehr zentral kontrolliert werden können. Die Erfassung der täglichen
Projektzeiten in einer internetbasierten Projekt-Controlling Anwendung
ermöglicht die zeitnahe Analyse von Planabweichungen und somit erfolgreiche
Steuerungsmassnahmen für ein wirtschaftlich erfolgreiches Projekt, auch bei
verteilten Teams.
Die Mitarbeiter: Collaborative Skills
Die Auswahl und Weiterentwicklung von Skills der Mitarbeiter
sind für technologieorientierte Dienstleistungs- und Softwareunternehmen die
Basis für den zukünftigen Erfolg. Um der erschwerten persönlichen Kommunikation
der Führungskräfte in verteilten Projekten Rechnung zu tragen bietet sich auch
in diesem Bereich der vorteilhafte Einsatz internetbasierter Skill Management
Anwendungen an. Diese dürfen und sollen keinesfalls das regelmässige
Mitarbeitergespräch ersetzen, können aber eine wertvolle Unterstützung dafür
bieten.
Resümee
Die Unterstützung von verteilten Projekten wirft einige
Probleme auf und ist nicht mit einer gemeinsamen Sourcecode Basis erledigt.
Allerdings ist dies die Basis ohne die eine verteilte Entwicklung gar nicht
vernünftig funktionieren kann. Also sollte mit der Einführung bei Werkzeugen für
diesen Bereich begonnen werden. Zur Verbesserung der weiterführenden
organisatorischen Abläufe wie Prozesse, Controlling und Mitarbeitersteuerung
müssen ebenfalls Maßnahmen ergriffen werden um Projekte wiederholbar und
erfolgreich durchführen zu können.
Beispiel für ein Collaborative Software Development Portals eines
Softwareunternehmens
-
Projektverwaltung, Organisation, Kommunikation und QS
Collaborative Development Portal für verteilte
Softwareprojekte. Verwaltung von Sourcecode und Informationen, Versionierung,
Supportanfragen, Bugtracking, Chance Requests, Feature Requests, Kommunikation,
Notification, Cross-Referencing, Impact Analysis, Dependencies, Quality
Assurance, Metrics, Power Search.
-
Softwareentwicklungsprozess
Portal zur Unterstützung einer unternehmensweiten
Vorgehensweise in Softwareprojekten. Der abgebildete unternehmensspezifische
Softwareentwicklungsprozess ist eine Kombination des USDP (Unified Software
Development Process), XP (Extrem Programming) und spezifischen Erweiterungen um
ISO 9000 und CMM SW Level 2-3 Qualitätsanforderungen erfüllen zu können. Das
Portal bietet Vorgaben für Artifacts, Protokolle, Richtlinien für Analyse,
Design und Softwareentwicklung, Architekturen, Projektplanung, Kalkulation,
Konfigurationsmanagement u.v.a.m.
-
Controlling und Leistungsabrechnung
Software- und Dienstleistungsunternehmen müssen die erbrachten
Leistungen erfassen und abrechnen können. Dazu ist eine Anwendung zur Erfassung,
Auswertung und Abrechnung von Projektzeiten notwendig. Wenn die Mitarbeiter in
räumlich verteilten Teams, z. B. beim Kunden arbeiten, muss die Anwendung
internetfähig sein. Ferner sind diese Zahlen für das Projektcontrolling
notwendig, um die geplanten Aufwendungen mit den tatsächlichen Aufwendungen
vergleichen zu können.
-
Skill Management
Dienstleistungsunternehmen erbringen mit dem Know-how der
Mitarbeiter Dienstleistungen für ihre Kunden. Somit ist die Suche und Auswahl
von Personen mit bestimmten Skills die Basis ihrer Arbeit. Dazu ist eine
Anwendung zur Erfassung und Verwaltung von Skill Profilen von Mitarbeitern,
Bewerbern und Teammitgliedern hilfreich.
Autor
Dipl. Ing.(FH) MBA Frank Sterkmann
ist seit 15 Jahren als Managementberater und Projektleiter tätig.. In dieser Zeit war er
für viele erfolgreiche Softwareprojekte verantwortlich und konnte die Erfolgs-
und Mißerfolgsfaktoren vieler Projekte analysieren.
Object International Software
Object International Software hat sich seit der Gründung auf
Objekt- und Komponententechnologie und deren Umsetzung in marktreife,
innovative Produkte und Softwarelösungen konzentriert. Seither steht Object
International Software an der Spitze der weltweiten
technologischen Entwicklung und setzt neue Maßstäbe für zukunftsorientierte
Lösungen und Methoden.